From 333d7f8374c171e0dbdc45c3f92fa0e905442056 Mon Sep 17 00:00:00 2001 From: Samuel Moors Date: Fri, 14 Nov 2025 22:01:16 +0100 Subject: [PATCH 1/4] use is_ci_test were appropriate --- eessi/testsuite/tests/apps/MetalWalls.py | 3 +-- eessi/testsuite/tests/apps/QuantumESPRESSO.py | 2 +- eessi/testsuite/tests/apps/espresso/espresso.py | 4 +--- eessi/testsuite/tests/apps/openfoam/openfoam.py | 6 +----- eessi/testsuite/tests/apps/osu.py | 4 ++-- eessi/testsuite/tests/apps/tensorflow/tensorflow.py | 2 +- tutorial/mpi4py/mpi4py_portable_mixin.py | 10 ++++------ 7 files changed, 11 insertions(+), 20 deletions(-) diff --git a/eessi/testsuite/tests/apps/MetalWalls.py b/eessi/testsuite/tests/apps/MetalWalls.py index a483e4a3..cef2632c 100644 --- a/eessi/testsuite/tests/apps/MetalWalls.py +++ b/eessi/testsuite/tests/apps/MetalWalls.py @@ -81,8 +81,7 @@ def run_after_init(self): def set_tag_ci(self): """Set tag CI on smallest benchmark, so it can be selected on the cmd line via --tag CI""" if self.benchmark_info[0] == 'hackathonGPU/benchmark': - self.tags.add(TAGS.CI) - log(f'tags set to {self.tags}') + self.is_ci_test = True @run_after('init') def set_increased_walltime(self): diff --git a/eessi/testsuite/tests/apps/QuantumESPRESSO.py b/eessi/testsuite/tests/apps/QuantumESPRESSO.py index b2947582..eb51abef 100644 --- a/eessi/testsuite/tests/apps/QuantumESPRESSO.py +++ b/eessi/testsuite/tests/apps/QuantumESPRESSO.py @@ -55,7 +55,7 @@ def set_ci(self): min_ecut = min(QEspressoPWCheck.ecut.values) min_nbnd = min(QEspressoPWCheck.nbnd.values) if self.ecut == min_ecut and self.nbnd == min_nbnd: - self.bench_name = self.bench_name_ci = 'bench_ci' + self.is_ci_test = True @run_after('init') def set_increased_walltime(self): diff --git a/eessi/testsuite/tests/apps/espresso/espresso.py b/eessi/testsuite/tests/apps/espresso/espresso.py index 485857bc..956c0d64 100644 --- a/eessi/testsuite/tests/apps/espresso/espresso.py +++ b/eessi/testsuite/tests/apps/espresso/espresso.py @@ -45,7 +45,7 @@ def set_ci_tag(self): # TODO: revisit this for more recent versions of ESPResSo # see also: https://github.com/EESSI/test-suite/issues/154 if SCALES[self.scale]['num_nodes'] < 2: - self.bench_name_ci = self.bench_name + self.is_ci_test = True @sanity_function def assert_sanity(self): @@ -67,7 +67,6 @@ class EESSI_ESPRESSO_P3M_IONIC_CRYSTALS(EESSI_ESPRESSO_base, EESSI_Mixin): executable = 'python3 madelung.py' sourcesdir = 'src/p3m' readonly_files = ['madelung.py'] - bench_name = 'ionic_crystals_p3m' default_weak_scaling_system_size = 6 @@ -102,7 +101,6 @@ class EESSI_ESPRESSO_LJ_PARTICLES(EESSI_ESPRESSO_base, EESSI_Mixin): executable = 'python3 lj.py' sourcesdir = 'src/lj' readonly_files = ['lj.py'] - bench_name = 'particles_lj' def required_mem_per_node(self): "LJ requires 200 MB per core" diff --git a/eessi/testsuite/tests/apps/openfoam/openfoam.py b/eessi/testsuite/tests/apps/openfoam/openfoam.py index 6a298683..87719f86 100644 --- a/eessi/testsuite/tests/apps/openfoam/openfoam.py +++ b/eessi/testsuite/tests/apps/openfoam/openfoam.py @@ -192,6 +192,7 @@ class EESSI_OPENFOAM_LID_DRIVEN_CAVITY_1M(rfm.RunOnlyRegressionTest, EESSI_Mixin module_name = parameter(find_modules('OpenFOAM/v', name_only=False)) valid_systems = ['*'] scale = parameter(filter_scales_1M()) + is_ci_test = True @run_after('init') def set_compute_unit(self): @@ -208,11 +209,6 @@ def set_compute_unit(self): def required_mem_per_node(self): return self.num_tasks_per_node * 1700 - @run_after('init') - def select_ci(self): - " Select the CI variants " - self.bench_name = self.bench_name_ci = 'icoFoam_1M_CI' - @run_after('setup') def check_launcher_options(self): # We had to get the launcher command and prepend this to the prerun steps (func prepare_environment) because: diff --git a/eessi/testsuite/tests/apps/osu.py b/eessi/testsuite/tests/apps/osu.py index c371a1e1..33737dc3 100644 --- a/eessi/testsuite/tests/apps/osu.py +++ b/eessi/testsuite/tests/apps/osu.py @@ -115,7 +115,7 @@ def filter_benchmark_pt2pt(self): def select_ci(self): " Select the CI variants " if (self.bench_name in ['mpi.pt2pt.osu_latency', 'mpi.pt2pt.osu_bw']): - self.bench_name_ci = self.bench_name + self.is_ci_test = True @run_after('init') def set_num_tasks_per_compute_unit(self): @@ -178,7 +178,7 @@ def filter_benchmark_coll(self): def select_ci(self): " Select the CI variants " if (self.bench_name in ['mpi.collective.osu_allreduce', 'mpi.collective.osu_alltoall']): - self.bench_name_ci = self.bench_name + self.is_ci_test = True @run_after('init') def set_compute_unit(self): diff --git a/eessi/testsuite/tests/apps/tensorflow/tensorflow.py b/eessi/testsuite/tests/apps/tensorflow/tensorflow.py index a8829566..a3b68bbe 100644 --- a/eessi/testsuite/tests/apps/tensorflow/tensorflow.py +++ b/eessi/testsuite/tests/apps/tensorflow/tensorflow.py @@ -30,7 +30,7 @@ class EESSI_TensorFlow(rfm.RunOnlyRegressionTest, EESSI_Mixin): time_limit = '30m' # This test should be run as part of EESSI CI - bench_name = bench_name_ci = 'bench_ci' + is_ci_test = True readonly_files = ['mnist_setup.py', 'tf_test.py'] diff --git a/tutorial/mpi4py/mpi4py_portable_mixin.py b/tutorial/mpi4py/mpi4py_portable_mixin.py index 27cddbfe..4318d439 100644 --- a/tutorial/mpi4py/mpi4py_portable_mixin.py +++ b/tutorial/mpi4py/mpi4py_portable_mixin.py @@ -54,13 +54,11 @@ class EESSI_MPI4PY(rfm.RunOnlyRegressionTest, EESSI_Mixin): # https://reframe-hpc.readthedocs.io/en/stable/regression_test_api.html#reframe.core.pipeline.RegressionTest.time_limit time_limit = '5m00s' - # Define the benchmarks that are available in the test. - # In this test (`EESSI_MPI4PY`) there is only one benchmark. If there are more than one, - # define them using the `parameter()` function. - bench_name = 'mpi4pi' + # Optionally define the benchmark variants that are available in the test with the `parameter()` function. + # In this test (`EESSI_MPI4PY`) there is only one variant, so we don't have to define anything. - # Specify the benchmark to be tested in CI (will be marked with a `CI` tag). - bench_name_ci = 'mpi4pi' + # Optionally indicate that the test should run in CI (will be marked with a `CI` tag). + is_ci_test = True # Define the files and/or dirs inside sourcesdir (default=src) that should be symlinked into the stage dir readonly_files = ['mpi4py_reduce.py'] From 8bf1d8631ab94a7bf8cbad01b0597d85f21348b7 Mon Sep 17 00:00:00 2001 From: Samuel Moors Date: Fri, 14 Nov 2025 22:13:11 +0100 Subject: [PATCH 2/4] remove unused imports for metalwalls --- eessi/testsuite/tests/apps/MetalWalls.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/eessi/testsuite/tests/apps/MetalWalls.py b/eessi/testsuite/tests/apps/MetalWalls.py index cef2632c..11706ede 100644 --- a/eessi/testsuite/tests/apps/MetalWalls.py +++ b/eessi/testsuite/tests/apps/MetalWalls.py @@ -33,8 +33,8 @@ from reframe.core.parameters import TestParam as parameter from eessi.testsuite import hooks -from eessi.testsuite.constants import COMPUTE_UNITS, DEVICE_TYPES, SCALES, TAGS -from eessi.testsuite.utils import find_modules, log +from eessi.testsuite.constants import COMPUTE_UNITS, DEVICE_TYPES, SCALES +from eessi.testsuite.utils import find_modules @rfm.simple_test From cc4a86ccbb3ad2d0be12b05a54ad58192d7a850e Mon Sep 17 00:00:00 2001 From: Samuel Moors Date: Sat, 15 Nov 2025 16:05:06 +0100 Subject: [PATCH 3/4] update --- tutorial/mpi4py/mpi4py_portable_mixin.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/tutorial/mpi4py/mpi4py_portable_mixin.py b/tutorial/mpi4py/mpi4py_portable_mixin.py index 4318d439..9331bdec 100644 --- a/tutorial/mpi4py/mpi4py_portable_mixin.py +++ b/tutorial/mpi4py/mpi4py_portable_mixin.py @@ -26,9 +26,9 @@ class EESSI_MPI4PY(rfm.RunOnlyRegressionTest, EESSI_Mixin): # One task is launched per compute unit. In this case, one task per (physical) CPU core compute_unit = COMPUTE_UNITS.CPU - # ReFrame will generate a test for each module that matches the regex `mpi4py` + # ReFrame will generate a test for each module that matches the regex `mpi4py`. # This means we implicitly assume that any module matching this name provides the required functionality - # to run this test + # to run this test. module_name = parameter(find_modules('mpi4py')) # Our script has two arguments, --n_iter and --n_warmup. By defining these as ReFrame variables, we can @@ -54,10 +54,10 @@ class EESSI_MPI4PY(rfm.RunOnlyRegressionTest, EESSI_Mixin): # https://reframe-hpc.readthedocs.io/en/stable/regression_test_api.html#reframe.core.pipeline.RegressionTest.time_limit time_limit = '5m00s' - # Optionally define the benchmark variants that are available in the test with the `parameter()` function. + # Optionally define the benchmark variants that are available in the test with the `parameter()` function # In this test (`EESSI_MPI4PY`) there is only one variant, so we don't have to define anything. - # Optionally indicate that the test should run in CI (will be marked with a `CI` tag). + # Indicate that the test should run in CI (will be marked with a `CI` tag). is_ci_test = True # Define the files and/or dirs inside sourcesdir (default=src) that should be symlinked into the stage dir From 2b17dda8f8ccbc0c05c0ebab908085afe774adf7 Mon Sep 17 00:00:00 2001 From: Samuel Moors Date: Fri, 21 Nov 2025 09:27:53 +0100 Subject: [PATCH 4/4] slight rewording --- tutorial/mpi4py/mpi4py_portable_mixin.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tutorial/mpi4py/mpi4py_portable_mixin.py b/tutorial/mpi4py/mpi4py_portable_mixin.py index 9331bdec..59dd01dd 100644 --- a/tutorial/mpi4py/mpi4py_portable_mixin.py +++ b/tutorial/mpi4py/mpi4py_portable_mixin.py @@ -54,7 +54,7 @@ class EESSI_MPI4PY(rfm.RunOnlyRegressionTest, EESSI_Mixin): # https://reframe-hpc.readthedocs.io/en/stable/regression_test_api.html#reframe.core.pipeline.RegressionTest.time_limit time_limit = '5m00s' - # Optionally define the benchmark variants that are available in the test with the `parameter()` function + # Optionally define the test variants that are available in the test with the `parameter()` function # In this test (`EESSI_MPI4PY`) there is only one variant, so we don't have to define anything. # Indicate that the test should run in CI (will be marked with a `CI` tag).