|
7 | 7 | python3 run_tests.py |
8 | 8 | python3 run_tests.py -v # verbose mode |
9 | 9 | """ |
| 10 | +import argparse |
10 | 11 | import faulthandler |
11 | 12 | import gc |
12 | 13 | import os.path |
13 | 14 | import shutil |
14 | 15 | import subprocess |
15 | 16 | import sys |
16 | 17 | import sysconfig |
17 | | -import tempfile |
18 | 18 |
|
19 | 19 | # test.utils |
20 | 20 | import setup |
@@ -202,28 +202,36 @@ def test_func(): |
202 | 202 | msg += " (no reference leak detected)" |
203 | 203 | print(msg) |
204 | 204 |
|
| 205 | + # Unload the extension module |
| 206 | + testmod = None |
| 207 | + del sys.modules[module_name] |
| 208 | + |
| 209 | + |
| 210 | +def parse_args(): |
| 211 | + parser = argparse.ArgumentParser() |
| 212 | + parser.add_argument('-v', '--verbose', |
| 213 | + action='store_true') # on/off flag |
| 214 | + parser.add_argument('build_dir') |
| 215 | + return parser.parse_args() |
| 216 | + |
205 | 217 |
|
206 | 218 | def main(): |
207 | 219 | global VERBOSE |
208 | | - VERBOSE = ("-v" in sys.argv[1:] or "--verbose" in sys.argv[1:]) |
209 | | - |
210 | | - if (3, 13) <= sys.version_info <= (3, 13, 0, 'alpha', 4): |
211 | | - print("SKIP Python 3.13 alpha 1..4: not supported!") |
212 | | - return |
| 220 | + args = parse_args() |
| 221 | + VERBOSE = args.verbose |
| 222 | + build_dir = args.build_dir |
213 | 223 |
|
214 | | - if faulthandler is not None: |
215 | | - faulthandler.enable() |
| 224 | + faulthandler.enable() |
216 | 225 |
|
217 | 226 | src_dir = os.path.dirname(__file__) |
218 | 227 | if src_dir: |
219 | 228 | os.chdir(src_dir) |
220 | 229 |
|
221 | | - with tempfile.TemporaryDirectory() as build_dir: |
222 | | - build_ext(build_dir) |
| 230 | + build_ext(build_dir) |
223 | 231 |
|
224 | | - tests = setup.C_TESTS + setup.CXX_TESTS |
225 | | - for module_name, std, limited in tests: |
226 | | - run_tests(build_dir, module_name, std) |
| 232 | + tests = setup.C_TESTS + setup.CXX_TESTS |
| 233 | + for module_name, std, limited in tests: |
| 234 | + run_tests(build_dir, module_name, std) |
227 | 235 |
|
228 | 236 |
|
229 | 237 | if __name__ == "__main__": |
|
0 commit comments