luisneto has asked for the wisdom of the Perl Monks concerning the following question:

Hello Monks,

I'm using Devel::Cover to get statement coverage for my code and I have the following issue:

In system ONE I inserted 'use Devel::Cover' to all of my scripts, but in system TWO I set '-MDevel::Cover=-db....' in the environment variable PERL5OPT. As result of this I have two databases, say db_one and db_two; the issue is that if myscript.pl got executed and covered in both systems, when I merge the databases, one of the two entries gets deleted by cover because the md5 checksum differs from the file stored in the file system (due to the fact that myscript.pl has one extra line of source code in system ONE that it is not present in system TWO).

How can I remove/add that extra 'use Devel::Cover' line to one of the two databases, so cover can merge the coverage data for myscript.pl into one single entry in the database? I need this because coverage for myscript.pl is not the same in system ONE than the coverage in system TWO, and I need the combined coverage number.

Thanks!
  • Comment on Devel::Cover merging two versions of the same file.

Replies are listed 'Best First'.
Re: Devel::Cover merging two versions of the same file.
by pjcj (Novice) on Aug 16, 2012 at 22:55 UTC

    You've correctly identified the problem, but I'm afraid that there isn't a simple solution. In fact, it may well be simpler to make the scripts the same in both environments again and rerun the coverage on one of them.

    However, if you do wish to pursue the path of matching up the databases, what you would have to do would be to write a program to take one of the databases, copy into it the "Structure" data from the other database, and then munge the run data to either add the missing "use Devel::Cover;" line and budge the rest of the data down a line, or remove the "use Devel::Cover;" line and data and budge the rest of the data up a line.

    The API to the database would allow you to do this, I think, but you would be blazing new ground.

    If this sounds like a fair amount of rather tricky work to you, then you are not alone. Hence my suggestion in the first paragraph.

    Sorry I can't be the bearer of better news.