swig: add smoke tests (#23662)

This commit is contained in:
Seth R. Johnson 2021-05-20 20:00:20 -04:00 committed by GitHub
parent 3f184b5874
commit d2178fb47b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -70,3 +70,45 @@ def create_symlink(self):
@when(_version)
def autoreconf(self, spec, prefix):
which('sh')('./autogen.sh')
@property
def _installed_exe(self):
return join_path(self.prefix, 'bin', 'swig')
def _test_version(self):
version = str(self.version)
if version.endswith('-fortran'):
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()