xserver-multidpi/test
Eric Anholt 14af8bee24 test: Add a test for the overflow bug in bigreqs.
The failing struct comes from the python test written by Michal Srb
<msrb@suse.com>.

v2: Use a drawable (root window) and gc, so that PolyLines hopefully
    actually tries processing things.  However, the request seems to
    process successfully so the poll() just stalls out.  However, this
    does let us distinguish between detecting the bigrequests error
    and not, at least.
v3: Clean up the description of what we expect the poll() call to do.
v4: Use XI2 instead of PolyLine to trigger a predictable error. We know the
    server replies with BadValue for a zero num_masks argument. So if we send
    a bigreq with a num_masks 0 and a length 0, we can just check whether we
    get killed (good) or a BadValue (bad). It doesn't test for specific memory
    overflows or crashes, but based on the assumption that we shouldn't look
    at *any* BigReq of size 0, this seems to be sufficient.

Signed-off-by: Eric Anholt <eric@anholt.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2017-11-01 10:29:00 +10:00
..
bigreq test: Add a test for the overflow bug in bigreqs. 2017-11-01 10:29:00 +10:00
scripts travis: Also build on OSX 2017-09-23 22:47:36 -07:00
sync test: const correctness fix 2017-10-04 11:19:09 -04:00
xi1 tests: Move test/{xi1,xi2}/tests to test/ 2017-01-12 15:01:38 -05:00
xi2 Mark test_data static in Xinput protocol tests to avoid clashes 2017-04-24 11:05:04 +10:00
.gitignore tests: Convert test/ to single binary 2017-01-12 15:01:36 -05:00
fixes.c tests: Convert test/ to single binary 2017-01-12 15:01:36 -05:00
hashtabletest.c tests: Convert test/ to single binary 2017-01-12 15:01:36 -05:00
input.c Use ARRAY_SIZE all over the tree 2017-10-30 13:45:20 -04:00
list.c tests: Convert test/ to single binary 2017-01-12 15:01:36 -05:00
Makefile.am test: Remove unused ddxstubs.c 2017-08-14 12:32:33 -07:00
meson.build test: Add a test for the overflow bug in bigreqs. 2017-11-01 10:29:00 +10:00
misc.c Remove support for unaligned swaps. 2017-04-25 15:01:23 -07:00
README test: Fix typo and drop documentation references to glib. 2015-09-23 10:48:12 -04:00
signal-logging.c Use ARRAY_SIZE all over the tree 2017-10-30 13:45:20 -04:00
simple-xinit.c test: Fix a thinko in simple-xinit 2017-09-25 15:37:59 -04:00
string.c tests: Convert test/ to single binary 2017-01-12 15:01:36 -05:00
test_xkb.c tests: Convert test/ to single binary 2017-01-12 15:01:36 -05:00
tests-common.c tests: Convert test/xi1/ to single binary 2017-01-12 15:01:29 -05:00
tests-common.h Use ARRAY_SIZE all over the tree 2017-10-30 13:45:20 -04:00
tests.c tests: Fix guards for ld -wrap 2017-02-23 13:16:07 -05:00
tests.h tests: Convert test/ to single binary 2017-01-12 15:01:36 -05:00
touch.c tests: Convert test/ to single binary 2017-01-12 15:01:36 -05:00
xfree86.c tests: Convert test/ to single binary 2017-01-12 15:01:36 -05:00
xtest.c tests: Convert test/ to single binary 2017-01-12 15:01:36 -05:00

                        X server test suite

This suite contains a set of tests to verify the behaviour of functions used
internally to the server.

= How it works =
Through some automake abuse, we link the test programs with the same static
libraries as the Xorg binary. The test suites can then call various functions
and verify their behaviour - without the need to start the server or connect
clients.

This testing only works for functions that do not rely on a particular state
of the X server. Unless the test suite replicates the expected state, which
may be difficult.

= How to run the tests =
Run "make check" in the test directory. This will compile the tests and execute
them in the order specified in the TESTS variable in test/Makefile.am.

Each set of tests related to a subsystem are available as a binary that can be
executed directly. For example, run "xkb" to perform some xkb-related tests.

== Adding a new test ==
When adding a new test, ensure that you add a short description of what the
test does and what the expected outcome is.