@@ -62,6 +62,7 @@ pub const Case = struct {
62
62
Header : []const u8 ,
63
63
},
64
64
65
+ emit_asm : bool = false ,
65
66
emit_bin : bool = true ,
66
67
emit_h : bool = false ,
67
68
is_test : bool = false ,
@@ -371,6 +372,7 @@ fn addFromDirInner(
371
372
const output_mode = try manifest .getConfigForKeyAssertSingle ("output_mode" , std .builtin .OutputMode );
372
373
const pic = try manifest .getConfigForKeyAssertSingle ("pic" , ? bool );
373
374
const pie = try manifest .getConfigForKeyAssertSingle ("pie" , ? bool );
375
+ const emit_asm = try manifest .getConfigForKeyAssertSingle ("emit_asm" , bool );
374
376
const emit_bin = try manifest .getConfigForKeyAssertSingle ("emit_bin" , bool );
375
377
const imports = try manifest .getConfigForKeyAlloc (ctx .arena , "imports" , []const u8 );
376
378
@@ -438,6 +440,7 @@ fn addFromDirInner(
438
440
.backend = backend ,
439
441
.files = .init (ctx .arena ),
440
442
.case = null ,
443
+ .emit_asm = emit_asm ,
441
444
.emit_bin = emit_bin ,
442
445
.is_test = is_test ,
443
446
.output_mode = output_mode ,
@@ -663,7 +666,10 @@ pub fn lowerToBuildSteps(
663
666
664
667
switch (case .case .? ) {
665
668
.Compile = > {
666
- // Force the binary to be emitted if requested.
669
+ // Force the assembly/binary to be emitted if requested.
670
+ if (case .emit_asm ) {
671
+ _ = artifact .getEmittedAsm ();
672
+ }
667
673
if (case .emit_bin ) {
668
674
_ = artifact .getEmittedBin ();
669
675
}
@@ -761,6 +767,8 @@ const TestManifestConfigDefaults = struct {
761
767
.run_translated_c = > "Obj" ,
762
768
.cli = > @panic ("TODO test harness for CLI tests" ),
763
769
};
770
+ } else if (std .mem .eql (u8 , key , "emit_asm" )) {
771
+ return "false" ;
764
772
} else if (std .mem .eql (u8 , key , "emit_bin" )) {
765
773
return "true" ;
766
774
} else if (std .mem .eql (u8 , key , "is_test" )) {
@@ -802,6 +810,7 @@ const TestManifest = struct {
802
810
trailing_bytes : []const u8 = "" ,
803
811
804
812
const valid_keys = std .StaticStringMap (void ).initComptime (.{
813
+ .{ "emit_asm" , {} },
805
814
.{ "emit_bin" , {} },
806
815
.{ "is_test" , {} },
807
816
.{ "output_mode" , {} },
0 commit comments