Refactor existing tests to use new mixin classes

这个提交包含在:
nmannall
2024-11-25 15:16:15 +00:00
父节点 cb04fe9109
当前提交 b6db6d9700
共有 9 个文件被更改,包括 59 次插入77 次删除

查看文件

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

查看文件

@@ -1,7 +1,8 @@
import reframe as rfm import reframe as rfm
from reframe.core.builtins import parameter from reframe.core.builtins import parameter
from reframe_tests.tests.base_tests import GprMaxMPIRegressionTest, GprMaxRegressionTest from reframe_tests.tests.mixins import MpiMixin
from reframe_tests.tests.standard_tests import GprMaxRegressionTest
"""Reframe regression tests for 2D models (TMx, TMy, and TMz) """Reframe regression tests for 2D models (TMx, TMy, and TMz)
""" """
@@ -33,24 +34,21 @@ class Test2DModelYZ(GprMaxRegressionTest):
@rfm.simple_test @rfm.simple_test
class Test2DModelXYMpi(GprMaxMPIRegressionTest): class Test2DModelXYMpi(MpiMixin, Test2DModelXY):
tags = {"test", "mpi", "2d", "waveform", "hertzian_dipole"} tags = {"test", "mpi", "2d", "waveform", "hertzian_dipole"}
mpi_layout = parameter([[4, 4, 1]]) mpi_layout = parameter([[4, 4, 1]])
serial_dependency = Test2DModelXY test_dependency = "Test2DModelXY"
model = serial_dependency.model
@rfm.simple_test @rfm.simple_test
class Test2DModelXZMpi(GprMaxMPIRegressionTest): class Test2DModelXZMpi(MpiMixin, Test2DModelXZ):
tags = {"test", "mpi", "2d", "waveform", "hertzian_dipole"} tags = {"test", "mpi", "2d", "waveform", "hertzian_dipole"}
mpi_layout = parameter([[4, 1, 4]]) mpi_layout = parameter([[4, 1, 4]])
serial_dependency = Test2DModelXZ test_dependency = "Test2DModelXZ"
model = serial_dependency.model
@rfm.simple_test @rfm.simple_test
class Test2DModelYZMpi(GprMaxMPIRegressionTest): class Test2DModelYZMpi(MpiMixin, Test2DModelYZ):
tags = {"test", "mpi", "2d", "waveform", "hertzian_dipole"} tags = {"test", "mpi", "2d", "waveform", "hertzian_dipole"}
mpi_layout = parameter([[1, 4, 4]]) mpi_layout = parameter([[1, 4, 4]])
serial_dependency = Test2DModelYZ test_dependency = "Test2DModelYZ"
model = serial_dependency.model

查看文件

@@ -1,7 +1,8 @@
import reframe as rfm import reframe as rfm
from reframe.core.builtins import parameter, run_before from reframe.core.builtins import parameter, run_before
from reframe_tests.tests.base_tests import GprMaxMPIRegressionTest, GprMaxRegressionTest from reframe_tests.tests.mixins import AntennaModelMixin, MpiMixin
from reframe_tests.tests.standard_tests import GprMaxRegressionTest
"""Reframe regression tests for models defining geometry """Reframe regression tests for models defining geometry
""" """
@@ -34,11 +35,10 @@ class TestBoxGeometryNoPml(GprMaxRegressionTest):
@rfm.simple_test @rfm.simple_test
class TestEdgeGeometry(GprMaxRegressionTest): class TestEdgeGeometry(AntennaModelMixin, GprMaxRegressionTest):
tags = {"test", "serial", "geometry", "edge", "transmission_line", "waveform", "antenna"} tags = {"test", "serial", "geometry", "edge", "transmission_line", "waveform", "antenna"}
sourcesdir = "src/geometry_tests/edge_geometry" sourcesdir = "src/geometry_tests/edge_geometry"
model = parameter(["antenna_wire_dipole_fs"]) model = parameter(["antenna_wire_dipole_fs"])
is_antenna_model = True
"""Test MPI Functionality """Test MPI Functionality
@@ -46,29 +46,21 @@ class TestEdgeGeometry(GprMaxRegressionTest):
@rfm.simple_test @rfm.simple_test
class TestBoxGeometryDefaultPmlMpi(GprMaxMPIRegressionTest): class TestBoxGeometryDefaultPmlMpi(MpiMixin, TestBoxGeometryDefaultPml):
tags = {"test", "mpi", "geometery", "box"} tags = {"test", "mpi", "geometery", "box"}
mpi_layout = parameter([[2, 2, 2], [3, 3, 3], [4, 4, 4]]) mpi_layout = parameter([[2, 2, 2], [3, 3, 3], [4, 4, 4]])
serial_dependency = TestBoxGeometryDefaultPml test_dependency = "TestBoxGeometryDefaultPml"
model = serial_dependency.model
@rfm.simple_test @rfm.simple_test
class TestBoxGeometryNoPmlMpi(GprMaxMPIRegressionTest): class TestBoxGeometryNoPmlMpi(MpiMixin, TestBoxGeometryNoPml):
tags = {"test", "mpi", "geometery", "box"} tags = {"test", "mpi", "geometery", "box"}
mpi_layout = parameter([[2, 2, 2], [3, 3, 3], [4, 4, 4]]) mpi_layout = parameter([[2, 2, 2], [3, 3, 3], [4, 4, 4]])
serial_dependency = TestBoxGeometryNoPml test_dependency = "TestBoxGeometryNoPml"
model = serial_dependency.model
@run_before("run")
def add_gprmax_commands(self):
self.prerun_cmds.append(f"echo '#pml_cells: 0' >> {self.input_file}")
@rfm.simple_test @rfm.simple_test
class TestEdgeGeometryMpi(GprMaxMPIRegressionTest): class TestEdgeGeometryMpi(MpiMixin, TestEdgeGeometry):
tags = {"test", "mpi", "geometry", "edge", "transmission_line", "waveform", "antenna"} tags = {"test", "mpi", "geometry", "edge", "transmission_line", "waveform", "antenna"}
mpi_layout = parameter([[3, 3, 3]]) mpi_layout = parameter([[3, 3, 3]])
serial_dependency = TestEdgeGeometry test_dependency = "TestEdgeGeometry"
model = serial_dependency.model
is_antenna_model = True

查看文件

@@ -1,7 +1,8 @@
import reframe as rfm import reframe as rfm
from reframe.core.builtins import parameter from reframe.core.builtins import parameter
from reframe_tests.tests.base_tests import GprMaxMPIRegressionTest, GprMaxRegressionTest from reframe_tests.tests.mixins import MpiMixin
from reframe_tests.tests.standard_tests import GprMaxRegressionTest
"""Reframe regression tests for each gprMax source """Reframe regression tests for each gprMax source
""" """
@@ -19,8 +20,7 @@ class TestDispersiveMaterials(GprMaxRegressionTest):
@rfm.simple_test @rfm.simple_test
class TestDispersiveMaterialsMpi(GprMaxMPIRegressionTest): class TestDispersiveMaterialsMpi(MpiMixin, TestDispersiveMaterials):
tags = {"test", "mpi", "hertzian_dipole", "waveform", "material", "dispersive", "box"} tags = {"test", "mpi", "hertzian_dipole", "waveform", "material", "dispersive", "box"}
mpi_layout = parameter([[3, 3, 3]]) mpi_layout = parameter([[3, 3, 3]])
serial_dependency = TestDispersiveMaterials test_dependency = "TestDispersiveMaterials"
model = serial_dependency.model

查看文件

