Package slate: Improved MPI launcher search for smoke tests (#35448)

* Improved MPI launcher search for smoke tests
* Improving mpi launcher search
* Removing redundant logic
This commit is contained in:
G-Ragghianti 2023-02-21 16:10:01 -05:00 committed by GitHub
parent cb4c60c709
commit 27ee08f5bb
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -114,6 +114,15 @@ def cache_test_sources(self):
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 @@ def test(self):
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")