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

--

Reply via email to