Nim is a statically typed compiled systems programming language. It combines successful concepts from mature languages like Python, Ada and Modula. Its design focuses on efficiency, expressiveness, and elegance (in that order of priority).
testament was published as an external tool as an after thought; if it is to remain a valid tool for testing 3rd party code it should be stripped from logic that's specific to nim's own test suite.
should not reference tests/flags/tgenscript.nim, which is a file specific to nim repo
Example 2
testament all calls these:
progress[all]: 1/6 starting: cat: debugger
progress[all]: 2/6 starting: cat: examples
progress[all]: 3/6 starting: cat: lib
progress[all]: 4/6 starting: cat: ic
progress[all]: 5/6 starting: cat: megatest
apart from megatest, the other categories don't make sense for testament as external tool
Possible Solution
separate out all logic specific to nim repo so it doesn't affect the testament tool that's distributed as a binary for 3rd party repos
Totally agree, but the fix can be as simple as a bunch of if statements and a --nimsTestsuite flag. Or maybe see if tests is relative to ../bin which contains nim.exe.
testament was published as an external tool as an after thought; if it is to remain a valid tool for testing 3rd party code it should be stripped from logic that's specific to nim's own test suite.
Here are just 2 examples:
Example 1
testament all
Current Output
Error: unhandled exception: cannot open: tests/flags/tgenscript.nim [IOError]
Expected Output
should not reference tests/flags/tgenscript.nim, which is a file specific to nim repo
Example 2
testament all
calls these: progress[all]: 1/6 starting: cat: debugger progress[all]: 2/6 starting: cat: examples progress[all]: 3/6 starting: cat: lib progress[all]: 4/6 starting: cat: ic progress[all]: 5/6 starting: cat: megatest apart from megatest, the other categories don't make sense for testament as external toolPossible Solution
separate out all logic specific to nim repo so it doesn't affect the testament tool that's distributed as a binary for 3rd party repos
Additional Information