https://issues.dlang.org/show_bug.cgi?id=22941
Issue ID: 22941
Summary: failing unittest should omit stack trace only if
assert was thrown directly by the unittest
Product: D
Version: D2
Hardware: All
OS: All
Status: NEW
Severity: enhancement
Priority: P1
Component: druntime
Assignee: [email protected]
Reporter: [email protected]
CC: [email protected]
see todo comment:
https://github.com/dlang/druntime/blob/v2.099.0/src/core/runtime.d#L614-L617
// Exception originates in the same module, don't print
// the stack trace.
// TODO: omit stack trace only if assert was thrown
// directly by the unittest.
added in https://github.com/dlang/druntime/pull/2611
before that PR, failing unittests would always print a stack trace - now, the
stack trace is omitted for all asserts originating from the same module
// test.d
// run with: dmd -main -unittest -run test.d
void fn() { assert(0, "oh no"); }
unittest { fn(); }
current output:
test.d(1): [unittest] oh no
1/1 modules FAILED unittests
this example should print the stack trace since the assert() wasn't in the
unittest block itself
--