diff --git a/FprimeZephyrReference/test/bootloader_trigger.py b/FprimeZephyrReference/test/bootloader_trigger.py index c1e9c200..85d7a66e 100644 --- a/FprimeZephyrReference/test/bootloader_trigger.py +++ b/FprimeZephyrReference/test/bootloader_trigger.py @@ -1,4 +1,5 @@ import os +import signal import subprocess import time @@ -6,9 +7,14 @@ from fprime_gds.common.testing_fw.api import IntegrationTestAPI -@pytest.fixture(scope="session", autouse=True) +@pytest.fixture(scope="session") def start_gds(fprime_test_api_session: IntegrationTestAPI): - process = subprocess.Popen(["make", "gds-integration"], cwd=os.getcwd()) + pro = subprocess.Popen( + ["make", "gds-integration"], + cwd=os.getcwd(), + stdout=subprocess.PIPE, + preexec_fn=os.setsid, + ) gds_working = False timeout_time = time.time() + 30 @@ -24,7 +30,7 @@ def start_gds(fprime_test_api_session: IntegrationTestAPI): assert gds_working yield - process.kill() + os.killpg(os.getpgid(pro.pid), signal.SIGTERM) def test_bootloader(fprime_test_api: IntegrationTestAPI):