GNU bug report logs - #25316
26.0.50; Bugs in testcover-reinstrument

Previous Next

Package: emacs;

Reported by: Gemini Lasswell <gazally <at> runbox.com>

Date: Sun, 1 Jan 2017 00:41:02 UTC

Severity: normal

Tags: patch

Found in version 26.0.50

Done: Gemini Lasswell <gazally <at> runbox.com>

Bug is archived. No further changes may be made.

Full log


Message #8 received at 25316 <at> debbugs.gnu.org (full text, mbox):

From: Gemini Lasswell <gazally <at> runbox.com>
To: 25316 <at> debbugs.gnu.org
Subject: Patch for bug#25316: 26.0.50; Bugs in testcover-reinstrument
Date: Mon, 25 Sep 2017 15:04:58 -0700
[Message part 1 (text/plain, inline)]
The attached patches fix the 5 bugs in this bug report, as well as
11307, 24509, 24688, 24743 and 25326.

testcover-reinstrument is a code walker which rewrites Edebug's
instrumented code replacing Edebug's functions edebug-enter,
edebug-before and edebug-after with Testcover's functions (some with
different call signatures), and at the same time determining which
forms might only return a single value and treating them
differently. Since it uses car and cdr to parse and rewrite the code,
it is consequently difficult to read and modify.

My original goal was to change testcover-reinstrument to use pcase,
but along the way I realized that I could simplify it and not only fix
all the bugs where one of Edebug's functions gets left in the
instrumented code, but remove the possibility of undiscovered or
future ones by not doing code rewriting and instead adding a hook
mechanism to make Edebug's functions call Testcover's. So in these
patches testcover-reinstrument has become testcover-analyze-coverage,
which uses pcase to walk Edebug's instrumented code and save the
results of its analysis of single-value forms in Edebug's code
coverage vector.

[0001-Allow-Edebug-s-instrumentation-to-be-used-for-other-.patch (text/plain, attachment)]
[0002-Rewrite-Testcover-s-internals-fixing-several-bugs.patch (text/plain, attachment)]

This bug report was last modified 7 years and 225 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.