diff --git a/bin/tests/system/conftest.py b/bin/tests/system/conftest.py index 96de101c3c..009d989ceb 100644 --- a/bin/tests/system/conftest.py +++ b/bin/tests/system/conftest.py @@ -1,5 +1,3 @@ -#!/usr/bin/python3 - # Copyright (C) Internet Systems Consortium, Inc. ("ISC") # # SPDX-License-Identifier: MPL-2.0 @@ -12,25 +10,43 @@ # information regarding copyright ownership. import os - import pytest -@pytest.fixture(scope="session") +# ======================= LEGACY=COMPATIBLE FIXTURES ========================= +# The following fixtures are designed to work with both pytest system test +# runner and the legacy system test framework. + + +@pytest.fixture(scope="module") def named_port(): return int(os.environ.get("PORT", default=5300)) -@pytest.fixture(scope="session") +@pytest.fixture(scope="module") def named_tlsport(): return int(os.environ.get("TLSPORT", default=8853)) -@pytest.fixture(scope="session") +@pytest.fixture(scope="module") def named_httpsport(): return int(os.environ.get("HTTPSPORT", default=4443)) -@pytest.fixture(scope="session") +@pytest.fixture(scope="module") def control_port(): return int(os.environ.get("CONTROLPORT", default=9953)) + + +# ======================= PYTEST SYSTEM TEST RUNNER ========================== +# From this point onward, any setting, fixtures or functions only apply to the +# new pytest runner. Ideally, these would be in a separate file. However, due +# to how pytest works and how it's used by the legacy runner, the best approach +# is to have everything in this file to avoid duplication and set the +# LEGACY_TEST_RUNNER if pytest is executed from the legacy framework. +# +# FUTURE: Once legacy runner is no longer supported, remove the env var and +# don't branch the code. + +if os.getenv("LEGACY_TEST_RUNNER", "0") == "0": + pass # will be implemented in followup commits diff --git a/bin/tests/system/run.sh.in b/bin/tests/system/run.sh.in index 81038f1eb1..a0abb1d8dd 100644 --- a/bin/tests/system/run.sh.in +++ b/bin/tests/system/run.sh.in @@ -230,7 +230,7 @@ if [ $status -eq 0 ]; then if start_servers; then run=$((run+1)) test_status=0 - (cd "$systest" && "$PYTEST" -rsxX -v "$test" "$@" || echo "$?" > "$test.status") | SYSTESTDIR="$systest" cat_d + (cd "$systest" && LEGACY_TEST_RUNNER=1 "$PYTEST" -rsxX -v "$test" "$@" || echo "$?" > "$test.status") | SYSTESTDIR="$systest" cat_d if [ -f "$systest/$test.status" ]; then if [ "$(cat "$systest/$test.status")" = "5" ]; then echowarn "R:$systest:SKIPPED"