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
bugs
damage
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
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
fixes.c
hashtabletest.c
input.c treewide: clean up static zero initialization 2025-08-31 14:21:16 +02:00
list.c
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
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_xkb.c
tests-common.c
tests-common.h
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
xfree86.c
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.