From 27ee08f5bba55ac188cc89d234d0f3ece203426e Mon Sep 17 00:00:00 2001 From: G-Ragghianti <33492707+G-Ragghianti@users.noreply.github.com> Date: Tue, 21 Feb 2023 16:10:01 -0500 Subject: Package slate: Improved MPI launcher search for smoke tests (#35448) * Improved MPI launcher search for smoke tests * Improving mpi launcher search * Removing redundant logic --- var/spack/repos/builtin/packages/slate/package.py | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/var/spack/repos/builtin/packages/slate/package.py b/var/spack/repos/builtin/packages/slate/package.py index 1428b871b5..40204e4632 100644 --- a/var/spack/repos/builtin/packages/slate/package.py +++ b/var/spack/repos/builtin/packages/slate/package.py @@ -114,6 +114,15 @@ class Slate(CMakePackage, CudaPackage, ROCmPackage): install test subdirectory for use during `spack test run`.""" self.cache_extra_test_sources(["examples"]) + def mpi_launcher(self): + searchpath = [self.spec["mpi"].prefix.bin] + try: + searchpath.insert(0, self.spec["slurm"].prefix.bin) + except KeyError: + print("Slurm not found, ignoring.") + commands = ["srun", "mpirun", "mpiexec"] + return which(*commands, path=searchpath) or which(*commands) + def test(self): if self.spec.satisfies("@2020.10.00") or "+mpi" not in self.spec: print("Skipping: stand-alone tests") @@ -129,7 +138,8 @@ class Slate(CMakePackage, CudaPackage, ROCmPackage): self.run_test(cmake_bin, ["-DCMAKE_PREFIX_PATH=" + prefixes, ".."]) make() test_args = ["-n", "4", "./ex05_blas"] - mpi_path = self.spec["mpi"].prefix.bin - mpiexe_f = which("srun", "mpirun", "mpiexec", path=mpi_path) - self.run_test(mpiexe_f.command, test_args, purpose="SLATE smoke test") + launcher = self.mpi_launcher() + if not launcher: + raise RuntimeError("Cannot run tests due to absence of MPI launcher") + self.run_test(launcher.command, test_args, purpose="SLATE smoke test") make("clean") -- cgit v1.2.3-70-g09d2