summaryrefslogtreecommitdiff
path: root/var
diff options
context:
space:
mode:
authorTamara Dahlgren <35777542+tldahlgren@users.noreply.github.com>2023-05-22 09:39:30 -0700
committerGitHub <noreply@github.com>2023-05-22 09:39:30 -0700
commitd739989ec8014efa88270537b81915de81ab6646 (patch)
tree108e6b388f323cca65d37d69088ecc0b0d51a1e3 /var
parent52ee1967d65c8a69902867fd7eb43af8132c20b9 (diff)
downloadspack-d739989ec8014efa88270537b81915de81ab6646.tar.gz
spack-d739989ec8014efa88270537b81915de81ab6646.tar.bz2
spack-d739989ec8014efa88270537b81915de81ab6646.tar.xz
spack-d739989ec8014efa88270537b81915de81ab6646.zip
swig: convert to new stand-alone test process (#37786)
Diffstat (limited to 'var')
-rw-r--r--var/spack/repos/builtin/packages/swig/package.py68
1 files changed, 31 insertions, 37 deletions
diff --git a/var/spack/repos/builtin/packages/swig/package.py b/var/spack/repos/builtin/packages/swig/package.py
index 9c24304a8e..bd1ae02c51 100644
--- a/var/spack/repos/builtin/packages/swig/package.py
+++ b/var/spack/repos/builtin/packages/swig/package.py
@@ -102,47 +102,41 @@ class Swig(AutotoolsPackage, SourceforgePackage):
return match.group(1) if match else None
@property
- def _installed_exe(self):
- return join_path(self.prefix, "bin", "swig")
+ def _swig(self):
+ return Executable(join_path(self.prefix, "bin", "swig"))
- def _test_version(self):
+ @property
+ def _swiglib(self):
+ return self._swig("-swiglib", output=str).strip()
+
+ def test_version(self):
+ """check swig version"""
version = str(self.version)
if version.endswith("-fortran"):
- version = version.replace("-", r"\+")
+ version = version.replace("-", r"+")
elif version in ("fortran", "master"):
- version = r".*"
-
- self.run_test(
- self._installed_exe,
- "-version",
- expected=[r"SWIG Version {0}".format(version)],
- purpose="test: version",
- )
-
- def _test_swiglib(self):
- # Get SWIG's alleged path to library files
- swig = Executable(self._installed_exe)
- swiglib = swig("-swiglib", output=str).strip()
-
- # Check that the lib dir exists
- if not os.path.isdir(swiglib):
- msg = "SWIG library does not exist at '{0}'".format(swiglib)
- self.test_failures.append([None, msg])
-
- # Check for existence of other critical SWIG library files
- swigfile = join_path(swiglib, "swig.swg")
- if not os.path.exists(swigfile):
- msg = "SWIG runtime does not exist at '{0}'".format(swigfile)
- self.test_failures.append([None, msg])
- if "fortran" in str(self.version):
- swigfile = join_path(swiglib, "fortran", "fortran.swg")
- if not os.path.exists(swigfile):
- msg = "SWIG+Fortran runtime does not exist at '{0}'".format(swigfile)
- self.test_failures.append([None, msg])
-
- def test(self):
- self._test_version()
- self._test_swiglib()
+ version = ""
+
+ out = self._swig("-version", output=str.split, error=str.split)
+ expected = f"SWIG Version {version}"
+ assert expected in out, f"Expected '{expected}' in output"
+
+ def test_swiglib(self):
+ """check that the lib dir exists"""
+ assert os.path.isdir(self._swiglib), f"SWIG library does not exist at '{swiglib}'"
+
+ def test_swig_swg(self):
+ """check that swig.swg exists"""
+ swigfile = join_path(self._swiglib, "swig.swg")
+ assert os.path.exists(swigfile), f"SWIG runtime does not exist at '{swigfile}'"
+
+ def test_fortran_swg(self):
+ """check that fortran.swg exists"""
+ if "fortran" not in str(self.version):
+ raise SkipTest(f"Test does not work with version {self.version}")
+
+ swigfile = join_path(self._swiglib, "fortran", "fortran.swg")
+ assert os.path.exists(swigfile), f"SWIG+Fortran runtime does not exist at '{swigfile}'"
class AutotoolsBuilder(spack.build_systems.autotools.AutotoolsBuilder):