[Issue 16397] New: test_runner in coverage mode doesn't match with individual test (covers less)
via Digitalmars-d-bugs
digitalmars-d-bugs at puremagic.com
Tue Aug 16 17:07:30 PDT 2016
https://issues.dlang.org/show_bug.cgi?id=16397
Issue ID: 16397
Summary: test_runner in coverage mode doesn't match with
individual test (covers less)
Product: D
Version: D2
Hardware: x86_64
OS: Linux
Status: NEW
Severity: enhancement
Priority: P1
Component: phobos
Assignee: nobody at puremagic.com
Reporter: greensunny12 at gmail.com
In #4719 we ran into some troubles with the reporting of the coverage between
the test_runner and individual tests, see also:
https://github.com/dlang/phobos/pull/4719#issuecomment-239363404
The difference only exists in some module, but for example in std.digest.digest
different coverage hits are reported:
1) Output with test_runner (compiled with ENABLE_COVERAGE=1),
e.g. generated/linux/debug/64/unittest/test_runner std.digest.digest
| body
| {
0000000| enum string msg = "Buffer needs to be at least " ~
digestLength!(T).stringof ~ " bytes " ~
| "big, check " ~ typeof(this).stringof ~ ".length!";
0000000| asArray!(digestLength!T)(buf, msg) = _digest.peek();
0000000| return buf[0 .. digestLength!T];
| }
|
| @trusted ubyte[] peek() const
| {
0000000| enum len = digestLength!T;
0000000| auto buf = new ubyte[len];
0000000| asArray!(digestLength!T)(buf) = _digest.peek();
0000000| return buf;
| }
| }
2) make -f posix.mak std/digest/digest.test
| body
| {
1| enum string msg = "Buffer needs to be at least " ~
digestLength!(T).stringof ~ " bytes " ~
| "big, check " ~ typeof(this).stringof ~ ".length!";
1| asArray!(digestLength!T)(buf, msg) = _digest.peek();
1| return buf[0 .. digestLength!T];
| }
|
| @trusted ubyte[] peek() const
| {
1| enum len = digestLength!T;
1| auto buf = new ubyte[len];
1| asArray!(digestLength!T)(buf) = _digest.peek();
1| return buf;
| }
--
More information about the Digitalmars-d-bugs
mailing list