From dc608a5bbedbfb2aa76a703b1f9276603a03d536 Mon Sep 17 00:00:00 2001 From: Alexander Lussier-Cullen Date: Tue, 12 Dec 2023 15:24:28 -0500 Subject: 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 Signed-off-by: Richard Purdie --- bitbake/lib/toaster/tests/functional/functional_helpers.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) (limited to 'bitbake/lib/toaster/tests/functional') 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): # So that the buildinfo helper uses the test database' if os.environ.get('DJANGO_SETTINGS_MODULE', '') != \ 'toastermain.settings_test': - raise RuntimeError("Please initialise django with the tests settings: " \ + raise RuntimeError("Please initialise django with the tests settings: " "DJANGO_SETTINGS_MODULE='toastermain.settings_test'") # start toaster @@ -38,7 +38,13 @@ class SeleniumFunctionalTestCase(SeleniumTestCaseBase): cwd=os.environ.get("BUILDDIR"), shell=True) if cls.p.wait() != 0: - raise RuntimeError("Can't initialize toaster") + port_use = os.popen("lsof -i -P -n | grep '8000 (LISTEN)'").read().strip() + message = '' + if port_use: + process_id = port_use.split()[1] + process = os.popen(f"ps -o cmd= -p {process_id}").read().strip() + message = f"Port 8000 occupied by {process}" + raise RuntimeError(f"Can't initialize toaster. {message}") super(SeleniumFunctionalTestCase, cls).setUpClass() cls.live_server_url = 'http://localhost:8000/' -- cgit v1.2.3-54-g00ecf