@@ -1,7 +1,8 @@
import reframe as rfm import reframe as rfm
from reframe.core.builtins import parameter from reframe.core.builtins import parameter
from reframe_tests.tests.base_tests import GprMaxMPIRegressionTest, GprMaxRegressionTest from reframe_tests.tests.mixins import MpiMixin
from reframe_tests.tests.standard_tests import GprMaxRegressionTest
"""Reframe regression tests for models defining geometry """Reframe regression tests for models defining geometry
""" """
@@ -12,7 +13,6 @@ class TestSingleCellPml(GprMaxRegressionTest):
tags = {"test", "serial", "geometery", "box", "pml"} tags = {"test", "serial", "geometery", "box", "pml"}
sourcesdir = "src/pml_tests" sourcesdir = "src/pml_tests"
model = parameter(["single_cell_pml_2d"]) model = parameter(["single_cell_pml_2d"])
rx_outputs = ["Hx"]
"""Test MPI Functionality """Test MPI Functionality
@@ -20,9 +20,7 @@ class TestSingleCellPml(GprMaxRegressionTest):
@rfm.simple_test @rfm.simple_test
class TestSingleCellPmlMpi(GprMaxMPIRegressionTest): class TestSingleCellPmlMpi(MpiMixin, TestSingleCellPml):
tags = {"test", "mpi", "geometery", "box", "pml"} tags = {"test", "mpi", "geometery", "box", "pml"}
mpi_layout = parameter([[2, 2, 1], [3, 3, 1]]) mpi_layout = parameter([[2, 2, 1], [3, 3, 1]])
serial_dependency = TestSingleCellPml test_dependency = "TestSingleCellPml"
model = serial_dependency.model
rx_outputs = ["Hx"]

查看文件

