summaryrefslogtreecommitdiffstats
path: root/bitbake/lib/toaster/tests/functional
diff options
context:
space:
mode:
authorAlexander Lussier-Cullen <alexander.lussier-cullen@savoirfairelinux.com>2023-12-12 15:24:28 -0500
committerRichard Purdie <richard.purdie@linuxfoundation.org>2023-12-13 11:49:18 +0000
commitdc608a5bbedbfb2aa76a703b1f9276603a03d536 (patch)
tree4111d33ae93ff417de1bcdd6a3ffdce8cb13705d /bitbake/lib/toaster/tests/functional
parent799c131d920283be464f561ca05eb790849739ff (diff)
downloadpoky-dc608a5bbedbfb2aa76a703b1f9276603a03d536.tar.gz
bitbake: bitbake: toaster: add functional testing toaster error details
Functional tests can sometimes fail to initialize toaster. Most often this is due to a conflict on port 8000. Add command information about whichever other process is running on that port to better describe the initialization failure. (Bitbake rev: da7f91d6dbe8703fb12d58ec95f077349d0005c8) Signed-off-by: Alexander Lussier-Cullen <alexander.lussier-cullen@savoirfairelinux.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'bitbake/lib/toaster/tests/functional')
-rw-r--r--bitbake/lib/toaster/tests/functional/functional_helpers.py10
1 files changed, 8 insertions, 2 deletions
diff --git a/bitbake/lib/toaster/tests/functional/functional_helpers.py b/bitbake/lib/toaster/tests/functional/functional_helpers.py
index d3e037a6d0..09cf3ba8e0 100644
--- a/bitbake/lib/toaster/tests/functional/functional_helpers.py
+++ b/bitbake/lib/toaster/tests/functional/functional_helpers.py
@@ -28,7 +28,7 @@ class SeleniumFunctionalTestCase(SeleniumTestCaseBase):
28 # So that the buildinfo helper uses the test database' 28 # So that the buildinfo helper uses the test database'
29 if os.environ.get('DJANGO_SETTINGS_MODULE', '') != \ 29 if os.environ.get('DJANGO_SETTINGS_MODULE', '') != \
30 'toastermain.settings_test': 30 'toastermain.settings_test':
31 raise RuntimeError("Please initialise django with the tests settings: " \ 31 raise RuntimeError("Please initialise django with the tests settings: "
32 "DJANGO_SETTINGS_MODULE='toastermain.settings_test'") 32 "DJANGO_SETTINGS_MODULE='toastermain.settings_test'")
33 33
34 # start toaster 34 # start toaster
@@ -38,7 +38,13 @@ class SeleniumFunctionalTestCase(SeleniumTestCaseBase):
38 cwd=os.environ.get("BUILDDIR"), 38 cwd=os.environ.get("BUILDDIR"),
39 shell=True) 39 shell=True)
40 if cls.p.wait() != 0: 40 if cls.p.wait() != 0:
41 raise RuntimeError("Can't initialize toaster") 41 port_use = os.popen("lsof -i -P -n | grep '8000 (LISTEN)'").read().strip()
42 message = ''
43 if port_use:
44 process_id = port_use.split()[1]
45 process = os.popen(f"ps -o cmd= -p {process_id}").read().strip()
46 message = f"Port 8000 occupied by {process}"
47 raise RuntimeError(f"Can't initialize toaster. {message}")
42 48
43 super(SeleniumFunctionalTestCase, cls).setUpClass() 49 super(SeleniumFunctionalTestCase, cls).setUpClass()
44 cls.live_server_url = 'http://localhost:8000/' 50 cls.live_server_url = 'http://localhost:8000/'