Create standard test class using receiver mixin

这个提交包含在:
nmannall
2024-11-25 11:33:35 +00:00
父节点 a679184d15
当前提交 ac15861e8d
共有 5 个文件被更改,包括 21 次插入14 次删除

查看文件

@@ -96,7 +96,7 @@ class CreatePyenvTest(RunOnlyRegressionTest):
)
class GprMaxRegressionTest(RunOnlyRegressionTest):
class GprMaxBaseTest(RunOnlyRegressionTest):
valid_systems = ["archer2:compute"]
valid_prog_environs = ["PrgEnv-gnu"]
modules = ["cray-python"]
@@ -112,7 +112,7 @@ class GprMaxRegressionTest(RunOnlyRegressionTest):
test_dependency = variable(type(None), type, value=None)
def get_test_dependency(self) -> Optional["GprMaxRegressionTest"]:
def get_test_dependency(self) -> Optional["GprMaxBaseTest"]:
"""Get test variant with the same model and number of models"""
if self.test_dependency is None:
return None
@@ -311,16 +311,17 @@ class GprMaxRegressionTest(RunOnlyRegressionTest):
return hours * 3600 + minutes * 60 + seconds
class GprMaxAPIRegressionTest(GprMaxRegressionTest):
class GprMaxAPIRegressionTest(GprMaxBaseTest):
executable = "time -p python"
@run_after("setup", always_last=True)
def configure_test_run(self):
"""Input files for API tests will be python files"""
super().configure_test_run(input_file_ext=".py")
# super().configure_test_run(input_file_ext=".py")
pass
class GprMaxBScanRegressionTest(GprMaxRegressionTest):
class GprMaxBScanRegressionTest(GprMaxBaseTest):
num_models = parameter()
@run_after("setup", always_last=True)
@@ -339,7 +340,7 @@ class GprMaxBScanRegressionTest(GprMaxRegressionTest):
class GprMaxTaskfarmRegressionTest(GprMaxBScanRegressionTest):
serial_dependency: type[GprMaxRegressionTest]
serial_dependency: type[GprMaxBaseTest]
extra_executable_opts = ["-taskfarm"]
sourcesdir = "src" # Necessary so test is not skipped (set later)
@@ -376,9 +377,9 @@ class GprMaxTaskfarmRegressionTest(GprMaxBScanRegressionTest):
self.snapshot_reference_files = target.snapshot_reference_files
class GprMaxMPIRegressionTest(GprMaxRegressionTest):
class GprMaxMPIRegressionTest(GprMaxBaseTest):
# TODO: Make this a variable
serial_dependency: type[GprMaxRegressionTest]
serial_dependency: type[GprMaxBaseTest]
mpi_layout = parameter()
sourcesdir = "src" # Necessary so test is not skipped (set later)

查看文件

@@ -6,7 +6,7 @@ from reframe import RegressionMixin
from reframe.core.builtins import parameter, required, run_after, variable
from typing_extensions import TYPE_CHECKING
from reframe_tests.tests.base_tests import GprMaxRegressionTest
from reframe_tests.tests.base_tests import GprMaxBaseTest
from reframe_tests.tests.regression_checks import (
ReceiverRegressionCheck,
RegressionCheck,
@@ -14,7 +14,7 @@ from reframe_tests.tests.regression_checks import (
)
if TYPE_CHECKING:
GprMaxMixin = GprMaxRegressionTest
GprMaxMixin = GprMaxBaseTest
else:
GprMaxMixin = RegressionMixin

查看文件

@@ -0,0 +1,6 @@
from reframe_tests.tests.base_tests import GprMaxBaseTest
from reframe_tests.tests.mixins import ReceiverMixin
class GprMaxRegressionTest(ReceiverMixin, GprMaxBaseTest):
pass

查看文件

@@ -1,15 +1,15 @@
import reframe as rfm
from reframe.core.builtins import parameter
from reframe_tests.tests.base_tests import GprMaxBScanRegressionTest, GprMaxRegressionTest
from reframe_tests.tests.mixins import MpiMixin, ReceiverMixin
from reframe_tests.tests.mixins import BScanMixin
from reframe_tests.tests.standard_tests import GprMaxRegressionTest
"""Reframe regression tests for example models in gprMax documentation
"""
@rfm.simple_test
class TestAscan(ReceiverMixin, GprMaxRegressionTest):
class TestAscan(GprMaxRegressionTest):
tags = {
"test",
"serial",
@@ -26,7 +26,7 @@ class TestAscan(ReceiverMixin, GprMaxRegressionTest):
@rfm.simple_test
class TestBscan(GprMaxBScanRegressionTest):
class TestBscan(BScanMixin, GprMaxRegressionTest):
tags = {
"test",
"serial",