@@ -51,4 +51,37 @@ pub fn build(b: *std.Build) void {
5151 });
5252 const run_dim_tests = b .addRunArtifact (dim_tests );
5353 test_step .dependOn (& run_dim_tests .step );
54+
55+ const behaviour_tests_step = b .step ("behaviour" , "Run all behaviour tests" );
56+ for (behaviour_tests ) | script | {
57+ const step_name = b .dupe (script );
58+ std .mem .replaceScalar (u8 , step_name , '/' , '-' );
59+ const script_test = b .step (step_name , b .fmt ("Run {s} behaviour test" , .{script }));
60+
61+ const run_sizeless = b .addRunArtifact (dim_exe );
62+ run_sizeless .addArg ("--output" );
63+ _ = run_sizeless .addOutputFileArg ("disk.img" );
64+ run_sizeless .addArg ("--script" );
65+ run_sizeless .addFileArg (b .path (script ));
66+ script_test .dependOn (& run_sizeless .step );
67+
68+ const run_with_size = b .addRunArtifact (dim_exe );
69+ run_with_size .addArg ("--output" );
70+ _ = run_with_size .addOutputFileArg ("disk.img" );
71+ run_with_size .addArg ("--script" );
72+ run_with_size .addFileArg (b .path (script ));
73+ run_with_size .addArgs (&.{ "--size" , "30M" });
74+ script_test .dependOn (& run_with_size .step );
75+
76+ behaviour_tests_step .dependOn (script_test );
77+ }
5478}
79+
80+ const behaviour_tests : []const []const u8 = &.{
81+ "tests/basic/empty.dis" ,
82+ "tests/basic/fill-0x00.dis" ,
83+ "tests/basic/fill-0xAA.dis" ,
84+ "tests/basic/fill-0xFF.dis" ,
85+ "tests/basic/raw.dis" ,
86+ "tests/part/mbr/minimal.dis" ,
87+ };
0 commit comments