你已经派生过 gprMax
镜像自地址
https://gitee.com/sunhf/gprMax.git
已同步 2025-08-07 15:10:13 +08:00
Refactor existing tests to use new mixin classes
这个提交包含在:
@@ -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
|
||||
|
@@ -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"
|
||||
|
@@ -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"
|
||||
|
@@ -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"
|
||||
|
@@ -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"
|
||||
|
@@ -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"
|
||||
|
@@ -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"
|
||||
|
@@ -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):
|
||||
|
@@ -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"
|
||||
|
在新工单中引用
屏蔽一个用户