mirror of
https://github.com/python/cpython.git
synced 2025-08-23 10:16:01 +00:00
Issue #15184: Ensure configuration-related environment variables
are unset during test execution.
This commit is contained in:
parent
636601dfba
commit
2731c049ac
1 changed files with 63 additions and 59 deletions
|
@ -20,6 +20,14 @@ class Test_OSXSupport(unittest.TestCase):
|
||||||
self.maxDiff = None
|
self.maxDiff = None
|
||||||
self.prog_name = 'bogus_program_xxxx'
|
self.prog_name = 'bogus_program_xxxx'
|
||||||
self.temp_path_dir = os.path.abspath(os.getcwd())
|
self.temp_path_dir = os.path.abspath(os.getcwd())
|
||||||
|
self.env = test.support.EnvironmentVarGuard()
|
||||||
|
self.addCleanup(self.env.__exit__)
|
||||||
|
for cv in ('CFLAGS', 'LDFLAGS', 'CPPFLAGS',
|
||||||
|
'BASECFLAGS', 'BLDSHARED', 'LDSHARED', 'CC',
|
||||||
|
'CXX', 'PY_CFLAGS', 'PY_LDFLAGS', 'PY_CPPFLAGS',
|
||||||
|
'PY_CORE_CFLAGS'):
|
||||||
|
if cv in self.env:
|
||||||
|
self.env.unset(cv)
|
||||||
|
|
||||||
def add_expected_saved_initial_values(self, config_vars, expected_vars):
|
def add_expected_saved_initial_values(self, config_vars, expected_vars):
|
||||||
# Ensure that the initial values for all modified config vars
|
# Ensure that the initial values for all modified config vars
|
||||||
|
@ -29,31 +37,29 @@ class Test_OSXSupport(unittest.TestCase):
|
||||||
if config_vars[k] != expected_vars[k])
|
if config_vars[k] != expected_vars[k])
|
||||||
|
|
||||||
def test__find_executable(self):
|
def test__find_executable(self):
|
||||||
with test.support.EnvironmentVarGuard() as env:
|
if self.env['PATH']:
|
||||||
if env['PATH']:
|
self.env['PATH'] = self.env['PATH'] + ':'
|
||||||
env['PATH'] = env['PATH'] + ':'
|
self.env['PATH'] = self.env['PATH'] + os.path.abspath(self.temp_path_dir)
|
||||||
env['PATH'] = env['PATH'] + os.path.abspath(self.temp_path_dir)
|
test.support.unlink(self.prog_name)
|
||||||
test.support.unlink(self.prog_name)
|
self.assertIsNone(_osx_support._find_executable(self.prog_name))
|
||||||
self.assertIsNone(_osx_support._find_executable(self.prog_name))
|
self.addCleanup(test.support.unlink, self.prog_name)
|
||||||
self.addCleanup(test.support.unlink, self.prog_name)
|
with open(self.prog_name, 'w') as f:
|
||||||
with open(self.prog_name, 'w') as f:
|
f.write("#!/bin/sh\n/bin/echo OK\n")
|
||||||
f.write("#!/bin/sh\n/bin/echo OK\n")
|
os.chmod(self.prog_name, stat.S_IRWXU)
|
||||||
os.chmod(self.prog_name, stat.S_IRWXU)
|
self.assertEqual(self.prog_name,
|
||||||
self.assertEqual(self.prog_name,
|
_osx_support._find_executable(self.prog_name))
|
||||||
_osx_support._find_executable(self.prog_name))
|
|
||||||
|
|
||||||
def test__read_output(self):
|
def test__read_output(self):
|
||||||
with test.support.EnvironmentVarGuard() as env:
|
if self.env['PATH']:
|
||||||
if env['PATH']:
|
self.env['PATH'] = self.env['PATH'] + ':'
|
||||||
env['PATH'] = env['PATH'] + ':'
|
self.env['PATH'] = self.env['PATH'] + os.path.abspath(self.temp_path_dir)
|
||||||
env['PATH'] = env['PATH'] + os.path.abspath(self.temp_path_dir)
|
test.support.unlink(self.prog_name)
|
||||||
test.support.unlink(self.prog_name)
|
self.addCleanup(test.support.unlink, self.prog_name)
|
||||||
self.addCleanup(test.support.unlink, self.prog_name)
|
with open(self.prog_name, 'w') as f:
|
||||||
with open(self.prog_name, 'w') as f:
|
f.write("#!/bin/sh\n/bin/echo ExpectedOutput\n")
|
||||||
f.write("#!/bin/sh\n/bin/echo ExpectedOutput\n")
|
os.chmod(self.prog_name, stat.S_IRWXU)
|
||||||
os.chmod(self.prog_name, stat.S_IRWXU)
|
self.assertEqual('ExpectedOutput',
|
||||||
self.assertEqual('ExpectedOutput',
|
_osx_support._read_output(self.prog_name))
|
||||||
_osx_support._read_output(self.prog_name))
|
|
||||||
|
|
||||||
def test__find_build_tool(self):
|
def test__find_build_tool(self):
|
||||||
out = _osx_support._find_build_tool('cc')
|
out = _osx_support._find_build_tool('cc')
|
||||||
|
@ -133,18 +139,17 @@ class Test_OSXSupport(unittest.TestCase):
|
||||||
}
|
}
|
||||||
self.add_expected_saved_initial_values(config_vars, expected_vars)
|
self.add_expected_saved_initial_values(config_vars, expected_vars)
|
||||||
|
|
||||||
with test.support.EnvironmentVarGuard() as env:
|
suffix = (':' + self.env['PATH']) if self.env['PATH'] else ''
|
||||||
suffix = (':' + env['PATH']) if env['PATH'] else ''
|
self.env['PATH'] = os.path.abspath(self.temp_path_dir) + suffix
|
||||||
env['PATH'] = os.path.abspath(self.temp_path_dir) + suffix
|
for c_name, c_output in compilers:
|
||||||
for c_name, c_output in compilers:
|
test.support.unlink(c_name)
|
||||||
test.support.unlink(c_name)
|
self.addCleanup(test.support.unlink, c_name)
|
||||||
self.addCleanup(test.support.unlink, c_name)
|
with open(c_name, 'w') as f:
|
||||||
with open(c_name, 'w') as f:
|
f.write("#!/bin/sh\n/bin/echo " + c_output)
|
||||||
f.write("#!/bin/sh\n/bin/echo " + c_output)
|
os.chmod(c_name, stat.S_IRWXU)
|
||||||
os.chmod(c_name, stat.S_IRWXU)
|
self.assertEqual(expected_vars,
|
||||||
self.assertEqual(expected_vars,
|
_osx_support._find_appropriate_compiler(
|
||||||
_osx_support._find_appropriate_compiler(
|
config_vars))
|
||||||
config_vars))
|
|
||||||
|
|
||||||
def test__remove_universal_flags(self):
|
def test__remove_universal_flags(self):
|
||||||
config_vars = {
|
config_vars = {
|
||||||
|
@ -195,31 +200,30 @@ class Test_OSXSupport(unittest.TestCase):
|
||||||
config_vars))
|
config_vars))
|
||||||
|
|
||||||
def test__override_all_archs(self):
|
def test__override_all_archs(self):
|
||||||
with test.support.EnvironmentVarGuard() as env:
|
self.env['ARCHFLAGS'] = '-arch x86_64'
|
||||||
env['ARCHFLAGS'] = '-arch x86_64'
|
config_vars = {
|
||||||
config_vars = {
|
'CC': 'clang',
|
||||||
'CC': 'clang',
|
'CFLAGS': '-fno-strict-aliasing -g -O3 -arch ppc -arch i386 ',
|
||||||
'CFLAGS': '-fno-strict-aliasing -g -O3 -arch ppc -arch i386 ',
|
'LDFLAGS': '-arch ppc -arch i386 -g',
|
||||||
'LDFLAGS': '-arch ppc -arch i386 -g',
|
'CPPFLAGS': '-I. -isysroot /Developer/SDKs/MacOSX10.4u.sdk',
|
||||||
'CPPFLAGS': '-I. -isysroot /Developer/SDKs/MacOSX10.4u.sdk',
|
'BLDSHARED': 'gcc-4.0 -bundle -arch ppc -arch i386 -g',
|
||||||
'BLDSHARED': 'gcc-4.0 -bundle -arch ppc -arch i386 -g',
|
'LDSHARED': 'gcc-4.0 -bundle -arch ppc -arch i386 '
|
||||||
'LDSHARED': 'gcc-4.0 -bundle -arch ppc -arch i386 '
|
'-isysroot /Developer/SDKs/MacOSX10.4u.sdk -g',
|
||||||
'-isysroot /Developer/SDKs/MacOSX10.4u.sdk -g',
|
}
|
||||||
}
|
expected_vars = {
|
||||||
expected_vars = {
|
'CC': 'clang',
|
||||||
'CC': 'clang',
|
'CFLAGS': '-fno-strict-aliasing -g -O3 -arch x86_64',
|
||||||
'CFLAGS': '-fno-strict-aliasing -g -O3 -arch x86_64',
|
'LDFLAGS': ' -g -arch x86_64',
|
||||||
'LDFLAGS': ' -g -arch x86_64',
|
'CPPFLAGS': '-I. -isysroot /Developer/SDKs/MacOSX10.4u.sdk',
|
||||||
'CPPFLAGS': '-I. -isysroot /Developer/SDKs/MacOSX10.4u.sdk',
|
'BLDSHARED': 'gcc-4.0 -bundle -g -arch x86_64',
|
||||||
'BLDSHARED': 'gcc-4.0 -bundle -g -arch x86_64',
|
'LDSHARED': 'gcc-4.0 -bundle -isysroot '
|
||||||
'LDSHARED': 'gcc-4.0 -bundle -isysroot '
|
'/Developer/SDKs/MacOSX10.4u.sdk -g -arch x86_64',
|
||||||
'/Developer/SDKs/MacOSX10.4u.sdk -g -arch x86_64',
|
}
|
||||||
}
|
self.add_expected_saved_initial_values(config_vars, expected_vars)
|
||||||
self.add_expected_saved_initial_values(config_vars, expected_vars)
|
|
||||||
|
|
||||||
self.assertEqual(expected_vars,
|
self.assertEqual(expected_vars,
|
||||||
_osx_support._override_all_archs(
|
_osx_support._override_all_archs(
|
||||||
config_vars))
|
config_vars))
|
||||||
|
|
||||||
def test__check_for_unavailable_sdk(self):
|
def test__check_for_unavailable_sdk(self):
|
||||||
config_vars = {
|
config_vars = {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue