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:
		| @@ -114,6 +114,15 @@ def cache_test_sources(self): | |||||||
|         install test subdirectory for use during `spack test run`.""" |         install test subdirectory for use during `spack test run`.""" | ||||||
|         self.cache_extra_test_sources(["examples"]) |         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): |     def test(self): | ||||||
|         if self.spec.satisfies("@2020.10.00") or "+mpi" not in self.spec: |         if self.spec.satisfies("@2020.10.00") or "+mpi" not in self.spec: | ||||||
|             print("Skipping: stand-alone tests") |             print("Skipping: stand-alone tests") | ||||||
| @@ -129,7 +138,8 @@ def test(self): | |||||||
|             self.run_test(cmake_bin, ["-DCMAKE_PREFIX_PATH=" + prefixes, ".."]) |             self.run_test(cmake_bin, ["-DCMAKE_PREFIX_PATH=" + prefixes, ".."]) | ||||||
|             make() |             make() | ||||||
|             test_args = ["-n", "4", "./ex05_blas"] |             test_args = ["-n", "4", "./ex05_blas"] | ||||||
|             mpi_path = self.spec["mpi"].prefix.bin |             launcher = self.mpi_launcher() | ||||||
|             mpiexe_f = which("srun", "mpirun", "mpiexec", path=mpi_path) |             if not launcher: | ||||||
|             self.run_test(mpiexe_f.command, test_args, purpose="SLATE smoke test") |                 raise RuntimeError("Cannot run tests due to absence of MPI launcher") | ||||||
|  |             self.run_test(launcher.command, test_args, purpose="SLATE smoke test") | ||||||
|             make("clean") |             make("clean") | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 G-Ragghianti
					G-Ragghianti