Add the current test suite and case to the context, so that they can be accessed by helper functions, etc.
Signed-off-by: Luca Vizzarro <luca.vizza...@arm.com> Reviewed-by: Paul Szczepanek <paul.szczepa...@arm.com> --- dts/framework/context.py | 7 ++++++- dts/framework/test_run.py | 2 ++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/dts/framework/context.py b/dts/framework/context.py index 4360bc8699..b99a5a4a69 100644 --- a/dts/framework/context.py +++ b/dts/framework/context.py @@ -5,7 +5,7 @@ import functools from dataclasses import MISSING, dataclass, field, fields -from typing import TYPE_CHECKING, ParamSpec +from typing import TYPE_CHECKING, ParamSpec, Union from framework.exception import InternalError from framework.remote_session.shell_pool import ShellPool @@ -16,6 +16,7 @@ if TYPE_CHECKING: from framework.remote_session.dpdk import DPDKBuildEnvironment, DPDKRuntimeEnvironment + from framework.test_suite import TestCase, TestSuite from framework.testbed_model.traffic_generator.traffic_generator import TrafficGenerator P = ParamSpec("P") @@ -26,6 +27,8 @@ class LocalContext: """Updatable context local to test suites and cases. Attributes: + current_test_suite: The currently running test suite, if any. + current_test_case: The currently running test case, if any. lcore_filter_specifier: A number of lcores/cores/sockets to use or a list of lcore ids to use. The default will select one lcore for each of two cores on one socket, in ascending order of core ids. @@ -37,6 +40,8 @@ class LocalContext: and no output is gathered within the timeout, an exception is thrown. """ + current_test_suite: Union["TestSuite", None] = None + current_test_case: Union[type["TestCase"], None] = None lcore_filter_specifier: LogicalCoreCount | LogicalCoreList = field( default_factory=LogicalCoreCount ) diff --git a/dts/framework/test_run.py b/dts/framework/test_run.py index 4355aeeb4b..614022e2b6 100644 --- a/dts/framework/test_run.py +++ b/dts/framework/test_run.py @@ -406,6 +406,7 @@ def next(self) -> State | None: return self test_run.ctx.local.reset() + test_run.ctx.local.current_test_suite = test_suite return TestSuiteSetup(test_run, test_suite, test_suite_result) except IndexError: # No more test suites. We are done here. @@ -529,6 +530,7 @@ def next(self) -> State | None: test_case_result.mark_result_as(Result.SKIP, e) return self + self.test_run.ctx.local.current_test_case = test_case return TestCaseSetup( self.test_run, self.test_suite, -- 2.43.0