Adding tests to and refactoring the perl debugger - Grant Report #1
Sat, 01-Sep-2012 by
Alan Haggai Alavi
edit post
*Shlomi Fish reported:*
> **2012-Aug-28**:
>
> * I received the E-mail that my grant for improving the Perl debugger
> was accepted in the afternoon today ( 2012-Aug-28 ). My grant manager will
> be Alan Haggai Alavi, whom I talked with and successfully collaborated with
> in the past.
>
> * I decided to start working.
>
> * I checked the pending tests on my
> shlomif-perl-d-add-tests-take-2-may-git-burn-in-hell (titled so because git
> has given me some trouble in the past incarnation of the branch), and
> after merging the changesets from bleadperl, made sure all tests pass (by
> re-running `Configure`, `make` and `make test`), and submitted a ticket with a patch
> with new tests:
>
> - [https://rt.perl.org:443/rt3/Ticket/Display.html?id=114644](https://rt.perl.org:443/rt3/Ticket/Display.html?id=114644)
>
> - Notes:
> - To run the make in parallel do `make -j4` (for 4 cores).
> - To run the tests in parallel do `make -j12 test_harness TEST_JOBS=4"`
> (the `-j12` does not affect the tests, just makes sure the dependencies
> scanning goes quickly).
> - `make test_harness TEST_FILES='../lib/perl5db.t'` tests only the
> debugger.
>
> * Then I experimented with measuring coverage in the debugger. My first
> attempt was this script: [https://gist.github.com/3583186](https://gist.github.com/3583186)
>
> This caused some tests to fail. I decided not to investigate further for
> the time being (having spent a lot of time on it), and instead tried
> `Devel::Cover`.
>
> * After experimenting with several ways to enable `Devel::Cover` the most
> promising way appeared to be adding a `use Devel::Cover;` statement to the
> top of `lib/perl5db.pl`.
>
> - This caused some of the tests to segfault in `lib/perl5db.t`.
>
> - I decided to stop investigating for now.
>
> - TODO : Report a bug in `Devel::Cover`.
>
> * I talked with a friend on IM and he suggested completely replacing
> `lib/perl5db.pl` with either `Devel::Ebug` or `Devel::Trepan`. I noted `Devel::Trepan`
> was GPLv2+ + Artistic instead of GPLv1+ + Artistic like perl is, which may
> be problematic, and that its code exhibits some strange things such as
> prototypes for methods and multiple pragmas on the same lines, and that the
> author refused to apply a patch which remedied them (for his own reasons).
>
> It's also not completely compatible with `perl -d`, which means a compatible
> interface should be written for it, and that adding tests against the current
> perl debugger with its current behaviour will help test that.
>
> **2012-Aug-30**:
>
> * I added a test for the `f` debugger command, by copying, pasting and
> modifying a previous test (for the `b [filename]:[line]`). It runs nicely.
>
> * As I was testing the `/pattern/` command I noticed it failed due to an
> exception. This turned out to have been caused by the fact that string eval
> inside the debugger did not handle lexical variables well. This was fixed
> along with a regression test and some future TODOs.
>
> * I added a test for the `?pattern?` command (to search backward), and this
> time the test worked immediately, though I'm not sure why the bug is not
> exhibited now. Maybe due to the previous `use vars (...)`.
>
> * I sent an up-to-date patch on the previous bug report.
>
> **2012-Aug-31**:
>
> * I fixed the older patch by removing an extraneous `$i++` (only `$i` was needed)
> that was reported in perl5-porters.
>
> * Reverted some of the changes that invovled converting C-style `for(;;)` loops
> into `while`/`continue` blocks.
>
> * Submitted a new patch to the rt.perl.org ticket.
>
> **2012-Sep-01**:
>
> * Plans for today:
> 1. Report the segfaults in `Devel::Cover`.
>
> 2. Add more tests.
>
> 3. Respond to this message by Rocky Bernstein:
> - [http://www.nntp.perl.org/group/perl.perl5.porters/2012/08/msg191414.html](http://www.nntp.perl.org/group/perl.perl5.porters/2012/08/msg191414.html)
> - Done:
> - TODO: include link.
Comments (0)