@@ -547,17 +547,17 @@ pub fn build(b: *std.Build) !void {
547547
548548 const TestHelper = struct {
549549 b : * std.Build ,
550- top_level_step : * std.Build.Step ,
551- runner : * std.Build.Step.Compile ,
552- const ClarStep = @import ("build/ClarTestStep.zig" );
550+ top_level_step : * Step ,
551+ runner : * Step.Compile ,
552+ clar_parser : * Step.Compile ,
553+ const Step = std .Build .Step ;
553554
554555 fn addTest (
555556 self : @This (),
556557 name : []const u8 ,
557558 args : []const []const u8 ,
558559 ) void {
559- const clar = ClarStep .create (self .b , name , self .runner );
560- self .top_level_step .dependOn (clar .step );
560+ const clar = self .createClarTestStep (name );
561561 clar .addArgs (args );
562562 }
563563
@@ -567,19 +567,34 @@ pub fn build(b: *std.Build) !void {
567567 /// Comma seperated list of tests
568568 tests : []const u8 ,
569569 ) void {
570- const clar = ClarStep .create (self .b , name , self .runner );
571- self .top_level_step .dependOn (clar .step );
570+ const clar = self .createClarTestStep (name );
572571 var iter = std .mem .tokenizeScalar (u8 , tests , ',' );
573572 while (iter .next ()) | filter | {
574573 clar .addArg (self .b .fmt ("-s{s}" , .{filter }));
575574 }
576575 }
576+
577+ fn createClarTestStep (self : @This (), name : []const u8 ) * Step.Run {
578+ const clar = self .b .addRunArtifact (self .clar_parser );
579+ self .top_level_step .dependOn (& clar .step );
580+ clar .setName (self .b .fmt ("test-{s}" , .{name }));
581+ clar .addArtifactArg (self .runner );
582+ return clar ;
583+ }
577584 };
578585
579586 const helper : TestHelper = .{
580587 .b = b ,
581588 .top_level_step = test_step ,
582589 .runner = runner_exe ,
590+ .clar_parser = b .addExecutable (.{
591+ .name = "clar-parser" ,
592+ .root_module = b .createModule (.{
593+ .root_source_file = b .path ("build/clar_parser.zig" ),
594+ .target = b .graph .host ,
595+ .optimize = .Debug ,
596+ }),
597+ }),
583598 };
584599
585600 if (b .option ([]const u8 , "test-filter" , "Comma seperated list of specific tests to run" )) | tests | {
0 commit comments