unittests: Assert that we have pkg-config on all CI

Our appveyor configuration provides pkg-config when building for
mingw, cygwin, msvc, etc.

Of course, people manually running the tests won't require pkg-config.
pull/3750/head
Nirbheek Chauhan 7 years ago committed by Nirbheek Chauhan
parent 96b7fdb723
commit d2d1a7c573
  1. 17
      run_unittests.py

@ -74,15 +74,22 @@ def get_soname(fname):
def get_rpath(fname):
return get_dynamic_section_entry(fname, r'(?:rpath|runpath)')
def is_ci():
if 'TRAVIS' in os.environ or 'APPVEYOR' in os.environ:
return True
return False
def skipIfNoPkgconfig(f):
'''
Skip this test if no pkg-config is found, unless we're on Travis CI
This allows users to run our test suite without having pkg-config installed
on, f.ex., macOS, while ensuring that our Travis CI does not silently skip
the test because of misconfiguration.
Skip this test if no pkg-config is found, unless we're on Travis or
Appveyor CI. This allows users to run our test suite without having
pkg-config installed on, f.ex., macOS, while ensuring that our CI does not
silently skip the test because of misconfiguration.
Note: Yes, we provide pkg-config even while running Windows CI
'''
def wrapped(*args, **kwargs):
if 'TRAVIS' not in os.environ and shutil.which('pkg-config') is None:
if is_ci() and shutil.which('pkg-config') is None:
raise unittest.SkipTest('pkg-config not found')
return f(*args, **kwargs)
return wrapped

Loading…
Cancel
Save