From 1250fac46795edeaa677b4a1188f402ed41cac84 Mon Sep 17 00:00:00 2001 From: Larry Knox Date: Tue, 15 Mar 2022 13:22:30 -0500 Subject: Add changes to test functions for checking spack versions of hdf5 with (#29159) develop in the version string. The versions from the HDF5 code were not matching because 'develop-' is not part of the HDF5 version. Also, the develop-x.x versions in spack omit the release version (third) number because the branch spans all of the release versions. --- var/spack/repos/builtin/packages/hdf5/package.py | 30 +++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) (limited to 'var') diff --git a/var/spack/repos/builtin/packages/hdf5/package.py b/var/spack/repos/builtin/packages/hdf5/package.py index df8ccda37f..040ada7770 100644 --- a/var/spack/repos/builtin/packages/hdf5/package.py +++ b/var/spack/repos/builtin/packages/hdf5/package.py @@ -476,7 +476,25 @@ class Hdf5(CMakePackage): print("Checking HDF5 installation...") checkdir = "spack-check" with working_dir(checkdir, create=True): - source = r""" + # Because the release number in a develop branch is not fixed, + # only the major and minor version numbers are compared. + # Otherwise all 3 numbers are checked. + if 'develop' in str(spec.version.up_to(3)): + source = r""" +#include +#include +#include +int main(int argc, char **argv) { + unsigned majnum, minnum, relnum; + herr_t herr = H5get_libversion(&majnum, &minnum, &relnum); + assert(!herr); + printf("HDF5 version %d.%d %u.%u\n", H5_VERS_MAJOR, H5_VERS_MINOR, + majnum, minnum); + return 0; +} +""" + else: + source = r""" #include #include #include @@ -492,6 +510,12 @@ int main(int argc, char **argv) { expected = """\ HDF5 version {version} {version} """.format(version=str(spec.version.up_to(3))) + if 'develop' in expected: + # Remove 'develop-' from the version in spack for checking + # version against the version in the HDF5 code. + expected = """\ +HDF5 version {version} {version} +""".format(version=str(spec.version.up_to(3)).partition("-")[2]) with open("check.c", 'w') as f: f.write(source) if '+mpi' in spec: @@ -523,6 +547,10 @@ HDF5 version {version} {version} def _test_check_versions(self): """Perform version checks on selected installed package binaries.""" spec_vers_str = 'Version {0}'.format(self.spec.version) + if 'develop' in spec_vers_str: + # Remove 'develop-' from the version in spack for checking + # version against the version in the HDF5 code. + spec_vers_str = spec_vers_str.partition("-")[2] exes = [ 'h5copy', 'h5diff', 'h5dump', 'h5format_convert', 'h5ls', -- cgit v1.2.3-60-g2f50