MCPcopy Index your code
hub / github.com/python/cpython / _check_build

Method _check_build

Lib/test/test_cext/__init__.py:48–104  ·  view source on GitHub ↗
(self, extension_name, python_exe, std, limited,
                     abi3t)

Source from the content-addressed store, hash-verified

46 abi3t=abi3t)
47
48 def _check_build(self, extension_name, python_exe, std, limited,
49 abi3t):
50 pkg_dir = 'pkg'
51 os.mkdir(pkg_dir)
52 shutil.copy(SETUP, os.path.join(pkg_dir, os.path.basename(SETUP)))
53 for source in SOURCES:
54 dest = os.path.join(pkg_dir, os.path.basename(source))
55 shutil.copy(source, dest)
56
57 def run_cmd(operation, cmd):
58 env = os.environ.copy()
59 if std:
60 env['CPYTHON_TEST_STD'] = std
61 if limited:
62 env['CPYTHON_TEST_LIMITED'] = '1'
63 if abi3t:
64 env['CPYTHON_TEST_ABI3T'] = '1'
65 env['CPYTHON_TEST_EXT_NAME'] = extension_name
66 env['TEST_INTERNAL_C_API'] = str(int(self.TEST_INTERNAL_C_API))
67 if support.verbose:
68 print('Run:', ' '.join(map(shlex.quote, cmd)))
69 subprocess.run(cmd, check=True, env=env)
70 else:
71 proc = subprocess.run(cmd,
72 env=env,
73 stdout=subprocess.PIPE,
74 stderr=subprocess.STDOUT,
75 text=True)
76 if proc.returncode:
77 print('Run:', ' '.join(map(shlex.quote, cmd)))
78 print(proc.stdout, end='')
79 self.fail(
80 f"{operation} failed with exit code {proc.returncode}")
81
82 # Build and install the C extension
83 cmd = [python_exe, '-X', 'dev',
84 '-m', 'pip', 'install', '--no-build-isolation',
85 os.path.abspath(pkg_dir)]
86 if support.verbose:
87 cmd.append('-v')
88 run_cmd('Install', cmd)
89
90 # Do a reference run. Until we test that running python
91 # doesn't leak references (gh-94755), run it so one can manually check
92 # -X showrefcount results against this baseline.
93 cmd = [python_exe,
94 '-X', 'dev',
95 '-X', 'showrefcount',
96 '-c', 'pass']
97 run_cmd('Reference run', cmd)
98
99 # Import the C extension
100 cmd = [python_exe,
101 '-X', 'dev',
102 '-X', 'showrefcount',
103 '-c', f"import {extension_name}"]
104 run_cmd('Import', cmd)
105

Callers 1

check_buildMethod · 0.95

Calls 7

run_cmdFunction · 0.85
mkdirMethod · 0.45
copyMethod · 0.45
joinMethod · 0.45
basenameMethod · 0.45
abspathMethod · 0.45
appendMethod · 0.45

Tested by

no test coverage detected