mptensor: Changed skiptest, test name, and added docstring (#44909)

* mptensor: Changed skiptest, test name, and added docstring
* mptensor: make stand-alone test method name and docstring more specific

---------

Co-authored-by: Tamara Dahlgren <35777542+tldahlgren@users.noreply.github.com>
This commit is contained in:
AcriusWinter 2024-08-13 16:48:25 -07:00 committed by GitHub
parent 21a2c3a591
commit e40c10509d
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -70,32 +70,40 @@ def cmake_args(self):
def setup_build_tests(self): def setup_build_tests(self):
"""Copy the build test files after the package is installed to an """Copy the build test files after the package is installed to an
install test subdirectory for use during `spack test run`.""" install test subdirectory for use during `spack test run`."""
# Tests only supported when spec built with mpi
if "+mpi" not in self.spec:
print("Skipping copy of stand-alone test files: requires +mpi build")
return
self.cache_extra_test_sources(".") self.cache_extra_test_sources(".")
def test(self): # Clean cached makefiles now so only done once
if "+mpi" not in self.spec: print("Converting cached Makefile for stand-alone test use")
print("Test of mptensor only runs with +mpi option.") with working_dir(join_path(install_test_root(self), "tests")):
else:
with working_dir(join_path(self.install_test_root, "tests"), create=False):
make("clean") make("clean")
makefile = FileFilter("Makefile") makefile = FileFilter("Makefile")
makefile.filter("g++", "{0}".format(spack_cxx), string=True) makefile.filter("g++", f"{spack_cxx}", string=True)
with working_dir(join_path(self.install_test_root), create=False): print("Converting cached Makefile.option for stand-alone test use")
with working_dir(join_path(install_test_root(self))):
makefile = FileFilter("Makefile.option") makefile = FileFilter("Makefile.option")
makefile.filter("CXX =.*", "CXX ={0}".format(self.spec["mpi"].mpicxx)) makefile.filter("CXX =.*", f"CXX ={self.spec['mpi'].mpicxx}")
makefile.filter("CXXFLAGS =.*", "CXXFLAGS ={0}".format(self.compiler.cxx11_flag)) makefile.filter("CXXFLAGS =.*", f"CXXFLAGS ={self.compiler.cxx11_flag}")
math_libs = ( def test_tensor_test(self):
self.spec["scalapack"].libs + self.spec["lapack"].libs + self.spec["blas"].libs """build and run tensor_test"""
) if "+mpi" not in self.spec:
raise SkipTest("Package must be installed with +mpi")
with working_dir(join_path(self.install_test_root, "tests"), create=False): math_libs = self.spec["scalapack"].libs + self.spec["lapack"].libs + self.spec["blas"].libs
make("LDFLAGS={0}".format(math_libs.ld_flags))
mpirun = self.spec["mpi"].prefix.bin.mpirun with working_dir(self.test_suite.current_test_cache_dir.tests):
mpiexec = Executable(mpirun) make = which("make")
mpiexec("-n", "1", "tensor_test.out") make(f"LDFLAGS={math_libs.ld_flags}")
mpirun = which(self.spec["mpi"].prefix.bin.mpirun)
mpirun("-n", "1", "tensor_test.out")
# Test of mptensor has checker # Test of mptensor has checker
# and checker is abort when check detect any errors. # and checker is abort when check detect any errors.