Propsed path to std.cover
BCS
ao at pathlink.com
Thu Oct 4 13:32:49 PDT 2007
What this does is allows for a program to dump coverage data programmatically
(before the end of the run) with an extra name tag and also to zero the counters
programmatically.
the idea is to use it like this
unittest
{
std.cover.Wipe()
scope(exit) std.cover.Dump("Unittest.somthing.");
// unittest for something
}
the you get cov for just that unittest in it's own set of files.
***************
*** 84,89 ****
--- 84,96 ----
merge = flag;
}
+ void Wipe()
+ {
+ foreach(d;gdata)
+ foreach(inout v;d.data)
+ v=0;
+ }
+
extern (C) void _d_cover_register(char[] filename, BitArray valid, uint[]
data)
{
//printf("_d_cover_register()\n");
***************
*** 99,104 ****
--- 106,116 ----
static ~this()
{
+ Drop("");
+ }
+
+ void Drop(char[] name)
+ {
//printf("cover.~this()\n");
foreach (Cover c; gdata)
***************
*** 112,118 ****
char[][] lines = std.string.splitlines(buf);
// Generate listing file name
! char[] lstfilename = std.path.addExt(std.path.getBaseName(c.filename),
"lst");
if (merge && exists(lstfilename) && isfile(lstfilename))
{
--- 124,130 ----
char[][] lines = std.string.splitlines(buf);
// Generate listing file name
! char[] lstfilename = std.path.addExt(name~std.path.getBaseName(c.filename),
"lst");
if (merge && exists(lstfilename) && isfile(lstfilename))
{
More information about the Digitalmars-d
mailing list