From fbdb4ec903de818054576f17a228a7f4530dc676 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9rome=20Perrin?= <jerome@nexedi.com> Date: Wed, 7 Jun 2017 06:24:42 +0000 Subject: [PATCH] test: Do not check presence of lockfile in /tmp/ to assume Xvfb is running for this display This caused two problems: - If Xfvb was killed and left a stale lock file, we don't reuse this display. After some time we end up having "All display locked" exception but no Xvfb process running. - Xvfb's slapos is patched to store control sockets and lockfiles in $TMPDIR ( https://lab.nexedi.com/nexedi/slapos/commit/58462c2415b3a71c3f9ee7fdc290cf09ddb0adc0 ). We don't have $TMPDIR set in testnodes, but this would be a problem if we ever set it. Because Xvfb can detect a stale lock file upon startup and start anyway, the easy way running Xvfb for each display and see if it's still running after a few seconds. --- product/ERP5Type/tests/ERP5TypeFunctionalTestCase.py | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/product/ERP5Type/tests/ERP5TypeFunctionalTestCase.py b/product/ERP5Type/tests/ERP5TypeFunctionalTestCase.py index 489dda548c..28f0c884ec 100644 --- a/product/ERP5Type/tests/ERP5TypeFunctionalTestCase.py +++ b/product/ERP5Type/tests/ERP5TypeFunctionalTestCase.py @@ -108,9 +108,8 @@ class Xvfb(Process): def run(self): for display_try in self.display_list: - lock_filepath = '/tmp/.X%s-lock' % display_try.replace(":", "") - if not os.path.exists(lock_filepath): - self._runCommand(display_try) + self._runCommand(display_try) + if self.process.poll() is None: self.display = display_try os.environ['DISPLAY'] = self.display break -- 2.30.9