| ... | ... | @@ -762,15 +762,16 @@ pub const TestContext = struct { |
| 762 | 762 | }, |
| 763 | 763 | .Execution => |expected_stdout| { |
| 764 | 764 | update_node.setEstimatedTotalItems(4); |
| 765 | |
| 766 | var argv = std.ArrayList([]const u8).init(allocator); |
| 767 | defer argv.deinit(); |
| 768 | |
| 765 | 769 | var exec_result = x: { |
| 766 | 770 | var exec_node = update_node.start("execute", 0); |
| 767 | 771 | exec_node.activate(); |
| 768 | 772 | defer exec_node.end(); |
| 769 | 773 | |
| 770 | | var argv = std.ArrayList([]const u8).init(allocator); |
| 771 | | defer argv.deinit(); |
| 772 | | |
| 773 | | const exe_path = try std.fmt.allocPrint(arena, "." ++ std.fs.path.sep_str ++ "{s}", .{bin_name}); |
| 774 | const exe_path = try emit_directory.join(arena, &[_][]const u8{bin_name}); |
| 774 | 775 | if (case.object_format != null and case.object_format.? == .c) { |
| 775 | 776 | try argv.appendSlice(&[_][]const u8{ |
| 776 | 777 | std.testing.zig_exe_path, "run", exe_path, "-lc", |
| ... | ... | @@ -837,16 +838,18 @@ pub const TestContext = struct { |
| 837 | 838 | switch (exec_result.term) { |
| 838 | 839 | .Exited => |code| { |
| 839 | 840 | if (code != 0) { |
| 840 | | std.debug.print("{s}: execution exited with code {d}. stderr:\n{s}", .{ |
| 841 | | case.name, code, exec_result.stderr, |
| 841 | std.debug.print("\n{s}\n{s}: execution exited with code {d}:\n", .{ |
| 842 | exec_result.stderr, case.name, code, |
| 842 | 843 | }); |
| 844 | dumpArgs(argv.items); |
| 843 | 845 | return error.ZigTestFailed; |
| 844 | 846 | } |
| 845 | 847 | }, |
| 846 | 848 | else => { |
| 847 | | std.debug.print("{s}: execution crashed. stderr:\n{s}", .{ |
| 848 | | case.name, exec_result.stderr, |
| 849 | std.debug.print("\n{s}\n{s}: execution crashed:\n", .{ |
| 850 | exec_result.stderr, case.name, |
| 849 | 851 | }); |
| 852 | dumpArgs(argv.items); |
| 850 | 853 | return error.ZigTestFailed; |
| 851 | 854 | }, |
| 852 | 855 | } |
| ... | ... | @@ -967,3 +970,10 @@ pub const TestContext = struct { |
| 967 | 970 | } |
| 968 | 971 | } |
| 969 | 972 | }; |
| 973 | |
| 974 | fn dumpArgs(argv: []const []const u8) void { |
| 975 | for (argv) |arg| { |
| 976 | std.debug.print("{s} ", .{arg}); |
| 977 | } |
| 978 | std.debug.print("\n", .{}); |
| 979 | } |
| | \ No newline at end of file |