xserver/test
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Enrico Weigelt, metux IT consult 7ba34fd968 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 15:39:03 +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 tests: plug leak of results in compute_expected_damage() 2026-04-18 15:46:31 +02:00
info test/info: run display-info tests serialised to avoid display-number race 2026-10-19 15:39:03 +02:00
scripts drop Xwayland 2025-06-17 12:51:36 +02:00
sync test: Fix xsync test 2025-02-25 19:25:40 +01:00
xi1 drop obsolete HAVE_DIX_CONFIG_H 2024-10-10 13:38:31 +00:00
xi2 Xi: byte-swap DeviceChanged valuator and scroll data 2026-10-04 19:13:48 +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 os: unexport xstrtokenize() 2025-06-12 17:21:44 +02:00
list.c test: add assert()s to fix analyzer warnings 2025-06-12 16:35:00 +02:00
meson.build test: allow skipping tests on Xephyr with GLES 2025-08-28 11:50:22 +02:00
misc.c test: remove extra return 2025-04-19 17:02:15 +00:00
README test: Fix typo and drop documentation references to glib. 2015-09-23 10:48:12 -04:00
signal-logging.c test: Fix locale-dependent assertion in signal-logging test 2026-10-04 13:24:22 +02:00
simple-xinit.c test: simple-xinit: fix warning on unused result of write() 2025-12-10 11:28:42 +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: use a dbg() macro for the test output 2024-01-30 00:15:10 +00:00
tests.h test: use a dbg() macro for the test output 2024-01-30 00:15:10 +00: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.