summaryrefslogtreecommitdiff
path: root/tests/test_concurrency.py
diff options
context:
space:
mode:
authorNed Batchelder <ned@nedbatchelder.com>2022-05-18 07:18:51 -0400
committerNed Batchelder <ned@nedbatchelder.com>2022-05-18 07:18:51 -0400
commit803a5494ef23187e920eeb4b42e922b87cda5966 (patch)
tree141923268aef69c8b66324977160f60a7b1e7b24 /tests/test_concurrency.py
parentcde33ba4ded948bfc1fc9c6768db35d7728102c2 (diff)
downloadpython-coveragepy-git-803a5494ef23187e920eeb4b42e922b87cda5966.tar.gz
fix: the SIGTERM handler is now opt-in. #1310
Diffstat (limited to 'tests/test_concurrency.py')
-rw-r--r--tests/test_concurrency.py13
1 files changed, 10 insertions, 3 deletions
diff --git a/tests/test_concurrency.py b/tests/test_concurrency.py
index 9d534981..0a51d4d9 100644
--- a/tests/test_concurrency.py
+++ b/tests/test_concurrency.py
@@ -696,7 +696,8 @@ def test_thread_safe_save_data(tmpdir):
class SigtermTest(CoverageTest):
"""Tests of our handling of SIGTERM."""
- def test_sigterm_saves_data(self):
+ @pytest.mark.parametrize("sigterm", [False, True])
+ def test_sigterm_saves_data(self, sigterm):
# A terminated process should save its coverage data.
self.make_file("clobbered.py", """\
import multiprocessing
@@ -724,7 +725,8 @@ class SigtermTest(CoverageTest):
[run]
parallel = True
concurrency = multiprocessing
- """)
+ """ + ("sigterm = true" if sigterm else "")
+ )
out = self.run_command("coverage run clobbered.py")
# Under the Python tracer on Linux, we get the "Trace function changed"
# message. Does that matter?
@@ -735,7 +737,11 @@ class SigtermTest(CoverageTest):
assert out == "START\nNOT THREE\nEND\n"
self.run_command("coverage combine")
out = self.run_command("coverage report -m")
- assert self.squeezed_lines(out)[2] == "clobbered.py 17 1 94% 6"
+ if sigterm:
+ expected = "clobbered.py 17 1 94% 6"
+ else:
+ expected = "clobbered.py 17 5 71% 5-10"
+ assert self.squeezed_lines(out)[2] == expected
def test_sigterm_still_runs(self):
# A terminated process still runs its own SIGTERM handler.
@@ -766,6 +772,7 @@ class SigtermTest(CoverageTest):
[run]
parallel = True
concurrency = multiprocessing
+ sigterm = True
""")
out = self.run_command("coverage run handler.py")
assert out == "START\nSIGTERM\nEND\n"