| ... | ... | @@ -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", {} }, |