Add spack test support for Qthreads (#20437)
This commit is contained in:
parent
2314a20fbd
commit
517413c125
@ -29,6 +29,10 @@ class Qthreads(AutotoolsPackage):
|
||||
homepage = "http://www.cs.sandia.gov/qthreads/"
|
||||
|
||||
url = "https://github.com/Qthreads/qthreads/releases/download/1.10/qthread-1.10.tar.bz2"
|
||||
test_requires_compiler = True
|
||||
test_base_path = 'test/basics/'
|
||||
test_list = ['hello_world_multi', 'hello_world']
|
||||
|
||||
version("1.14", sha256="16f15e5b2e35b6329a857d24c283a1e43cd49921ee49a1446d4f31bf9c6f5cf9")
|
||||
version("1.12", sha256="2c13a5f6f45bc2f22038d272be2e748e027649d3343a9f824da9e86a88b594c9")
|
||||
version("1.11", sha256="dbde6c7cb7de7e89921e47363d09cecaebf775c9d090496c2be8350355055571")
|
||||
@ -83,5 +87,52 @@ def configure_args(self):
|
||||
|
||||
args.append('--with-scheduler=%s'
|
||||
% self.spec.variants['scheduler'].value)
|
||||
|
||||
return args
|
||||
|
||||
@run_after('install')
|
||||
def setup_build_tests(self):
|
||||
"""Copy the build test files after the package is installed to an
|
||||
install test subdirectory for use during `spack test run`."""
|
||||
tests = self.test_list
|
||||
relative_test_dir = self.test_base_path
|
||||
files_to_cpy = []
|
||||
header = 'test/argparsing.h'
|
||||
for test in tests:
|
||||
test_path = join_path(relative_test_dir, test + '.c')
|
||||
files_to_cpy.append(test_path)
|
||||
files_to_cpy.append(header)
|
||||
self.cache_extra_test_sources(files_to_cpy)
|
||||
|
||||
def build_tests(self):
|
||||
"""Build and run the added smoke (install) test."""
|
||||
tests = self.test_list
|
||||
relative_test_dir = self.test_base_path
|
||||
|
||||
for test in tests:
|
||||
options = [
|
||||
'-I{0}'.format(self.prefix.include),
|
||||
'-I{0}'.format(self.install_test_root + '/test'),
|
||||
join_path(self.install_test_root, relative_test_dir,
|
||||
test + '.c'),
|
||||
'-o',
|
||||
test,
|
||||
'-L{0}'.format(self.prefix.lib),
|
||||
'-lqthread',
|
||||
'{0}{1}'.format(self.compiler.cc_rpath_arg,
|
||||
self.prefix.lib)]
|
||||
reason = 'test:{0}: Checking ability to link to the library.'\
|
||||
.format(test)
|
||||
self.run_test('cc', options, [], installed=False, purpose=reason)
|
||||
|
||||
def run_tests(self):
|
||||
tests = self.test_list
|
||||
# Now run the program
|
||||
for test in tests:
|
||||
reason = 'test:{0}: Checking ability to execute.'.format(test)
|
||||
self.run_test(test, [], purpose=reason)
|
||||
|
||||
def test(self):
|
||||
# Build
|
||||
self.build_tests()
|
||||
# Run test programs pulled from the build
|
||||
self.run_tests()
|
||||
|
Loading…
Reference in New Issue
Block a user