@@ -1,33 +1,31 @@
import reframe as rfm import reframe as rfm
from reframe.core.builtins import parameter from reframe.core.builtins import parameter
from reframe_tests.tests.base_tests import GprMaxMPIRegressionTest, GprMaxRegressionTest from reframe_tests.tests.mixins import MpiMixin
from reframe_tests.tests.standard_tests import GprMaxSnapshotTest
@rfm.simple_test @rfm.simple_test
class Test2DSnapshot(GprMaxRegressionTest): class Test2DSnapshot(GprMaxSnapshotTest):
tags = {"test", "serial", "2d", "waveform", "hertzian_dipole", "snapshot"} tags = {"test", "serial", "2d", "waveform", "hertzian_dipole", "snapshot"}
sourcesdir = "src/snapshot_tests" sourcesdir = "src/snapshot_tests"
model = parameter(["whole_domain_2d"]) model = parameter(["whole_domain_2d"])
has_receiver_output = False
snapshots = ["snapshot_0.h5", "snapshot_1.h5", "snapshot_2.h5", "snapshot_3.h5"] snapshots = ["snapshot_0.h5", "snapshot_1.h5", "snapshot_2.h5", "snapshot_3.h5"]
@rfm.simple_test @rfm.simple_test
class TestSnapshot(GprMaxRegressionTest): class TestSnapshot(GprMaxSnapshotTest):
tags = {"test", "serial", "2d", "waveform", "hertzian_dipole", "snapshot"} tags = {"test", "serial", "2d", "waveform", "hertzian_dipole", "snapshot"}
sourcesdir = "src/snapshot_tests" sourcesdir = "src/snapshot_tests"
model = parameter(["whole_domain"]) model = parameter(["whole_domain"])
has_receiver_output = False
snapshots = ["snapshot_0.h5", "snapshot_1.h5", "snapshot_2.h5", "snapshot_3.h5"] snapshots = ["snapshot_0.h5", "snapshot_1.h5", "snapshot_2.h5", "snapshot_3.h5"]
@rfm.simple_test @rfm.simple_test
class Test2DSliceSnapshot(GprMaxRegressionTest): class Test2DSliceSnapshot(GprMaxSnapshotTest):
tags = {"test", "serial", "2d", "waveform", "hertzian_dipole", "snapshot"} tags = {"test", "serial", "2d", "waveform", "hertzian_dipole", "snapshot"}
sourcesdir = "src/snapshot_tests" sourcesdir = "src/snapshot_tests"
model = parameter(["2d_slices"]) model = parameter(["2d_slices"])
has_receiver_output = False
snapshots = [ snapshots = [
"snapshot_x_05.h5", "snapshot_x_05.h5",
"snapshot_x_35.h5", "snapshot_x_35.h5",
@@ -49,15 +47,14 @@ class Test2DSliceSnapshot(GprMaxRegressionTest):
@rfm.simple_test @rfm.simple_test
class Test2DSnapshotMpi(GprMaxMPIRegressionTest): class Test2DSnapshotMpi(MpiMixin, Test2DSnapshot):
tags = {"test", "mpi", "2d", "waveform", "hertzian_dipole", "snapshot"} tags = {"test", "mpi", "2d", "waveform", "hertzian_dipole", "snapshot"}
mpi_layout = parameter([[2, 2, 1], [3, 3, 1], [4, 4, 1]]) mpi_layout = parameter([[2, 2, 1], [3, 3, 1], [4, 4, 1]])
serial_dependency = Test2DSnapshot test_dependency = "Test2DSnapshot"
model = serial_dependency.model
@rfm.simple_test @rfm.simple_test
class TestSnapshotMpi(GprMaxMPIRegressionTest): class TestSnapshotMpi(MpiMixin, TestSnapshot):
tags = {"test", "mpi", "2d", "waveform", "hertzian_dipole", "snapshot"} tags = {"test", "mpi", "2d", "waveform", "hertzian_dipole", "snapshot"}
mpi_layout = parameter( mpi_layout = parameter(
[ [
@@ -72,12 +69,11 @@ class TestSnapshotMpi(GprMaxMPIRegressionTest):
[4, 4, 4], [4, 4, 4],
] ]
) )
serial_dependency = TestSnapshot test_dependency = "TestSnapshot"
model = serial_dependency.model
@rfm.simple_test @rfm.simple_test
class Test2DSliceSnapshotMpi(GprMaxMPIRegressionTest): class Test2DSliceSnapshotMpi(MpiMixin, Test2DSliceSnapshot):
tags = {"test", "mpi", "2d", "waveform", "hertzian_dipole", "snapshot"} tags = {"test", "mpi", "2d", "waveform", "hertzian_dipole", "snapshot"}
mpi_layout = parameter( mpi_layout = parameter(
[ [
@@ -92,5 +88,4 @@ class Test2DSliceSnapshotMpi(GprMaxMPIRegressionTest):
[4, 4, 4], [4, 4, 4],
] ]
) )
serial_dependency = Test2DSliceSnapshot test_dependency = "Test2DSliceSnapshot"
model = serial_dependency.model

查看文件

@@ -1,7 +1,8 @@
import reframe as rfm import reframe as rfm
from reframe.core.builtins import parameter from reframe.core.builtins import parameter
from reframe_tests.tests.base_tests import GprMaxMPIRegressionTest, GprMaxRegressionTest from reframe_tests.tests.mixins import MpiMixin
from reframe_tests.tests.standard_tests import GprMaxRegressionTest
"""Reframe regression tests for each gprMax source """Reframe regression tests for each gprMax source
""" """
@@ -33,24 +34,21 @@ class TestTransmissionLineSource(GprMaxRegressionTest):
@rfm.simple_test @rfm.simple_test
class TestHertzianDipoleSourceMpi(GprMaxMPIRegressionTest): class TestHertzianDipoleSourceMpi(MpiMixin, TestHertzianDipoleSource):
tags = {"test", "mpi", "hertzian_dipole", "waveform"} tags = {"test", "mpi", "hertzian_dipole", "waveform"}
mpi_layout = parameter([[3, 3, 3]]) mpi_layout = parameter([[3, 3, 3]])
serial_dependency = TestHertzianDipoleSource test_dependency = "TestHertzianDipoleSource"
model = serial_dependency.model
@rfm.simple_test @rfm.simple_test
class TestMagneticDipoleSourceMpi(GprMaxMPIRegressionTest): class TestMagneticDipoleSourceMpi(MpiMixin, TestMagneticDipoleSource):
tags = {"test", "mpi", "magnetic_dipole", "waveform"} tags = {"test", "mpi", "magnetic_dipole", "waveform"}
mpi_layout = parameter([[3, 3, 3]]) mpi_layout = parameter([[3, 3, 3]])
serial_dependency = TestMagneticDipoleSource test_dependency = "TestMagneticDipoleSource"
model = serial_dependency.model
@rfm.simple_test @rfm.simple_test
class TestTransmissionLineSourceMpi(GprMaxMPIRegressionTest): class TestTransmissionLineSourceMpi(MpiMixin, TestTransmissionLineSource):
tags = {"test", "mpi", "transmission_line", "waveform"} tags = {"test", "mpi", "transmission_line", "waveform"}
mpi_layout = parameter([[3, 3, 3]]) mpi_layout = parameter([[3, 3, 3]])
serial_dependency = TestTransmissionLineSource test_dependency = "TestTransmissionLineSource"
model = serial_dependency.model

查看文件

@@ -1,14 +1,15 @@
import reframe as rfm import reframe as rfm
from reframe.core.builtins import parameter, run_after from reframe.core.builtins import parameter, run_after
from reframe_tests.tests.base_tests import GprMaxAPIRegressionTest from reframe_tests.tests.mixins import AntennaModelMixin, PythonApiMixin
from reframe_tests.tests.standard_tests import GprMaxRegressionTest
"""Reframe regression tests for subgrids """Reframe regression tests for subgrids
""" """
@rfm.simple_test @rfm.simple_test
class TestSubgrids(GprMaxAPIRegressionTest): class TestSubgrids(PythonApiMixin, GprMaxRegressionTest):
tags = { tags = {
"test", "test",
"api", "api",
@@ -25,7 +26,7 @@ class TestSubgrids(GprMaxAPIRegressionTest):
@rfm.simple_test @rfm.simple_test
class TestSubgridsWithAntennaModel(GprMaxAPIRegressionTest): class TestSubgridsWithAntennaModel(AntennaModelMixin, PythonApiMixin, GprMaxRegressionTest):
tags = { tags = {
"test", "test",
"api", "api",
@@ -39,7 +40,6 @@ class TestSubgridsWithAntennaModel(GprMaxAPIRegressionTest):
} }
sourcesdir = "src/subgrid_tests" sourcesdir = "src/subgrid_tests"
model = parameter(["gssi_400_over_fractal_subsurface"]) model = parameter(["gssi_400_over_fractal_subsurface"])
is_antenna_model = True
@run_after("init") @run_after("init")
def skip_test(self): def skip_test(self):

查看文件

@@ -1,6 +1,7 @@
import reframe as rfm import reframe as rfm
from reframe_tests.tests.base_tests import GprMaxTaskfarmRegressionTest from reframe_tests.tests.mixins import TaskfarmMixin
from reframe_tests.tests.standard_tests import GprMaxRegressionTest
from reframe_tests.tests.test_example_models import TestBscan from reframe_tests.tests.test_example_models import TestBscan
"""Reframe regression tests for taskfarm functionality """Reframe regression tests for taskfarm functionality
@@ -8,7 +9,7 @@ from reframe_tests.tests.test_example_models import TestBscan
@rfm.simple_test @rfm.simple_test
class TestSingleNodeTaskfarm(GprMaxTaskfarmRegressionTest): class TestSingleNodeTaskfarm(TaskfarmMixin, TestBscan):
tags = { tags = {
"test", "test",
"mpi", "mpi",
@@ -22,13 +23,11 @@ class TestSingleNodeTaskfarm(GprMaxTaskfarmRegressionTest):
} }
num_tasks = 8 num_tasks = 8
num_tasks_per_node = 8 num_tasks_per_node = 8
serial_dependency = TestBscan test_dependency = "TestBscan"
model = serial_dependency.model
num_models = serial_dependency.num_models
@rfm.simple_test @rfm.simple_test
class TestMultiNodeTaskfarm(GprMaxTaskfarmRegressionTest): class TestMultiNodeTaskfarm(TaskfarmMixin, TestBscan):
tags = { tags = {
"test", "test",
"mpi", "mpi",
@@ -42,6 +41,4 @@ class TestMultiNodeTaskfarm(GprMaxTaskfarmRegressionTest):
} }
num_tasks = 32 num_tasks = 32
num_tasks_per_node = 8 num_tasks_per_node = 8
serial_dependency = TestBscan test_dependency = "TestBscan"
model = serial_dependency.model
num_models = serial_dependency.num_models