summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNed Batchelder <ned@nedbatchelder.com>2021-06-12 08:26:38 -0400
committerNed Batchelder <ned@nedbatchelder.com>2021-06-12 08:26:38 -0400
commitd8124a87a427728e1ee353fae55b2a9f47a04db6 (patch)
treeae5c5b27230d84c97ba4da463f4b25cf8661b2fc
parenta9c3aeb3f614b184dabfaf638914a847176f637e (diff)
downloadpython-coveragepy-git-nedbat/plugin-error-handling.tar.gz
wip: more specific errors for plugin problemsnedbat/plugin-error-handling
-rw-r--r--coverage/ctracer/tracer.c11
1 files changed, 5 insertions, 6 deletions
diff --git a/coverage/ctracer/tracer.c b/coverage/ctracer/tracer.c
index d90f1bc3..9a55084f 100644
--- a/coverage/ctracer/tracer.c
+++ b/coverage/ctracer/tracer.c
@@ -601,10 +601,7 @@ CTracer_unpack_pair(CTracer *self, PyObject *pair, int *p_one, int *p_two)
int index;
if (!PyTuple_Check(pair) || PyTuple_Size(pair) != 2) {
- PyErr_SetString(
- PyExc_TypeError,
- "line_number_range must return 2-tuple"
- );
+ PyErr_SetString(PyExc_TypeError, "line_number_range must return 2-tuple");
goto error;
}
@@ -645,13 +642,15 @@ CTracer_handle_line(CTracer *self, PyFrameObject *frame)
from_to = PyObject_CallMethodObjArgs(self->pcur_entry->file_tracer, str_line_number_range, frame, NULL);
if (from_to == NULL) {
CTracer_disable_plugin(self, self->pcur_entry->disposition);
- goto ok;
+ PyErr_SetString(PyExc_TypeError, "line_number_range errored out");
+ goto error;
}
ret2 = CTracer_unpack_pair(self, from_to, &lineno_from, &lineno_to);
Py_DECREF(from_to);
if (ret2 < 0) {
CTracer_disable_plugin(self, self->pcur_entry->disposition);
- goto ok;
+ PyErr_SetString(PyExc_TypeError, "line_number_range didn't return a pair");
+ goto error;
}
}
else {