diff --git a/reframe_tests/tests/standard_tests.py b/reframe_tests/tests/standard_tests.py index 4c854a10..98f23c06 100644 --- a/reframe_tests/tests/standard_tests.py +++ b/reframe_tests/tests/standard_tests.py @@ -1,6 +1,10 @@ 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): pass + + +class GprMaxSnapshotTest(SnapshotMixin, GprMaxBaseTest): + pass diff --git a/reframe_tests/tests/test_2d_models.py b/reframe_tests/tests/test_2d_models.py index 81b1c572..2d495f38 100644 --- a/reframe_tests/tests/test_2d_models.py +++ b/reframe_tests/tests/test_2d_models.py @@ -1,7 +1,8 @@ import reframe as rfm 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) """ @@ -33,24 +34,21 @@ class Test2DModelYZ(GprMaxRegressionTest): @rfm.simple_test -class Test2DModelXYMpi(GprMaxMPIRegressionTest): +class Test2DModelXYMpi(MpiMixin, Test2DModelXY): tags = {"test", "mpi", "2d", "waveform", "hertzian_dipole"} mpi_layout = parameter([[4, 4, 1]]) - serial_dependency = Test2DModelXY - model = serial_dependency.model + test_dependency = "Test2DModelXY" @rfm.simple_test -class Test2DModelXZMpi(GprMaxMPIRegressionTest): +class Test2DModelXZMpi(MpiMixin, Test2DModelXZ): tags = {"test", "mpi", "2d", "waveform", "hertzian_dipole"} mpi_layout = parameter([[4, 1, 4]]) - serial_dependency = Test2DModelXZ - model = serial_dependency.model + test_dependency = "Test2DModelXZ" @rfm.simple_test -class Test2DModelYZMpi(GprMaxMPIRegressionTest): +class Test2DModelYZMpi(MpiMixin, Test2DModelYZ): tags = {"test", "mpi", "2d", "waveform", "hertzian_dipole"} mpi_layout = parameter([[1, 4, 4]]) - serial_dependency = Test2DModelYZ - model = serial_dependency.model + test_dependency = "Test2DModelYZ" diff --git a/reframe_tests/tests/test_geometry.py b/reframe_tests/tests/test_geometry.py index 209a8599..5dfbb119 100644 --- a/reframe_tests/tests/test_geometry.py +++ b/reframe_tests/tests/test_geometry.py @@ -1,7 +1,8 @@ import reframe as rfm 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 """ @@ -34,11 +35,10 @@ class TestBoxGeometryNoPml(GprMaxRegressionTest): @rfm.simple_test -class TestEdgeGeometry(GprMaxRegressionTest): +class TestEdgeGeometry(AntennaModelMixin, GprMaxRegressionTest): tags = {"test", "serial", "geometry", "edge", "transmission_line", "waveform", "antenna"} sourcesdir = "src/geometry_tests/edge_geometry" model = parameter(["antenna_wire_dipole_fs"]) - is_antenna_model = True """Test MPI Functionality @@ -46,29 +46,21 @@ class TestEdgeGeometry(GprMaxRegressionTest): @rfm.simple_test -class TestBoxGeometryDefaultPmlMpi(GprMaxMPIRegressionTest): +class TestBoxGeometryDefaultPmlMpi(MpiMixin, TestBoxGeometryDefaultPml): tags = {"test", "mpi", "geometery", "box"} mpi_layout = parameter([[2, 2, 2], [3, 3, 3], [4, 4, 4]]) - serial_dependency = TestBoxGeometryDefaultPml - model = serial_dependency.model + test_dependency = "TestBoxGeometryDefaultPml" @rfm.simple_test -class TestBoxGeometryNoPmlMpi(GprMaxMPIRegressionTest): +class TestBoxGeometryNoPmlMpi(MpiMixin, TestBoxGeometryNoPml): tags = {"test", "mpi", "geometery", "box"} mpi_layout = parameter([[2, 2, 2], [3, 3, 3], [4, 4, 4]]) - serial_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}") + test_dependency = "TestBoxGeometryNoPml" @rfm.simple_test -class TestEdgeGeometryMpi(GprMaxMPIRegressionTest): +class TestEdgeGeometryMpi(MpiMixin, TestEdgeGeometry): tags = {"test", "mpi", "geometry", "edge", "transmission_line", "waveform", "antenna"} mpi_layout = parameter([[3, 3, 3]]) - serial_dependency = TestEdgeGeometry - model = serial_dependency.model - is_antenna_model = True + test_dependency = "TestEdgeGeometry" diff --git a/reframe_tests/tests/test_materials.py b/reframe_tests/tests/test_materials.py index f0de4773..d7f75aeb 100644 --- a/reframe_tests/tests/test_materials.py +++ b/reframe_tests/tests/test_materials.py @@ -1,7 +1,8 @@ import reframe as rfm 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 """ @@ -19,8 +20,7 @@ class TestDispersiveMaterials(GprMaxRegressionTest): @rfm.simple_test -class TestDispersiveMaterialsMpi(GprMaxMPIRegressionTest): +class TestDispersiveMaterialsMpi(MpiMixin, TestDispersiveMaterials): tags = {"test", "mpi", "hertzian_dipole", "waveform", "material", "dispersive", "box"} mpi_layout = parameter([[3, 3, 3]]) - serial_dependency = TestDispersiveMaterials - model = serial_dependency.model + test_dependency = "TestDispersiveMaterials" diff --git a/reframe_tests/tests/test_pmls.py b/reframe_tests/tests/test_pmls.py index a25ddbf3..25e22194 100644 --- a/reframe_tests/tests/test_pmls.py +++ b/reframe_tests/tests/test_pmls.py @@ -1,7 +1,8 @@ import reframe as rfm 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 """ @@ -12,7 +13,6 @@ class TestSingleCellPml(GprMaxRegressionTest): tags = {"test", "serial", "geometery", "box", "pml"} sourcesdir = "src/pml_tests" model = parameter(["single_cell_pml_2d"]) - rx_outputs = ["Hx"] """Test MPI Functionality @@ -20,9 +20,7 @@ class TestSingleCellPml(GprMaxRegressionTest): @rfm.simple_test -class TestSingleCellPmlMpi(GprMaxMPIRegressionTest): +class TestSingleCellPmlMpi(MpiMixin, TestSingleCellPml): tags = {"test", "mpi", "geometery", "box", "pml"} mpi_layout = parameter([[2, 2, 1], [3, 3, 1]]) - serial_dependency = TestSingleCellPml - model = serial_dependency.model - rx_outputs = ["Hx"] + test_dependency = "TestSingleCellPml" diff --git a/reframe_tests/tests/test_snapshots.py b/reframe_tests/tests/test_snapshots.py index d03d6421..c24241f2 100644 --- a/reframe_tests/tests/test_snapshots.py +++ b/reframe_tests/tests/test_snapshots.py @@ -1,33 +1,31 @@ import reframe as rfm 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 -class Test2DSnapshot(GprMaxRegressionTest): +class Test2DSnapshot(GprMaxSnapshotTest): tags = {"test", "serial", "2d", "waveform", "hertzian_dipole", "snapshot"} sourcesdir = "src/snapshot_tests" model = parameter(["whole_domain_2d"]) - has_receiver_output = False snapshots = ["snapshot_0.h5", "snapshot_1.h5", "snapshot_2.h5", "snapshot_3.h5"] @rfm.simple_test -class TestSnapshot(GprMaxRegressionTest): +class TestSnapshot(GprMaxSnapshotTest): tags = {"test", "serial", "2d", "waveform", "hertzian_dipole", "snapshot"} sourcesdir = "src/snapshot_tests" model = parameter(["whole_domain"]) - has_receiver_output = False snapshots = ["snapshot_0.h5", "snapshot_1.h5", "snapshot_2.h5", "snapshot_3.h5"] @rfm.simple_test -class Test2DSliceSnapshot(GprMaxRegressionTest): +class Test2DSliceSnapshot(GprMaxSnapshotTest): tags = {"test", "serial", "2d", "waveform", "hertzian_dipole", "snapshot"} sourcesdir = "src/snapshot_tests" model = parameter(["2d_slices"]) - has_receiver_output = False snapshots = [ "snapshot_x_05.h5", "snapshot_x_35.h5", @@ -49,15 +47,14 @@ class Test2DSliceSnapshot(GprMaxRegressionTest): @rfm.simple_test -class Test2DSnapshotMpi(GprMaxMPIRegressionTest): +class Test2DSnapshotMpi(MpiMixin, Test2DSnapshot): tags = {"test", "mpi", "2d", "waveform", "hertzian_dipole", "snapshot"} mpi_layout = parameter([[2, 2, 1], [3, 3, 1], [4, 4, 1]]) - serial_dependency = Test2DSnapshot - model = serial_dependency.model + test_dependency = "Test2DSnapshot" @rfm.simple_test -class TestSnapshotMpi(GprMaxMPIRegressionTest): +class TestSnapshotMpi(MpiMixin, TestSnapshot): tags = {"test", "mpi", "2d", "waveform", "hertzian_dipole", "snapshot"} mpi_layout = parameter( [ @@ -72,12 +69,11 @@ class TestSnapshotMpi(GprMaxMPIRegressionTest): [4, 4, 4], ] ) - serial_dependency = TestSnapshot - model = serial_dependency.model + test_dependency = "TestSnapshot" @rfm.simple_test -class Test2DSliceSnapshotMpi(GprMaxMPIRegressionTest): +class Test2DSliceSnapshotMpi(MpiMixin, Test2DSliceSnapshot): tags = {"test", "mpi", "2d", "waveform", "hertzian_dipole", "snapshot"} mpi_layout = parameter( [ @@ -92,5 +88,4 @@ class Test2DSliceSnapshotMpi(GprMaxMPIRegressionTest): [4, 4, 4], ] ) - serial_dependency = Test2DSliceSnapshot - model = serial_dependency.model + test_dependency = "Test2DSliceSnapshot" diff --git a/reframe_tests/tests/test_sources.py b/reframe_tests/tests/test_sources.py index f058406f..cd4613d7 100644 --- a/reframe_tests/tests/test_sources.py +++ b/reframe_tests/tests/test_sources.py @@ -1,7 +1,8 @@ import reframe as rfm 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 """ @@ -33,24 +34,21 @@ class TestTransmissionLineSource(GprMaxRegressionTest): @rfm.simple_test -class TestHertzianDipoleSourceMpi(GprMaxMPIRegressionTest): +class TestHertzianDipoleSourceMpi(MpiMixin, TestHertzianDipoleSource): tags = {"test", "mpi", "hertzian_dipole", "waveform"} mpi_layout = parameter([[3, 3, 3]]) - serial_dependency = TestHertzianDipoleSource - model = serial_dependency.model + test_dependency = "TestHertzianDipoleSource" @rfm.simple_test -class TestMagneticDipoleSourceMpi(GprMaxMPIRegressionTest): +class TestMagneticDipoleSourceMpi(MpiMixin, TestMagneticDipoleSource): tags = {"test", "mpi", "magnetic_dipole", "waveform"} mpi_layout = parameter([[3, 3, 3]]) - serial_dependency = TestMagneticDipoleSource - model = serial_dependency.model + test_dependency = "TestMagneticDipoleSource" @rfm.simple_test -class TestTransmissionLineSourceMpi(GprMaxMPIRegressionTest): +class TestTransmissionLineSourceMpi(MpiMixin, TestTransmissionLineSource): tags = {"test", "mpi", "transmission_line", "waveform"} mpi_layout = parameter([[3, 3, 3]]) - serial_dependency = TestTransmissionLineSource - model = serial_dependency.model + test_dependency = "TestTransmissionLineSource" diff --git a/reframe_tests/tests/test_subgrids.py b/reframe_tests/tests/test_subgrids.py index cc3f9de9..6135b2a5 100644 --- a/reframe_tests/tests/test_subgrids.py +++ b/reframe_tests/tests/test_subgrids.py @@ -1,14 +1,15 @@ import reframe as rfm 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 """ @rfm.simple_test -class TestSubgrids(GprMaxAPIRegressionTest): +class TestSubgrids(PythonApiMixin, GprMaxRegressionTest): tags = { "test", "api", @@ -25,7 +26,7 @@ class TestSubgrids(GprMaxAPIRegressionTest): @rfm.simple_test -class TestSubgridsWithAntennaModel(GprMaxAPIRegressionTest): +class TestSubgridsWithAntennaModel(AntennaModelMixin, PythonApiMixin, GprMaxRegressionTest): tags = { "test", "api", @@ -39,7 +40,6 @@ class TestSubgridsWithAntennaModel(GprMaxAPIRegressionTest): } sourcesdir = "src/subgrid_tests" model = parameter(["gssi_400_over_fractal_subsurface"]) - is_antenna_model = True @run_after("init") def skip_test(self): diff --git a/reframe_tests/tests/test_taskfarm_functionality.py b/reframe_tests/tests/test_taskfarm_functionality.py index 9154952f..f2cc31c6 100644 --- a/reframe_tests/tests/test_taskfarm_functionality.py +++ b/reframe_tests/tests/test_taskfarm_functionality.py @@ -1,6 +1,7 @@ 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 """Reframe regression tests for taskfarm functionality @@ -8,7 +9,7 @@ from reframe_tests.tests.test_example_models import TestBscan @rfm.simple_test -class TestSingleNodeTaskfarm(GprMaxTaskfarmRegressionTest): +class TestSingleNodeTaskfarm(TaskfarmMixin, TestBscan): tags = { "test", "mpi", @@ -22,13 +23,11 @@ class TestSingleNodeTaskfarm(GprMaxTaskfarmRegressionTest): } num_tasks = 8 num_tasks_per_node = 8 - serial_dependency = TestBscan - model = serial_dependency.model - num_models = serial_dependency.num_models + test_dependency = "TestBscan" @rfm.simple_test -class TestMultiNodeTaskfarm(GprMaxTaskfarmRegressionTest): +class TestMultiNodeTaskfarm(TaskfarmMixin, TestBscan): tags = { "test", "mpi", @@ -42,6 +41,4 @@ class TestMultiNodeTaskfarm(GprMaxTaskfarmRegressionTest): } num_tasks = 32 num_tasks_per_node = 8 - serial_dependency = TestBscan - model = serial_dependency.model - num_models = serial_dependency.num_models + test_dependency = "TestBscan"