Added new flag 'run_test' to support test steps for test exercises.

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.
This commit is contained in:
Chris Boesch 2023-05-03 18:17:21 +02:00
parent 72a6287a5f
commit 193bee7d2d
2 changed files with 19 additions and 0 deletions

View file

@ -35,6 +35,10 @@ pub const Exercise = struct {
/// We need to keep track of this, so we compile with libc
link_libc: bool = false,
/// This exercise doesn't have a main function.
/// We only call the test.
run_test: bool = false,
/// This exercise is not supported by the current Zig compiler.
skip: bool = false,
@ -1079,6 +1083,11 @@ const exercises = [_]Exercise{
.main_file = "101_for5.zig",
.output = "1. Wizard (Gold: 25, XP: 40)\n2. Bard (Gold: 11, XP: 17)\n3. Bard (Gold: 5, XP: 55)\n4. Warrior (Gold: 7392, XP: 21)",
},
.{
.main_file = "102_testing.zig",
.output = "All 1 tests passed.",
.run_test = true,
},
.{
.main_file = "999_the_end.zig",
.output = "\nThis is the end for now!\nWe hope you had fun and were able to learn a lot, so visit us again when the next exercises are available.",

10
exercises/102_testing.zig Normal file
View file

@ -0,0 +1,10 @@
const std = @import("std");
const testing = std.testing;
fn add(a: u16, b: u16) u16 {
return a + b;
}
test "simple test" {
try testing.expect(add(41, 1) == 42);
}