February 24, 2020 Custom asset handler messes unit test summary report | ||||
---|---|---|---|---|
| ||||
[dmd 2.090.1 linux 64-bit] The following code does not report the correct unit test summary. The report says 1 unit test passed. ~~~~~ shared static this() { import core.exception; assertHandler(&cah); } void cah(string file, ulong line, string msg) nothrow { import core.stdc.stdio: printf; printf("==============================\n"); printf("Assert error: %s %d: %s\n", file.ptr, line, msg.ptr); printf("==============================\n"); } unittest { assert(false); } ~~~~~ |
February 24, 2020 Re: Custom asset handler messes unit test summary report | ||||
---|---|---|---|---|
| ||||
Posted in reply to ric maicle | On Monday, 24 February 2020 at 00:50:38 UTC, ric maicle wrote: > [dmd 2.090.1 linux 64-bit] > > The following code does not report the correct unit test summary. > The report says 1 unit test passed. > > ~~~~~ > shared static this() { > import core.exception; > assertHandler(&cah); > } > > void > cah(string file, ulong line, string msg) nothrow { > import core.stdc.stdio: printf; > printf("==============================\n"); > printf("Assert error: %s %d: %s\n", file.ptr, line, msg.ptr); > printf("==============================\n"); > } > > unittest { > assert(false); > } > ~~~~~ Looks like you have to throw an Error at the end of your custom handler, e.g: --- void cah(string file, ulong line, string msg) nothrow { import core.stdc.stdio: printf; import core.exception : AssertError; printf("==============================\n"); printf("Assert error: %s %d: %s\n", file.ptr, line, msg.ptr); printf("==============================\n"); throw new AssertError(""); } --- For a betterC program you can use an HLT: --- void cah(string file, ulong line, string msg) nothrow { import core.stdc.stdio: printf, fflush, stdout; printf("==============================\n"); printf("Assert error: %s %d: %s\n", file.ptr, line, msg.ptr); printf("==============================\n"); fflush(stdout); asm nothrow { hlt; } } --- |
Copyright © 1999-2021 by the D Language Foundation