Commit 874f6ddb authored by Xavier de Gaye's avatar Xavier de Gaye

Issue 26931: Skip the test_distutils tests using a compiler executable

that is not found
parent 62a1a687
...@@ -3,7 +3,7 @@ import unittest ...@@ -3,7 +3,7 @@ import unittest
import os import os
import sys import sys
from test.support import run_unittest from test.support import run_unittest, missing_compiler_executable
from distutils.command.build_clib import build_clib from distutils.command.build_clib import build_clib
from distutils.errors import DistutilsSetupError from distutils.errors import DistutilsSetupError
...@@ -116,19 +116,11 @@ class BuildCLibTestCase(support.TempdirManager, ...@@ -116,19 +116,11 @@ class BuildCLibTestCase(support.TempdirManager,
cmd.build_temp = build_temp cmd.build_temp = build_temp
cmd.build_clib = build_temp cmd.build_clib = build_temp
# before we run the command, we want to make sure # Before we run the command, we want to make sure
# all commands are present on the system # all commands are present on the system.
# by creating a compiler and checking its executables ccmd = missing_compiler_executable()
from distutils.ccompiler import new_compiler if ccmd is not None:
from distutils.sysconfig import customize_compiler self.skipTest('The %r command is not found' % ccmd)
compiler = new_compiler()
customize_compiler(compiler)
for ccmd in compiler.executables.values():
if ccmd is None:
continue
if find_executable(ccmd[0]) is None:
self.skipTest('The %r command is not found' % ccmd[0])
# this should work # this should work
cmd.run() cmd.run()
......
...@@ -41,6 +41,9 @@ class BuildExtTestCase(TempdirManager, ...@@ -41,6 +41,9 @@ class BuildExtTestCase(TempdirManager,
return build_ext(*args, **kwargs) return build_ext(*args, **kwargs)
def test_build_ext(self): def test_build_ext(self):
cmd = support.missing_compiler_executable()
if cmd is not None:
self.skipTest('The %r command is not found' % cmd)
global ALREADY_TESTED global ALREADY_TESTED
copy_xxmodule_c(self.tmp_dir) copy_xxmodule_c(self.tmp_dir)
xx_c = os.path.join(self.tmp_dir, 'xxmodule.c') xx_c = os.path.join(self.tmp_dir, 'xxmodule.c')
...@@ -295,6 +298,9 @@ class BuildExtTestCase(TempdirManager, ...@@ -295,6 +298,9 @@ class BuildExtTestCase(TempdirManager,
self.assertEqual(cmd.compiler, 'unix') self.assertEqual(cmd.compiler, 'unix')
def test_get_outputs(self): def test_get_outputs(self):
cmd = support.missing_compiler_executable()
if cmd is not None:
self.skipTest('The %r command is not found' % cmd)
tmp_dir = self.mkdtemp() tmp_dir = self.mkdtemp()
c_file = os.path.join(tmp_dir, 'foo.c') c_file = os.path.join(tmp_dir, 'foo.c')
self.write_file(c_file, 'void PyInit_foo(void) {}\n') self.write_file(c_file, 'void PyInit_foo(void) {}\n')
......
...@@ -2,7 +2,7 @@ ...@@ -2,7 +2,7 @@
import unittest import unittest
import os import os
import sys import sys
from test.support import run_unittest from test.support import run_unittest, missing_compiler_executable
from distutils.command.config import dump_file, config from distutils.command.config import dump_file, config
from distutils.tests import support from distutils.tests import support
...@@ -39,6 +39,9 @@ class ConfigTestCase(support.LoggingSilencer, ...@@ -39,6 +39,9 @@ class ConfigTestCase(support.LoggingSilencer,
@unittest.skipIf(sys.platform == 'win32', "can't test on Windows") @unittest.skipIf(sys.platform == 'win32', "can't test on Windows")
def test_search_cpp(self): def test_search_cpp(self):
cmd = missing_compiler_executable(['preprocessor'])
if cmd is not None:
self.skipTest('The %r command is not found' % cmd)
pkg_dir, dist = self.create_dist() pkg_dir, dist = self.create_dist()
cmd = config(dist) cmd = config(dist)
......
...@@ -17,6 +17,7 @@ from distutils.errors import DistutilsOptionError ...@@ -17,6 +17,7 @@ from distutils.errors import DistutilsOptionError
from distutils.extension import Extension from distutils.extension import Extension
from distutils.tests import support from distutils.tests import support
from test import support as test_support
def _make_ext_name(modname): def _make_ext_name(modname):
...@@ -196,6 +197,9 @@ class InstallTestCase(support.TempdirManager, ...@@ -196,6 +197,9 @@ class InstallTestCase(support.TempdirManager,
self.assertEqual(found, expected) self.assertEqual(found, expected)
def test_record_extensions(self): def test_record_extensions(self):
cmd = test_support.missing_compiler_executable()
if cmd is not None:
self.skipTest('The %r command is not found' % cmd)
install_dir = self.mkdtemp() install_dir = self.mkdtemp()
project_dir, dist = self.create_dist(ext_modules=[ project_dir, dist = self.create_dist(ext_modules=[
Extension('xx', ['xxmodule.c'])]) Extension('xx', ['xxmodule.c'])])
......
...@@ -39,15 +39,6 @@ class SysconfigTestCase(support.EnvironGuard, unittest.TestCase): ...@@ -39,15 +39,6 @@ class SysconfigTestCase(support.EnvironGuard, unittest.TestCase):
self.assertNotEqual(sysconfig.get_python_lib(), self.assertNotEqual(sysconfig.get_python_lib(),
sysconfig.get_python_lib(prefix=TESTFN)) sysconfig.get_python_lib(prefix=TESTFN))
def test_get_python_inc(self):
inc_dir = sysconfig.get_python_inc()
# This is not much of a test. We make sure Python.h exists
# in the directory returned by get_python_inc() but we don't know
# it is the correct file.
self.assertTrue(os.path.isdir(inc_dir), inc_dir)
python_h = os.path.join(inc_dir, "Python.h")
self.assertTrue(os.path.isfile(python_h), python_h)
def test_get_config_vars(self): def test_get_config_vars(self):
cvars = sysconfig.get_config_vars() cvars = sysconfig.get_config_vars()
self.assertIsInstance(cvars, dict) self.assertIsInstance(cvars, dict)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment