| // REQUIRED_ARGS: -unittest |
| // COMPILE_SEPARATELY: |
| // EXTRA_SOURCES: imports/module_with_tests.d imports/another_module_with_tests.d |
| |
| import imports.module_with_tests; |
| import imports.another_module_with_tests; |
| import core.exception: AssertError; |
| |
| shared static this() |
| { |
| import core.runtime: Runtime, UnitTestResult; |
| Runtime.extendedModuleUnitTester = () => UnitTestResult.pass; |
| } |
| |
| void main() |
| { |
| foreach(i, ut; __traits(getUnitTests, imports.module_with_tests)) |
| { |
| try |
| { |
| ut(); |
| assert(i == 0, "2nd unittest should fail"); |
| } |
| catch(AssertError e) |
| { |
| assert(i == 1, "Only 2nd unittest should fail"); |
| } |
| } |
| |
| foreach(i, ut; __traits(getUnitTests, imports.another_module_with_tests)) |
| { |
| try |
| { |
| ut(); |
| assert(i == 0 || i == 1, "3rd unittest should fail"); |
| } |
| catch(AssertError e) |
| { |
| assert(i == 2, "Only 3rd unittest should fail"); |
| } |
| } |
| } |