Tests hang when run with -j > 1
It seems that the xfconfd
termination hack frequently fails to work when make check
is run with -j
larger than 1.
$ make -j2 check
Making check in common
make[1]: Entering directory '/tmp/xfconf-4.15.0/common'
make check-am
make[2]: Entering directory '/tmp/xfconf-4.15.0/common'
[...]
make[4]: Entering directory '/tmp/xfconf-4.15.0/tests/tests-end'
PASS: t-tests-end
============================================================================
Testsuite summary for xfconf 4.15.0
============================================================================
# TOTAL: 1
# PASS: 1
# SKIP: 0
# XFAIL: 0
# FAIL: 0
# XPASS: 0
# ERROR: 0
============================================================================
make[4]: Leaving directory '/tmp/xfconf-4.15.0/tests/tests-end'
make[3]: Leaving directory '/tmp/xfconf-4.15.0/tests/tests-end'
make[2]: Leaving directory '/tmp/xfconf-4.15.0/tests/tests-end'
make[2]: Entering directory '/tmp/xfconf-4.15.0/tests'
make[2]: Nothing to be done for 'check-am'.
make[2]: Leaving directory '/tmp/xfconf-4.15.0/tests'
make[1]: Leaving directory '/tmp/xfconf-4.15.0/tests'
Making check in completions
make[1]: Entering directory '/tmp/xfconf-4.15.0/completions'
make[1]: Nothing to be done for 'check'.
make[1]: Leaving directory '/tmp/xfconf-4.15.0/completions'
Making check in gsettings-backend
make[1]: Entering directory '/tmp/xfconf-4.15.0/gsettings-backend'
make[1]: Nothing to be done for 'check'.
make[1]: Leaving directory '/tmp/xfconf-4.15.0/gsettings-backend'
make[1]: Entering directory '/tmp/xfconf-4.15.0'
make[1]: Leaving directory '/tmp/xfconf-4.15.0'
At this point, make
hangs and doesn't exit until I terminate xfconfd
manually.
If I were to guess, the problem boils down to a race condition when starting xfconfd
— when multiple tests are started simultaneously. I think this could be worked around by adding another serial test — tests-start
that takes care of reliably starting a single instance of xfconfd.