Jacek Caban (@jacek) commented about dlls/user32/tests/msg.c:
SetRectRgn( hrgn_old_vis, rect_old_vis.left, rect_old_vis.top, rect_old_vis.right, rect_old_vis.bottom );
IntersectRect( &rect_new_vis, &rect_new, &rect_parent_clip );
SetRectRgn( hrgn_new_vis, rect_new_vis.left, rect_new_vis.top, rect_new_vis.right, rect_new_vis.bottom );
if (!EqualRect( &rect_old, &rect_new ) || is_zorder_redraw)
{
CombineRgn( hrgn_expect, hrgn_old_vis, hrgn_new_vis, is_composited ? RGN_OR : RGN_DIFF );
}
else
{
SetRectRgn( hrgn_expect, 0, 0, 0, 0 );
}
rgn_equal = EqualRgn( hrgn_expect, hrgn_actual );
if (!rgn_equal && broken( has_parentdc_anomaly && is_composited &&
LOBYTE(LOWORD(GetVersion())) < 8 ) /* Win7 */)
Please don't use GetVersion() in tests. Also, working around broken behavior is not really useful if we're not interested in results anyway. You may just win_skip() those cases.