Make Python 2 tests optional(er) to prepare for py2 purge in Debian.

pull/5873/head
Jussi Pakkanen 5 years ago
parent 7d9e58f125
commit 5b422fce87
  1. 5
      mesonbuild/modules/python.py
  2. 9
      run_unittests.py

@ -115,7 +115,6 @@ class PythonDependency(ExternalDependency):
self._find_libpy_windows(environment)
else:
self._find_libpy(python_holder, environment)
if self.is_found:
mlog.debug('Found "python-{}" via SYSCONFIG module'.format(self.version))
py_lookup_method = 'sysconfig'
@ -123,7 +122,7 @@ class PythonDependency(ExternalDependency):
if self.is_found:
mlog.log('Dependency', mlog.bold(self.name), 'found:', mlog.green('YES ({})'.format(py_lookup_method)))
else:
mlog.log('Dependency', mlog.bold(self.name), 'found:', [mlog.red('NO')])
mlog.log('Dependency', mlog.bold(self.name), 'found:', mlog.red('NO'))
def _find_libpy(self, python_holder, environment):
if python_holder.is_pypy:
@ -145,7 +144,7 @@ class PythonDependency(ExternalDependency):
if largs is not None:
self.link_args = largs
self.is_found = largs is not None or not self.link_libpython
self.is_found = largs is not None or self.link_libpython
inc_paths = mesonlib.OrderedSet([
self.variables.get('INCLUDEPY'),

@ -6328,6 +6328,15 @@ class NativeFileTests(BasePlatformTests):
# python module breaks. This is fine on other OSes because they
# don't need the extra indirection.
raise unittest.SkipTest('bat indirection breaks internal sanity checks.')
if os.path.exists('/etc/debian_version'):
rc = subprocess.call(['pkg-config', '--cflags', 'python2'],
stdout=subprocess.DEVNULL,
stderr=subprocess.DEVNULL)
if rc != 0:
# Python 2 will be removed in Debian Bullseye, thus we must
# remove the build dependency on python2-dev. Keep the tests
# but only run them if dev packages are available.
raise unittest.SkipTest('Not running Python 2 tests because dev packages not installed.')
self._simple_test('python', 'python')
@unittest.skipIf(is_windows(), 'Setting up multiple compilers on windows is hard')

Loading…
Cancel
Save