@@ -52,8 +52,11 @@ def do_show_env():
5252 print (f" { env } = { os .environ [env ]!r} " )
5353
5454
55- def do_remove_extension (* args ):
56- """Remove the compiled C extension, no matter what its name."""
55+ def hide_extension (core , * args ):
56+ """Hide the compiled C extension, no matter what its name."""
57+
58+ if core == "ctrace" :
59+ return
5760
5861 so_patterns = """
5962 tracer.so
@@ -94,7 +97,11 @@ def do_remove_extension(*args):
9497 if VERBOSITY > 1 :
9598 print (f"Removing { os .path .abspath (filename )} " )
9699 try :
97- os .remove (filename )
100+ hidden_name = filename + ".hidden"
101+ if os .path .exists (hidden_name ):
102+ os .remove (hidden_name )
103+ os .rename (filename , hidden_name )
104+ return hidden_name
98105 except OSError as exc :
99106 if VERBOSITY > 1 :
100107 print (f"Couldn't remove { os .path .abspath (filename )} : { exc } " )
@@ -157,11 +164,16 @@ def make_env_id(core):
157164
158165def run_tests (core , * runner_args ):
159166 """The actual running of tests."""
167+ hidden = hide_extension (core )
160168 if "COVERAGE_TESTING" not in os .environ :
161169 os .environ ["COVERAGE_TESTING" ] = "True"
162170 print_banner (label_for_core (core ))
163171
164- return pytest .main (list (runner_args ))
172+ try :
173+ return pytest .main (list (runner_args ))
174+ finally :
175+ if hidden :
176+ os .remove (hidden )
165177
166178
167179def run_tests_with_coverage (core , * runner_args ):
@@ -210,6 +222,8 @@ def run_tests_with_coverage(core, *runner_args):
210222 if getattr (mod , "__file__" , "??" ).startswith (covdir ):
211223 covmods [name ] = mod
212224 del sys .modules [name ]
225+ hidden = hide_extension (core )
226+ # print("igor: re-importing coverage")
213227 import coverage # pylint: disable=reimported
214228
215229 sys .modules .update (covmods )
@@ -220,6 +234,8 @@ def run_tests_with_coverage(core, *runner_args):
220234 finally :
221235 cov .stop ()
222236 os .remove (pth_path )
237+ if hidden :
238+ os .remove (hidden )
223239
224240 cov .save ()
225241 return status
0 commit comments