swig: add smoke tests (#23662)
This commit is contained in:
@@ -70,3 +70,45 @@ def create_symlink(self):
|
|||||||
@when(_version)
|
@when(_version)
|
||||||
def autoreconf(self, spec, prefix):
|
def autoreconf(self, spec, prefix):
|
||||||
which('sh')('./autogen.sh')
|
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()
|
||||||
|
Reference in New Issue
Block a user