Update the output and hint fields in the `exercises` slice to use a
multiline string literal when the string have multiple lines or use the
`"` character. This will greatly improve readability.
Additionally, remove the trailing whitespace on each line and check it
in the validate_exercises function.
Update the output comparison logic in ZiglingStep, since the current
code assumes that the string has only one line.
Update test/tests.zig to use the new `CheckNamedStep` in test case 1,
since RunStep.StdIo.Check is no longer able to correctly check the
output.
Fixes#283
This is necessary in the unit tests, to ensure each test case use a
different exercises directory.
Update test/tests.zig to use the new healed-path option, ensuring that
each temp directory is removed.
In test case 3, 4 and 5, move case_step as the first step in the
dependency chain. This will improve the build summary tree.
In test case 5, remove the dependency to heal_step, since it is not
necessary.
CheckStep, FailStep, fail, HealStep and heal incorrectly used a normal
comment, instead of a doc-comment.
Additionally, improve the documentation for FailStep and HealStep.
In test case 1 and 2, remove the `i` variable and use `ex.number()`
instead.
In test case 2, when checking the exercise output from stderr, also
check that stdout is empty and vice versa.
Also created a simple exercise '102_testing' to test the new flag.
After the new build system is ready, we skip the exercise in the flow to finish the actual testing exercise.
- Use an anonymous struct when initializing std.Build.Step.
- Rename the builder parameter in the create method to b
- Avoid lines too long
Additionally:
- In the run method, rename output to raw_output in order to make the
next variable names shorter.
- In the compile method, rename zig_file to path.
The code in ZiglingStep copied the error handling used in std.Build in
the past.
Use @panic("OOM") when the error is caused by the allocator failing to
allocate memory.
When handling the error from the eval method, some possible errors are
ignored. The make method will only print the exercise hint and the
help message.
Print the unexpected error message, in the else prong.
Note that FileNotFound can also be considered unexpected.
Rename the doCompile method to compile and add the run method.
The two methods are now called from the make method.
Add the help method, since the error handling of compile and run methods
are now separate.
Remove the obsolete comment for the compile method.