]> git.ipfire.org Git - thirdparty/samba.git/commitdiff
pytest:segfault: prevent @no_gdb_backtrace smearing on exception
authorDouglas Bagnall <douglas.bagnall@catalyst.net.nz>
Wed, 6 Mar 2024 22:05:55 +0000 (11:05 +1300)
committerAndrew Bartlett <abartlet@samba.org>
Wed, 20 Mar 2024 23:42:34 +0000 (23:42 +0000)
It is OK for one of these tests to raise an exception -- that is often
the only reasonable thing to do when you'd otherwise crash -- but the
@no_gdb_backtrace decorator would not clean up in that case, leading to
no gdb backtraces for all subsequent tests.

Signed-off-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz>
Reviewed-by: Andrew Bartlett <abartlet@samba.org>
python/samba/tests/segfault.py

index 6c01088e5f8adf11e78c25ff352fc7577e786c91..d676a21f9c6ae5bd6d062cbb1aa0809b7b416403 100644 (file)
@@ -58,9 +58,11 @@ def segfault_detector(f):
 def no_gdb_backtrace(f):
     from os import environ
     def w(*args, **kwargs):
-        environ['PLEASE_NO_GDB_BACKTRACE'] = '1'
-        f(*args, **kwargs)
-        del environ['PLEASE_NO_GDB_BACKTRACE']
+        environ['PLEASE_NO_GDB_BACKTRACE'] = '1'        
+        try:
+            f(*args, **kwargs)
+        finally:
+            del environ['PLEASE_NO_GDB_BACKTRACE']
 
     return w