Browse Source

tests: improve test case 3

Update test case 3 to check all exercises with an hint.
Manlio Perillo 2 years ago
parent
commit
e7f62940eb
1 changed files with 19 additions and 8 deletions
  1. 19 8
      test/tests.zig

+ 19 - 8
test/tests.zig

@@ -89,18 +89,29 @@ pub fn addCliTests(b: *std.Build, exercises: []const Exercise) *Step {
     }
 
     {
-        // Test that `zig build -Dn=1` prints the hint.
+        // Test that `zig build -Dn=n` prints the hint.
         const case_step = createCase(b, "case-3");
 
-        const cmd = b.addSystemCommand(&.{ b.zig_exe, "build", "-Dn=1" });
-        const expect = exercises[0].hint orelse "";
-        cmd.setName("zig build -Dn=1");
-        cmd.expectExitCode(2);
-        cmd.addCheck(.{ .expect_stderr_match = expect });
+        for (exercises[0 .. exercises.len - 1]) |ex| {
+            if (ex.skip) continue;
+
+            if (ex.hint) |hint| {
+                const n = ex.number();
+
+                const cmd = b.addSystemCommand(&.{
+                    b.zig_exe,
+                    "build",
+                    b.fmt("-Dn={}", .{n}),
+                });
+                cmd.setName(b.fmt("zig build -Dn={}", .{n}));
+                cmd.expectExitCode(2);
+                cmd.addCheck(.{ .expect_stderr_match = hint });
 
-        cmd.step.dependOn(case_step);
+                case_step.dependOn(&cmd.step);
+            }
+        }
 
-        step.dependOn(&cmd.step);
+        step.dependOn(case_step);
     }
 
     return step;