xserver/test
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Enrico Weigelt, metux IT consult b29895e44f test/info: run display-info tests serialised to avoid display-number race
The xvfb / xehypr / xehypr-glamor display-info tests each start their own X
server (Xvfb, or Xephyr nested inside Xvfb) via simple-xinit -displayfd. When
several of them start at the same instant, the servers race on the same display
numbers and the losing client ends up with a display it cannot open, failing the
lane intermittently:

  _XSERVTransSocketUNIXCreateListener: /tmp/.X11-unix/X0 already in use
  _XSERVTransMakeAllCOTSServerListeners: server already running
  xdpyinfo: unable to open display ":1".

This reproduces on master (run 38774811861) as well as on PRs, hitting a
different display-info subtest each time, so it is a harness race and not a
regression in the code under test. Mark these tests is_parallel:false so the
display allocation cannot collide. The tests are short, so the lost parallelism
is negligible.

Test-harness only, no production code change.

Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
(cherry picked from commit 7289b9936c)
2026-10-19 14:10:27 +02:00
..
bigreq test: Fix build dependency for bigreq test 2017-12-08 11:36:24 -05:00
bugs tests: enable CI for both GLES2 and GLES3 variants 2023-10-09 17:25:28 +00:00
damage test: add assert()s to fix analyzer warnings 2025-06-12 16:35:00 +02:00
info test/info: run display-info tests serialised to avoid display-number race 2026-10-19 14:10:27 +02:00
pyxtest Xi: add bounds check for barrier events in input_constrain_cursor 2026-10-08 20:45:07 +02:00
scripts dix: drop DE_RESET and associated cmdline args 2025-11-18 18:22:25 +01:00
sync test: Fix xsync test 2025-02-25 19:25:40 +01:00
xi1 test: consistenly name reply structs "reply" instead of "rep" 2025-12-04 17:41:15 +01:00
xi2 Xi: test XIQueryDevice values for relative scroll valuators 2026-10-09 09:10:18 +02:00
.gitignore tests: Convert test/ to single binary 2017-01-12 15:01:36 -05:00
fixes.c drop obsolete HAVE_DIX_CONFIG_H 2024-10-10 13:38:31 +00:00
hashtabletest.c drop obsolete HAVE_DIX_CONFIG_H 2024-10-10 13:38:31 +00:00
input.c treewide: clean up static zero initialization 2025-08-31 14:21:16 +02:00
list.c test: add assert()s to fix analyzer warnings 2025-06-12 16:35:00 +02:00
meson.build test: add unit tests for x_sha1_* functions in os/xsha1. 2025-12-12 14:28:18 +01:00
misc.c test: fix tautological constant out of range warning 2025-12-11 20:36:09 +01:00
README test: Fix typo and drop documentation references to glib. 2015-09-23 10:48:12 -04:00
sha1.c test: add unit tests for x_sha1_* functions in os/xsha1. 2025-12-12 14:28:18 +01:00
signal-logging.c test: Fix locale-dependent assertion in signal-logging test 2026-10-05 10:36:56 +02:00
simple-xinit.c test: simple-xinit: fix warning on unused result of write() 2025-12-09 20:01:44 +01:00
string.c test: add assert()s to fix analyzer warnings 2025-06-12 16:35:00 +02:00
test_xkb.c xkb: unexport rules management functions 2025-06-12 17:21:45 +02:00
tests-common.c test: switch the unit tests to something resembling a test suite 2024-01-30 00:15:10 +00:00
tests-common.h test: switch the unit tests to something resembling a test suite 2024-01-30 00:15:10 +00:00
tests.c test: add unit tests for x_sha1_* functions in os/xsha1. 2025-12-12 14:28:18 +01:00
tests.h test: add unit tests for x_sha1_* functions in os/xsha1. 2025-12-12 14:28:18 +01:00
touch.c dix: unexport InitAtoms() and FreeAllAtoms() 2025-06-12 16:20:15 +02:00
xfree86.c drop obsolete HAVE_DIX_CONFIG_H 2024-10-10 13:38:31 +00:00
xtest.c miext: move over extinit_priv.h from include 2025-06-12 17:21:46 +02: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.