diff options
author | Alan Coopersmith <alan.coopersmith@oracle.com> | 2014-09-21 09:49:06 -0700 |
---|---|---|
committer | Keith Packard <keithp@keithp.com> | 2014-10-09 14:15:45 +0200 |
commit | da887726eeaece0396962dd3912578d3372881b1 (patch) | |
tree | 1278fc3edefc2f5643d4075539c17d4973856e46 /test | |
parent | cccba52d152a7d233c0b762a54844ecef831483e (diff) |
Use unique display name for each xi2 test program [v3]
make -j 8 check was sporadically failing in different xi2 tests.
After adding the asserts in the previous commit to catch xkb failure
it became easier to catch the failures and see that multiple tests
were running at once trying to write to /tmp/server-(null).xkm and
then delete it, and interfering with each other.
Putting a unique string into the display variable let them each write
to their own file and not interfere with others.
v2: Fix Linux bits:
Add #include <errno.h> to get a declaration of
program_invocation_name on Linux.
Use only the last portion of the pathname so that the resulting
display name doesn't contain any slashes.
v3: use program_invocation_short_name on Linux
This is the same as program_invocation_name, except is has
stripped off any path prefix.
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Adam Jackson <ajax@redhat.com>
Signed-off-by: Keith Packard <keithp@keithp.com>
Diffstat (limited to 'test')
-rw-r--r-- | test/xi2/protocol-common.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/test/xi2/protocol-common.c b/test/xi2/protocol-common.c index 64a5777d0..9265ba390 100644 --- a/test/xi2/protocol-common.c +++ b/test/xi2/protocol-common.c @@ -25,6 +25,7 @@ #include <dix-config.h> #endif +#include <errno.h> #include <stdint.h> #include "extinit.h" /* for XInputExtensionInit */ #include "exglobals.h" @@ -139,6 +140,17 @@ init_devices(void) struct devices local_devices; int ret; + /* + * Put a unique name in display pointer so that when tests are run in + * parallel, their xkbcomp outputs to /tmp/server-<display>.xkm don't + * stomp on each other. + */ +#ifdef HAVE_GETPROGNAME + display = getprogname(); +#elif HAVE_DECL_PROGRAM_INVOCATION_SHORT_NAME + display = program_invocation_short_name; +#endif + client = init_client(0, NULL); AllocDevicePair(&client, "Virtual core", &local_devices.vcp, &local_devices.vck, |