test: Fix xsync test

The xsync test is relying on the values being changed even in the case
of a BadMatch value.

Typically, it updates the delta but does not update the test type
comparison, so when passing a negative value, it generates a BadMatch.

That's actually not correct, and that will fail with the new fixes that
check the validity of the values prior to apply the changes.

Fix the test by updating the test type as needed.

Signed-off-by: Olivier Fourdan <ofourdan@redhat.com>
Part-of: <https://gitlab.freedesktop.org/xorg/xserver/-/merge_requests/1835>
This commit is contained in:
Olivier Fourdan 2025-02-25 18:47:05 +01:00
parent c285798984
commit 05e54fefaf

View File

@ -260,9 +260,13 @@ test_change_alarm_delta(xcb_connection_t *c)
xcb_sync_create_alarm(c, alarm, 0, NULL);
for (int i = 0; i < ARRAY_SIZE(some_values); i++) {
uint32_t values[] = { some_values[i] >> 32, some_values[i] };
uint32_t mask = XCB_SYNC_CA_TEST_TYPE | XCB_SYNC_CA_DELTA;
uint32_t test_type = (some_values[i] >= 0 ?
XCB_SYNC_TESTTYPE_POSITIVE_COMPARISON :
XCB_SYNC_TESTTYPE_NEGATIVE_COMPARISON);
uint32_t values[] = { test_type, some_values[i] >> 32, some_values[i] };
xcb_sync_change_alarm(c, alarm, XCB_SYNC_CA_DELTA, values);
xcb_sync_change_alarm(c, alarm, mask, values);
queries[i] = xcb_sync_query_alarm_unchecked(c, alarm);
}