|
From: | Christian Ohler |
Subject: | bug#11218: with-demoted-errors use of condition-case-unless-debug; ert |
Date: | Sun, 20 May 2012 20:03:13 -0700 |
Stefan Monnier, 2012-05-06:
Collecting additional information about why the test failed is useful to virtually everyone who bothers running the test; there should be no reason not to.I disagree here. I think it's just as well if the "check" and the "debug" are done in 2 different steps.
ERT originally worked like you describe, until I got tired of having to re-run each failed test just to get a backtrace. The computer has the information in memory at the time the test fails; it should store it somewhere for me to look at later, rather than making me wait while it tries to recompute it. The backtrace is so basic that I practically always want to see it.
In batch mode, ERT also has to collect the backtrace on every failure; the idea of re-running with debugging enabled makes no sense in that context (if enabling debugging to collect backtraces in batch mode was an optional flag to be set on a second run after noticing failures on the first run, why not set that flag the first time around?). Also, a continuous build system is much more useful if errors come with more information since that increases the chances that the bug can be fixed without first building a specific version on a specific architecture to reproduce it.
The proper solution is to decouple the behaviors, perhaps by splitting the variable, perhaps by some other means.No, the proper solution is to make with-demoted-error (when run with debug-on-error) continue execution (after hitting `c' in the debugger) as if debug-on-error were nil.
That sounds like a good idea; I would add that it should be possible to invoke this "restart" (in CL terms) programmatically. (This does decouple the behaviors: it allows errors to be demoted regardless of the setting of `debug-on-error'.)
Christian.
[Prev in Thread] | Current Thread | [Next in Thread] |