bpo-36235: Enhance distutils test_customize_compiler() (GH-12403) (GH… · python/cpython@8c380e9 (original) (raw)

`@@ -51,29 +51,98 @@ def test_get_python_inc(self):

`

51

51

`python_h = os.path.join(inc_dir, "Python.h")

`

52

52

`self.assertTrue(os.path.isfile(python_h), python_h)

`

53

53

``

54

``

`-

@unittest.skipUnless(get_default_compiler() == 'unix',

`

55

``

`-

'not testing if default compiler is not unix')

`

56

``

`-

def test_customize_compiler(self):

`

57

``

`-

os.environ['AR'] = 'my_ar'

`

58

``

`-

os.environ['CC'] = 'my_cc'

`

59

``

`-

os.environ['ARFLAGS'] = '--myarflags'

`

60

``

`-

os.environ['CFLAGS'] = '--mycflags'

`

61

``

-

``

54

`+

def customize_compiler(self):

`

62

55

`# make sure AR gets caught

`

63

56

`class compiler:

`

64

57

`compiler_type = 'unix'

`

65

58

``

66

59

`def set_executables(self, **kw):

`

67

60

`self.exes = kw

`

68

61

``

69

``

`-

Make sure that sysconfig._config_vars is initialized

`

70

``

`-

sysconfig.get_config_vars()

`

``

62

`+

sysconfig_vars = {

`

``

63

`+

'AR': 'sc_ar',

`

``

64

`+

'CC': 'sc_cc',

`

``

65

`+

'CXX': 'sc_cxx',

`

``

66

`+

'ARFLAGS': '--sc-arflags',

`

``

67

`+

'CFLAGS': '--sc-cflags',

`

``

68

`+

'CCSHARED': '--sc-ccshared',

`

``

69

`+

'LDSHARED': 'sc_ldshared',

`

``

70

`+

'SO': 'sc_shutil_suffix',

`

``

71

`+

}

`

71

72

``

72

73

`comp = compiler()

`

73

``

`-

with swap_item(sysconfig._config_vars, 'CFLAGS', '--sysconfig-cflags'):

`

``

74

`+

old_vars = dict(sysconfig._config_vars)

`

``

75

`+

try:

`

``

76

`+

for key, value in sysconfig_vars.items():

`

``

77

`+

sysconfig._config_vars[key] = value

`

74

78

`sysconfig.customize_compiler(comp)

`

75

``

`-

self.assertEqual(comp.exes['archiver'], 'my_ar --myarflags')

`

76

``

`-

self.assertEqual(comp.exes['compiler'], 'my_cc --sysconfig-cflags --mycflags')

`

``

79

`+

finally:

`

``

80

`+

sysconfig._config_vars.clear()

`

``

81

`+

sysconfig._config_vars.update(old_vars)

`

``

82

+

``

83

`+

return comp

`

``

84

+

``

85

`+

@unittest.skipUnless(get_default_compiler() == 'unix',

`

``

86

`+

'not testing if default compiler is not unix')

`

``

87

`+

def test_customize_compiler(self):

`

``

88

`+

Make sure that sysconfig._config_vars is initialized

`

``

89

`+

sysconfig.get_config_vars()

`

``

90

+

``

91

`+

os.environ['AR'] = 'env_ar'

`

``

92

`+

os.environ['CC'] = 'env_cc'

`

``

93

`+

os.environ['CPP'] = 'env_cpp'

`

``

94

`+

os.environ['CXX'] = 'env_cxx --env-cxx-flags'

`

``

95

`+

os.environ['LDSHARED'] = 'env_ldshared'

`

``

96

`+

os.environ['LDFLAGS'] = '--env-ldflags'

`

``

97

`+

os.environ['ARFLAGS'] = '--env-arflags'

`

``

98

`+

os.environ['CFLAGS'] = '--env-cflags'

`

``

99

`+

os.environ['CPPFLAGS'] = '--env-cppflags'

`

``

100

+

``

101

`+

comp = self.customize_compiler()

`

``

102

`+

self.assertEqual(comp.exes['archiver'],

`

``

103

`+

'env_ar --env-arflags')

`

``

104

`+

self.assertEqual(comp.exes['preprocessor'],

`

``

105

`+

'env_cpp --env-cppflags')

`

``

106

`+

self.assertEqual(comp.exes['compiler'],

`

``

107

`+

'env_cc --sc-cflags --env-cflags --env-cppflags')

`

``

108

`+

self.assertEqual(comp.exes['compiler_so'],

`

``

109

`+

('env_cc --sc-cflags '

`

``

110

`+

'--env-cflags ''--env-cppflags --sc-ccshared'))

`

``

111

`+

self.assertEqual(comp.exes['compiler_cxx'],

`

``

112

`+

'env_cxx --env-cxx-flags')

`

``

113

`+

self.assertEqual(comp.exes['linker_exe'],

`

``

114

`+

'env_cc')

`

``

115

`+

self.assertEqual(comp.exes['linker_so'],

`

``

116

`+

('env_ldshared --env-ldflags --env-cflags'

`

``

117

`+

' --env-cppflags'))

`

``

118

`+

self.assertEqual(comp.shared_lib_extension, 'sc_shutil_suffix')

`

``

119

+

``

120

`+

del os.environ['AR']

`

``

121

`+

del os.environ['CC']

`

``

122

`+

del os.environ['CPP']

`

``

123

`+

del os.environ['CXX']

`

``

124

`+

del os.environ['LDSHARED']

`

``

125

`+

del os.environ['LDFLAGS']

`

``

126

`+

del os.environ['ARFLAGS']

`

``

127

`+

del os.environ['CFLAGS']

`

``

128

`+

del os.environ['CPPFLAGS']

`

``

129

+

``

130

`+

comp = self.customize_compiler()

`

``

131

`+

self.assertEqual(comp.exes['archiver'],

`

``

132

`+

'sc_ar --sc-arflags')

`

``

133

`+

self.assertEqual(comp.exes['preprocessor'],

`

``

134

`+

'sc_cc -E')

`

``

135

`+

self.assertEqual(comp.exes['compiler'],

`

``

136

`+

'sc_cc --sc-cflags')

`

``

137

`+

self.assertEqual(comp.exes['compiler_so'],

`

``

138

`+

'sc_cc --sc-cflags --sc-ccshared')

`

``

139

`+

self.assertEqual(comp.exes['compiler_cxx'],

`

``

140

`+

'sc_cxx')

`

``

141

`+

self.assertEqual(comp.exes['linker_exe'],

`

``

142

`+

'sc_cc')

`

``

143

`+

self.assertEqual(comp.exes['linker_so'],

`

``

144

`+

'sc_ldshared')

`

``

145

`+

self.assertEqual(comp.shared_lib_extension, 'sc_shutil_suffix')

`

77

146

``

78

147

`def test_parse_makefile_base(self):

`

79

148

`self.makefile = test.test_support.TESTFN

`