From 8af024b496501e6734a9c8e2d9a7ec35da24da3b Mon Sep 17 00:00:00 2001 From: nmannall Date: Tue, 16 Jul 2024 12:10:43 +0100 Subject: [PATCH] Move test input files into folders Reduces the number of unnecessary files present in the test stage and output directories. --- reframe_tests/base_tests.py | 23 +++++++++++++++---- reframe_tests/reframe_tests.py | 19 +++++++++++---- reframe_tests/src/{ => 2d_tests}/2D_ExHyHz.in | 0 .../src/{ => 2d_tests}/2D_ExHyHz_hs.in | 0 reframe_tests/src/{ => 2d_tests}/2D_EyHxHz.in | 0 reframe_tests/src/{ => 2d_tests}/2D_EzHxHy.in | 0 .../benchmark_model_0.1.in | 0 .../benchmark_model_0.15.in | 0 .../benchmark_model_0.2.in | 0 .../benchmark_model_0.3.in | 0 .../benchmark_model_0.4.in | 0 .../benchmark_model_0.5.in | 0 .../benchmark_model_0.6.in | 0 .../benchmark_model_0.7.in | 0 .../benchmark_model_0.8.in | 0 .../{ => bscan_tests}/cylinder_Bscan_2D.in | 0 .../{ => example_models}/cylinder_Ascan_2D.in | 0 .../box_geometry}/box_full_model.in | 0 .../box_geometry}/box_half_model.in | 0 .../box_geometry}/box_outside_pml.in | 0 .../box_geometry}/box_single_rank.in | 0 .../box_single_rank_outside_pml.in | 0 .../edge_geometry}/antenna_wire_dipole_fs.in | 0 .../hertzian_dipole_dispersive.in | 0 .../magnetic_dipole_hs.in | 0 .../{ => source_tests}/hertzian_dipole_fs.in | 0 .../{ => source_tests}/magnetic_dipole_fs.in | 0 .../transmission_line_fs.in | 0 .../src/{ => subgrid_tests}/cylinder_fs.py | 0 .../gssi_400_over_fractal_subsurface.py | 0 30 files changed, 33 insertions(+), 9 deletions(-) rename reframe_tests/src/{ => 2d_tests}/2D_ExHyHz.in (100%) rename reframe_tests/src/{ => 2d_tests}/2D_ExHyHz_hs.in (100%) rename reframe_tests/src/{ => 2d_tests}/2D_EyHxHz.in (100%) rename reframe_tests/src/{ => 2d_tests}/2D_EzHxHy.in (100%) rename reframe_tests/src/{ => benchmark_tests}/benchmark_model_0.1.in (100%) rename reframe_tests/src/{ => benchmark_tests}/benchmark_model_0.15.in (100%) rename reframe_tests/src/{ => benchmark_tests}/benchmark_model_0.2.in (100%) rename reframe_tests/src/{ => benchmark_tests}/benchmark_model_0.3.in (100%) rename reframe_tests/src/{ => benchmark_tests}/benchmark_model_0.4.in (100%) rename reframe_tests/src/{ => benchmark_tests}/benchmark_model_0.5.in (100%) rename reframe_tests/src/{ => benchmark_tests}/benchmark_model_0.6.in (100%) rename reframe_tests/src/{ => benchmark_tests}/benchmark_model_0.7.in (100%) rename reframe_tests/src/{ => benchmark_tests}/benchmark_model_0.8.in (100%) rename reframe_tests/src/{ => bscan_tests}/cylinder_Bscan_2D.in (100%) rename reframe_tests/src/{ => example_models}/cylinder_Ascan_2D.in (100%) rename reframe_tests/src/{box_geometry_tests => geometry_tests/box_geometry}/box_full_model.in (100%) rename reframe_tests/src/{box_geometry_tests => geometry_tests/box_geometry}/box_half_model.in (100%) rename reframe_tests/src/{box_geometry_tests => geometry_tests/box_geometry}/box_outside_pml.in (100%) rename reframe_tests/src/{box_geometry_tests => geometry_tests/box_geometry}/box_single_rank.in (100%) rename reframe_tests/src/{box_geometry_tests => geometry_tests/box_geometry}/box_single_rank_outside_pml.in (100%) rename reframe_tests/src/{ => geometry_tests/edge_geometry}/antenna_wire_dipole_fs.in (100%) rename reframe_tests/src/{ => material_tests}/hertzian_dipole_dispersive.in (100%) rename reframe_tests/src/{ => material_tests}/magnetic_dipole_hs.in (100%) rename reframe_tests/src/{ => source_tests}/hertzian_dipole_fs.in (100%) rename reframe_tests/src/{ => source_tests}/magnetic_dipole_fs.in (100%) rename reframe_tests/src/{ => source_tests}/transmission_line_fs.in (100%) rename reframe_tests/src/{ => subgrid_tests}/cylinder_fs.py (100%) rename reframe_tests/src/{ => subgrid_tests}/gssi_400_over_fractal_subsurface.py (100%) diff --git a/reframe_tests/base_tests.py b/reframe_tests/base_tests.py index 7d0e16c6..fbbc6b9b 100644 --- a/reframe_tests/base_tests.py +++ b/reframe_tests/base_tests.py @@ -89,7 +89,7 @@ class GprMaxRegressionTest(rfm.RunOnlyRegressionTest): model = parameter() is_antenna_model = variable(bool, value=False) - # sourcesdir = required + sourcesdir = required extra_executable_opts = variable(typ.List[str], value=[]) executable = "time -p python -m gprMax --log-level 10 --hide-progress-bars" @@ -296,6 +296,7 @@ class GprMaxBScanRegressionTest(GprMaxRegressionTest): class GprMaxTaskfarmRegressionTest(GprMaxBScanRegressionTest): serial_dependency: type[GprMaxRegressionTest] extra_executable_opts = ["-taskfarm"] + sourcesdir = "src" num_tasks = required @@ -311,6 +312,11 @@ class GprMaxTaskfarmRegressionTest(GprMaxBScanRegressionTest): self.depends_on(self._get_variant(), udeps.by_env) super().inject_dependencies() + @run_after("init") + def setup_source_directory(self): + """Set the source directory to the same as the serial test""" + self.sourcesdir = str(self.serial_dependency.sourcesdir) + @run_before("run") def setup_reference_file(self): """Add prerun command to load the built Python environment""" @@ -322,11 +328,12 @@ class GprMaxMPIRegressionTest(GprMaxRegressionTest): # TODO: Make this a variable serial_dependency: type[GprMaxRegressionTest] mpi_layout = parameter() + sourcesdir = "src" @run_after("setup", always_last=True) def configure_test_run(self): self.num_tasks = int(product(self.mpi_layout)) - self.extra_executable_opts = ["-mpi", " ".join([str(i) for i in self.mpi_layout])] + self.extra_executable_opts = ["-mpi", *map(str, self.mpi_layout)] super().configure_test_run() def _get_variant(self) -> str: @@ -335,12 +342,20 @@ class GprMaxMPIRegressionTest(GprMaxRegressionTest): @run_after("init") def inject_dependencies(self): - """Test depends on the Python virtual environment building correctly""" + """Test depends on the specified serial test""" self.depends_on(self._get_variant(), udeps.by_env) super().inject_dependencies() + @run_after("init") + def setup_source_directory(self): + """Set the source directory to the same as the serial test""" + self.sourcesdir = str(self.serial_dependency.sourcesdir) + @run_before("run") def setup_reference_file(self): - """Add prerun command to load the built Python environment""" + """ + Set the reference file regression check to the output of the + serial test + """ target = self.getdep(self._get_variant()) self.reference_file = os.path.join(target.stagedir, str(self.output_file)) diff --git a/reframe_tests/reframe_tests.py b/reframe_tests/reframe_tests.py index ac656799..5ab2d9fa 100644 --- a/reframe_tests/reframe_tests.py +++ b/reframe_tests/reframe_tests.py @@ -29,6 +29,7 @@ class TestAscan(GprMaxRegressionTest): "box", "cylinder", } + sourcesdir = "src/example_models" model = parameter(["cylinder_Ascan_2D"]) @@ -45,6 +46,7 @@ class TestBscan(GprMaxBScanRegressionTest): "box", "cylinder", } + sourcesdir = "src/bscan_tests" model = parameter(["cylinder_Bscan_2D"]) num_models = parameter([64]) @@ -92,48 +94,56 @@ class TestMultiNodeTaskfarm(GprMaxTaskfarmRegressionTest): @rfm.simple_test class Test2DModelXY(GprMaxRegressionTest): tags = {"test", "serial", "2d", "waveform", "hertzian_dipole"} + sourcesdir = "src/2d_tests" model = parameter(["2D_EzHxHy"]) @rfm.simple_test class Test2DModelXZ(GprMaxRegressionTest): tags = {"test", "serial", "2d", "waveform", "hertzian_dipole"} + sourcesdir = "src/2d_tests" model = parameter(["2D_EyHxHz"]) @rfm.simple_test class Test2DModelYZ(GprMaxRegressionTest): tags = {"test", "serial", "2d", "waveform", "hertzian_dipole"} + sourcesdir = "src/2d_tests" model = parameter(["2D_ExHyHz"]) @rfm.simple_test class TestHertzianDipoleSource(GprMaxRegressionTest): tags = {"test", "serial", "hertzian_dipole", "waveform"} + sourcesdir = "src/source_tests" model = parameter(["hertzian_dipole_fs"]) @rfm.simple_test class TestMagneticDipoleSource(GprMaxRegressionTest): tags = {"test", "serial", "magnetic_dipole", "waveform"} + sourcesdir = "src/source_tests" model = parameter(["magnetic_dipole_fs"]) @rfm.simple_test class TestDispersiveMaterials(GprMaxRegressionTest): tags = {"test", "serial", "hertzian_dipole", "waveform", "material", "dispersive", "box"} + sourcesdir = "src/material_tests" model = parameter(["hertzian_dipole_dispersive"]) @rfm.simple_test class TestTransmissionLineSource(GprMaxRegressionTest): tags = {"test", "serial", "transmission_line", "waveform"} + sourcesdir = "src/source_tests" model = parameter(["transmission_line_fs"]) @rfm.simple_test class TestEdgeGeometry(GprMaxRegressionTest): tags = {"test", "serial", "geometry", "edge", "transmission_line", "waveform", "antenna"} + sourcesdir = "src/geomtry_tests/edge_geometry" model = parameter(["antenna_wire_dipole_fs"]) is_antenna_model = True @@ -151,6 +161,7 @@ class TestSubgrids(GprMaxAPIRegressionTest): "dispersive", "cylinder", } + sourcesdir = "src/subgrid_tests" model = parameter(["cylinder_fs"]) @@ -167,6 +178,7 @@ class TestSubgridsWithAntennaModel(GprMaxAPIRegressionTest): "fractal_box", "add_surface_roughness", } + sourcesdir = "src/subgrid_tests" model = parameter(["gssi_400_over_fractal_subsurface"]) is_antenna_model = True @@ -243,7 +255,7 @@ class TestEdgeGeometryMpi(GprMaxMPIRegressionTest): @rfm.simple_test class TestBoxGeometryNoPml(GprMaxRegressionTest): tags = {"test", "serial", "geometery", "box"} - sourcesdir = "src/box_geometry_tests" + sourcesdir = "src/geometry_tests/box_geometry" model = parameter(["box_full_model", "box_half_model", "box_single_rank"]) @run_before("run") @@ -254,7 +266,7 @@ class TestBoxGeometryNoPml(GprMaxRegressionTest): @rfm.simple_test class TestBoxGeometryDefaultPml(GprMaxRegressionTest): tags = {"test", "serial", "geometery", "box"} - sourcesdir = "src/box_geometry_tests" + sourcesdir = "src/geometry_tests/box_geometry" model = parameter( [ "box_full_model", @@ -272,7 +284,6 @@ class TestBoxGeometryNoPmlMpi(GprMaxMPIRegressionTest): mpi_layout = parameter([[2, 2, 2], [3, 3, 3], [4, 4, 4]]) serial_dependency = TestBoxGeometryNoPml model = serial_dependency.model - sourcesdir = "src/box_geometry_tests" @run_before("run") def add_gprmax_commands(self): @@ -285,7 +296,6 @@ class TestBoxGeometryDefaultPmlMpi(GprMaxMPIRegressionTest): mpi_layout = parameter([[2, 2, 2], [3, 3, 3], [4, 4, 4]]) serial_dependency = TestBoxGeometryDefaultPml model = serial_dependency.model - sourcesdir = "src/box_geometry_tests" @rfm.simple_test @@ -299,7 +309,6 @@ class TestSingleCellPml(GprMaxRegressionTest): @rfm.simple_test class TestSingleCellPmlMpi(GprMaxMPIRegressionTest): tags = {"test", "mpi", "geometery", "box", "pml"} - sourcesdir = "src/pml_tests" mpi_layout = parameter([[2, 2, 1], [3, 3, 1]]) serial_dependency = TestSingleCellPml model = serial_dependency.model diff --git a/reframe_tests/src/2D_ExHyHz.in b/reframe_tests/src/2d_tests/2D_ExHyHz.in similarity index 100% rename from reframe_tests/src/2D_ExHyHz.in rename to reframe_tests/src/2d_tests/2D_ExHyHz.in diff --git a/reframe_tests/src/2D_ExHyHz_hs.in b/reframe_tests/src/2d_tests/2D_ExHyHz_hs.in similarity index 100% rename from reframe_tests/src/2D_ExHyHz_hs.in rename to reframe_tests/src/2d_tests/2D_ExHyHz_hs.in diff --git a/reframe_tests/src/2D_EyHxHz.in b/reframe_tests/src/2d_tests/2D_EyHxHz.in similarity index 100% rename from reframe_tests/src/2D_EyHxHz.in rename to reframe_tests/src/2d_tests/2D_EyHxHz.in diff --git a/reframe_tests/src/2D_EzHxHy.in b/reframe_tests/src/2d_tests/2D_EzHxHy.in similarity index 100% rename from reframe_tests/src/2D_EzHxHy.in rename to reframe_tests/src/2d_tests/2D_EzHxHy.in diff --git a/reframe_tests/src/benchmark_model_0.1.in b/reframe_tests/src/benchmark_tests/benchmark_model_0.1.in similarity index 100% rename from reframe_tests/src/benchmark_model_0.1.in rename to reframe_tests/src/benchmark_tests/benchmark_model_0.1.in diff --git a/reframe_tests/src/benchmark_model_0.15.in b/reframe_tests/src/benchmark_tests/benchmark_model_0.15.in similarity index 100% rename from reframe_tests/src/benchmark_model_0.15.in rename to reframe_tests/src/benchmark_tests/benchmark_model_0.15.in diff --git a/reframe_tests/src/benchmark_model_0.2.in b/reframe_tests/src/benchmark_tests/benchmark_model_0.2.in similarity index 100% rename from reframe_tests/src/benchmark_model_0.2.in rename to reframe_tests/src/benchmark_tests/benchmark_model_0.2.in diff --git a/reframe_tests/src/benchmark_model_0.3.in b/reframe_tests/src/benchmark_tests/benchmark_model_0.3.in similarity index 100% rename from reframe_tests/src/benchmark_model_0.3.in rename to reframe_tests/src/benchmark_tests/benchmark_model_0.3.in diff --git a/reframe_tests/src/benchmark_model_0.4.in b/reframe_tests/src/benchmark_tests/benchmark_model_0.4.in similarity index 100% rename from reframe_tests/src/benchmark_model_0.4.in rename to reframe_tests/src/benchmark_tests/benchmark_model_0.4.in diff --git a/reframe_tests/src/benchmark_model_0.5.in b/reframe_tests/src/benchmark_tests/benchmark_model_0.5.in similarity index 100% rename from reframe_tests/src/benchmark_model_0.5.in rename to reframe_tests/src/benchmark_tests/benchmark_model_0.5.in diff --git a/reframe_tests/src/benchmark_model_0.6.in b/reframe_tests/src/benchmark_tests/benchmark_model_0.6.in similarity index 100% rename from reframe_tests/src/benchmark_model_0.6.in rename to reframe_tests/src/benchmark_tests/benchmark_model_0.6.in diff --git a/reframe_tests/src/benchmark_model_0.7.in b/reframe_tests/src/benchmark_tests/benchmark_model_0.7.in similarity index 100% rename from reframe_tests/src/benchmark_model_0.7.in rename to reframe_tests/src/benchmark_tests/benchmark_model_0.7.in diff --git a/reframe_tests/src/benchmark_model_0.8.in b/reframe_tests/src/benchmark_tests/benchmark_model_0.8.in similarity index 100% rename from reframe_tests/src/benchmark_model_0.8.in rename to reframe_tests/src/benchmark_tests/benchmark_model_0.8.in diff --git a/reframe_tests/src/cylinder_Bscan_2D.in b/reframe_tests/src/bscan_tests/cylinder_Bscan_2D.in similarity index 100% rename from reframe_tests/src/cylinder_Bscan_2D.in rename to reframe_tests/src/bscan_tests/cylinder_Bscan_2D.in diff --git a/reframe_tests/src/cylinder_Ascan_2D.in b/reframe_tests/src/example_models/cylinder_Ascan_2D.in similarity index 100% rename from reframe_tests/src/cylinder_Ascan_2D.in rename to reframe_tests/src/example_models/cylinder_Ascan_2D.in diff --git a/reframe_tests/src/box_geometry_tests/box_full_model.in b/reframe_tests/src/geometry_tests/box_geometry/box_full_model.in similarity index 100% rename from reframe_tests/src/box_geometry_tests/box_full_model.in rename to reframe_tests/src/geometry_tests/box_geometry/box_full_model.in diff --git a/reframe_tests/src/box_geometry_tests/box_half_model.in b/reframe_tests/src/geometry_tests/box_geometry/box_half_model.in similarity index 100% rename from reframe_tests/src/box_geometry_tests/box_half_model.in rename to reframe_tests/src/geometry_tests/box_geometry/box_half_model.in diff --git a/reframe_tests/src/box_geometry_tests/box_outside_pml.in b/reframe_tests/src/geometry_tests/box_geometry/box_outside_pml.in similarity index 100% rename from reframe_tests/src/box_geometry_tests/box_outside_pml.in rename to reframe_tests/src/geometry_tests/box_geometry/box_outside_pml.in diff --git a/reframe_tests/src/box_geometry_tests/box_single_rank.in b/reframe_tests/src/geometry_tests/box_geometry/box_single_rank.in similarity index 100% rename from reframe_tests/src/box_geometry_tests/box_single_rank.in rename to reframe_tests/src/geometry_tests/box_geometry/box_single_rank.in diff --git a/reframe_tests/src/box_geometry_tests/box_single_rank_outside_pml.in b/reframe_tests/src/geometry_tests/box_geometry/box_single_rank_outside_pml.in similarity index 100% rename from reframe_tests/src/box_geometry_tests/box_single_rank_outside_pml.in rename to reframe_tests/src/geometry_tests/box_geometry/box_single_rank_outside_pml.in diff --git a/reframe_tests/src/antenna_wire_dipole_fs.in b/reframe_tests/src/geometry_tests/edge_geometry/antenna_wire_dipole_fs.in similarity index 100% rename from reframe_tests/src/antenna_wire_dipole_fs.in rename to reframe_tests/src/geometry_tests/edge_geometry/antenna_wire_dipole_fs.in diff --git a/reframe_tests/src/hertzian_dipole_dispersive.in b/reframe_tests/src/material_tests/hertzian_dipole_dispersive.in similarity index 100% rename from reframe_tests/src/hertzian_dipole_dispersive.in rename to reframe_tests/src/material_tests/hertzian_dipole_dispersive.in diff --git a/reframe_tests/src/magnetic_dipole_hs.in b/reframe_tests/src/material_tests/magnetic_dipole_hs.in similarity index 100% rename from reframe_tests/src/magnetic_dipole_hs.in rename to reframe_tests/src/material_tests/magnetic_dipole_hs.in diff --git a/reframe_tests/src/hertzian_dipole_fs.in b/reframe_tests/src/source_tests/hertzian_dipole_fs.in similarity index 100% rename from reframe_tests/src/hertzian_dipole_fs.in rename to reframe_tests/src/source_tests/hertzian_dipole_fs.in diff --git a/reframe_tests/src/magnetic_dipole_fs.in b/reframe_tests/src/source_tests/magnetic_dipole_fs.in similarity index 100% rename from reframe_tests/src/magnetic_dipole_fs.in rename to reframe_tests/src/source_tests/magnetic_dipole_fs.in diff --git a/reframe_tests/src/transmission_line_fs.in b/reframe_tests/src/source_tests/transmission_line_fs.in similarity index 100% rename from reframe_tests/src/transmission_line_fs.in rename to reframe_tests/src/source_tests/transmission_line_fs.in diff --git a/reframe_tests/src/cylinder_fs.py b/reframe_tests/src/subgrid_tests/cylinder_fs.py similarity index 100% rename from reframe_tests/src/cylinder_fs.py rename to reframe_tests/src/subgrid_tests/cylinder_fs.py diff --git a/reframe_tests/src/gssi_400_over_fractal_subsurface.py b/reframe_tests/src/subgrid_tests/gssi_400_over_fractal_subsurface.py similarity index 100% rename from reframe_tests/src/gssi_400_over_fractal_subsurface.py rename to reframe_tests/src/subgrid_tests/gssi_400_over_fractal_subsurface.py