summaryrefslogtreecommitdiff
path: root/coverage/control.py
diff options
context:
space:
mode:
authorNed Batchelder <ned@nedbatchelder.com>2019-12-23 15:41:36 -0500
committerNed Batchelder <ned@nedbatchelder.com>2019-12-23 18:01:49 -0500
commit42a651c6e23b4156c5bc37208d97d0788e09edf7 (patch)
treeed9291ef67071d7a22969f15a55df0584e3ac61e /coverage/control.py
parent7c78d66bf029796961ed528b1d00c561aaa8ceb7 (diff)
downloadpython-coveragepy-git-42a651c6e23b4156c5bc37208d97d0788e09edf7.tar.gz
A way to artificially crash coverage, for testing.
Diffstat (limited to 'coverage/control.py')
-rw-r--r--coverage/control.py7
1 files changed, 6 insertions, 1 deletions
diff --git a/coverage/control.py b/coverage/control.py
index fdd1556e..6e59078c 100644
--- a/coverage/control.py
+++ b/coverage/control.py
@@ -18,7 +18,7 @@ from coverage.collector import Collector, CTracer
from coverage.config import read_coverage_config
from coverage.context import should_start_context_test_function, combine_context_switchers
from coverage.data import CoverageData, combine_parallel_data
-from coverage.debug import DebugControl, write_formatted_info
+from coverage.debug import DebugControl, short_stack, write_formatted_info
from coverage.disposition import disposition_debug_msg
from coverage.files import PathAliases, abs_file, relative_filename, set_relative_directory
from coverage.html import HtmlReporter
@@ -280,6 +280,11 @@ class Coverage(object):
self._wrote_debug = True
self._write_startup_debug()
+ # '[run] _crash' will raise an exception if the value is close by in
+ # the call stack, for testing error handling.
+ if self.config._crash and self.config._crash in short_stack(limit=4):
+ raise Exception("Crashing because called by {}".format(self.config._crash))
+
def _write_startup_debug(self):
"""Write out debug info at startup if needed."""
wrote_any = False