diff --git a/var/spack/repos/builtin/packages/cmake/package.py b/var/spack/repos/builtin/packages/cmake/package.py index 27bb94bd827..c6b5791e85e 100644 --- a/var/spack/repos/builtin/packages/cmake/package.py +++ b/var/spack/repos/builtin/packages/cmake/package.py @@ -2,6 +2,8 @@ # Spack Project Developers. See the top-level COPYRIGHT file for details. # # SPDX-License-Identifier: (Apache-2.0 OR MIT) + +import llnl.util.tty as tty import re @@ -253,3 +255,23 @@ def install(self, spec, prefix): filter_file('mpcc_r)', 'mpcc_r mpifcc)', f, string=True) filter_file('mpc++_r)', 'mpc++_r mpiFCC)', f, string=True) filter_file('mpifc)', 'mpifc mpifrt)', f, string=True) + + def _test_check_versions(self): + """Perform version checks on installed package binaries.""" + spec_vers_str = 'version {0}'.format(self.spec.version) + + for exe in ['ccmake', 'cmake', 'cpack', 'ctest']: + 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=True) + + def test(self): + """Perform smoke tests on the installed package.""" + tty.debug('Expected results currently based on simple cmake builds') + + if not self.spec.satisfies('@3.8.2:3.17.3'): + tty.debug('Expected results have not been confirmed for {0} {1}' + .format(self.name, self.spec.version)) + + # Simple version check tests on known binaries + self._test_check_versions()