From 98d4a7af24e3e69ee1dabce6f2a9ae94e01f166a Mon Sep 17 00:00:00 2001 From: Axel Huebl Date: Fri, 6 Aug 2021 16:55:32 -0700 Subject: openPMD-api: CTest & Install Tests (#25300) Run CTest at build time with: ``` spack install --test=root openpmd-api@ ``` and run smoke-tests after install and loading of the package via ``` spack load -r / spack test run / ``` --- .../repos/builtin/packages/openpmd-api/package.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'var') diff --git a/var/spack/repos/builtin/packages/openpmd-api/package.py b/var/spack/repos/builtin/packages/openpmd-api/package.py index 36b86182fa..1b85c85a12 100644 --- a/var/spack/repos/builtin/packages/openpmd-api/package.py +++ b/var/spack/repos/builtin/packages/openpmd-api/package.py @@ -130,3 +130,23 @@ class OpenpmdApi(CMakePackage): env.prepend_path('CMAKE_PREFIX_PATH', self.spec['mpark-variant'].prefix) env.prepend_path('CPATH', self.spec['mpark-variant'].prefix.include) + + def check(self): + """CTest checks after the build phase""" + # note: for MPI-parallel tests, you can overwrite the standard CMake + # option -DMPIEXEC_EXECUTABLE=$(which jsrun) for jsrun or srun, + # etc.. Alternatively, you can also use -E to exclude + # parallel and MPI tests + with working_dir(self.build_directory): + # -j1 because individual tests create files that are read again by + # later tests + ctest('--output-on-failure', '-j1') + + def test(self): + """Perform smoke tests on the installed package.""" + exes = ['openpmd-ls'] # in 0.11.1+ + for exe in exes: + spec_vers_str = '{0}'.format(self.spec.version) + reason = 'test version of {0} is {1}'.format(exe, spec_vers_str) + self.run_test(exe, ['--version'], [spec_vers_str], + installed=True, purpose=reason, skip_missing=False) -- cgit v1.2.3-60-g2f50