October 29, 2020
https://issues.dlang.org/show_bug.cgi?id=21350

          Issue ID: 21350
           Summary: [TestSuite] Failure of test/unit/frontend.d shows as
                    "TARGET: ."
           Product: D
           Version: D2
          Hardware: All
                OS: All
            Status: NEW
          Keywords: TestSuite
          Severity: normal
          Priority: P1
         Component: dmd
          Assignee: nobody@puremagic.com
          Reporter: pro.mathias.lang@gmail.com

I've seen the following failure in the CI:
```
Failed to execute the `unit` test executable! (exit code 1)

> /home/circleci/dmd/generated/linux/debug/64/dmd @/home/circleci/dmd/test/test_results/cmdfile

> /home/circleci/dmd/test/test_results/runner
test.d(1): Error: Built-in hex string literals are obsolete, use
`std.conv.hexString!"61"` instead.
test.d(1): Error: declaration expected following attribute, not end of file
test.d(1): Error: declaration expected following attribute, not end of file
test.d(1): Error: declaration expected following attribute, not end of file
test.d(1): Error: declaration expected following attribute, not end of file
Failures:

1) parseModule - custom AST family
core.exception.AssertError@/home/circleci/dmd/test/unit/frontend.d(63):
unittest failure
----------------
src/core/exception.d:447 onAssertErrorMsg [0x557bdf5a00fb]
src/core/exception.d:464 onUnittestErrorMsg [0x557bdf5a017d]
src/core/exception.d:608 _d_unittest_msg [0x557bdf573228]
src/core/exception.d:613 _d_unittest [0x557bdf573269]
src/core/exception.d:603 _d_unittestp [0x557bdf5731e1]
/home/circleci/dmd/test/unit/frontend.d:63 void frontend.__unittest_L14_C1()
[0x557bdf2edf9d]
/home/circleci/dmd/test/test_results/runner.d:160 core.runtime.UnitTestResult
runner.unitTestRunner() [0x557bdf3054c6]
src/core/runtime.d:598 runModuleUnitTests [0x557bdf5a0602]
src/rt/dmain2.d:552 void rt.dmain2._d_run_main2(char[][], ulong, extern (C) int
function(char[][])*).runAll() [0x557bdf576305]
src/rt/dmain2.d:526 void rt.dmain2._d_run_main2(char[][], ulong, extern (C) int
function(char[][])*).tryExec(scope void delegate()) [0x557bdf576280]
src/rt/dmain2.d:585 _d_run_main2 [0x557bdf5761e5]
src/rt/dmain2.d:379 _d_run_main [0x557bdf575f12]
/home/circleci/dmd/generated/linux/debug/64/../../../../../druntime/import/core/internal/entrypoint.d:29
main [0x557bdf314e65]
??:? __libc_start_main [0x7fb3dd2fcb96]
??:? _start [0x557bdf2a6d69]

232 tests, 1 failures

Failed tests:
/home/circleci/dmd/test/unit/frontend.d:63

>>> TARGET FAILED: .Failed to execute the `unit` test executable! (exit code 1)

> /home/circleci/dmd/generated/linux/debug/64/dmd @/home/circleci/dmd/test/test_results/cmdfile

> /home/circleci/dmd/test/test_results/runner
test.d(1): Error: Built-in hex string literals are obsolete, use
`std.conv.hexString!"61"` instead.
test.d(1): Error: declaration expected following attribute, not end of file
test.d(1): Error: declaration expected following attribute, not end of file
test.d(1): Error: declaration expected following attribute, not end of file
test.d(1): Error: declaration expected following attribute, not end of file
Failures:

1) parseModule - custom AST family
core.exception.AssertError@/home/circleci/dmd/test/unit/frontend.d(63):
unittest failure
----------------
src/core/exception.d:447 onAssertErrorMsg [0x557bdf5a00fb]
src/core/exception.d:464 onUnittestErrorMsg [0x557bdf5a017d]
src/core/exception.d:608 _d_unittest_msg [0x557bdf573228]
src/core/exception.d:613 _d_unittest [0x557bdf573269]
src/core/exception.d:603 _d_unittestp [0x557bdf5731e1]
/home/circleci/dmd/test/unit/frontend.d:63 void frontend.__unittest_L14_C1()
[0x557bdf2edf9d]
/home/circleci/dmd/test/test_results/runner.d:160 core.runtime.UnitTestResult
runner.unitTestRunner() [0x557bdf3054c6]
src/core/runtime.d:598 runModuleUnitTests [0x557bdf5a0602]
src/rt/dmain2.d:552 void rt.dmain2._d_run_main2(char[][], ulong, extern (C) int
function(char[][])*).runAll() [0x557bdf576305]
src/rt/dmain2.d:526 void rt.dmain2._d_run_main2(char[][], ulong, extern (C) int
function(char[][])*).tryExec(scope void delegate()) [0x557bdf576280]
src/rt/dmain2.d:585 _d_run_main2 [0x557bdf5761e5]
src/rt/dmain2.d:379 _d_run_main [0x557bdf575f12]
/home/circleci/dmd/generated/linux/debug/64/../../../../../druntime/import/core/internal/entrypoint.d:29
main [0x557bdf314e65]
??:? __libc_start_main [0x7fb3dd2fcb96]
??:? _start [0x557bdf2a6d69]

232 tests, 1 failures

Failed tests:
/home/circleci/dmd/test/unit/frontend.d:63

>>> TARGET FAILED: .
```

The issue is that the target name is not helpful. Since tests runs in parallel,
this can trigger early on, and the test-suite will continue to run, until a few
hundreds lines later it prints:
```
[...]
 ... fail_compilation/fail3882.d    -verrors=0 -w  -fPIC (-debug)
FAILED targets:
- .

Exited with code exit status 1
```

Which forces the user to needlessly scroll up.

--