aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAndrew Kelley <andrew@ziglang.org>2020-12-28 23:06:47 -0800
committerAndrew Kelley <andrew@ziglang.org>2020-12-28 23:06:47 -0800
commit7e1e771f0260b5fd0a5cd2f7e3d669979d8f141b (patch)
tree1e8f111c64de7959db6a1c934466e6f153a5a5e8 /src
parent79a51511555e88c05efb2e695fc41910b8fdc88d (diff)
downloadzig-7e1e771f0260b5fd0a5cd2f7e3d669979d8f141b.tar.gz
zig-7e1e771f0260b5fd0a5cd2f7e3d669979d8f141b.zip
stage2 tests: fix incorrect path used for execution binary
Diffstat (limited to 'src')
-rw-r--r--src/test.zig26
1 files changed, 18 insertions, 8 deletions
diff --git a/src/test.zig b/src/test.zig
index 37940c5f13..519cc4bf50 100644
--- a/src/test.zig
+++ b/src/test.zig
@@ -762,15 +762,16 @@ pub const TestContext = struct {
},
.Execution => |expected_stdout| {
update_node.setEstimatedTotalItems(4);
+
+ var argv = std.ArrayList([]const u8).init(allocator);
+ defer argv.deinit();
+
var exec_result = x: {
var exec_node = update_node.start("execute", 0);
exec_node.activate();
defer exec_node.end();
- var argv = std.ArrayList([]const u8).init(allocator);
- defer argv.deinit();
-
- const exe_path = try std.fmt.allocPrint(arena, "." ++ std.fs.path.sep_str ++ "{s}", .{bin_name});
+ const exe_path = try emit_directory.join(arena, &[_][]const u8{bin_name});
if (case.object_format != null and case.object_format.? == .c) {
try argv.appendSlice(&[_][]const u8{
std.testing.zig_exe_path, "run", exe_path, "-lc",
@@ -837,16 +838,18 @@ pub const TestContext = struct {
switch (exec_result.term) {
.Exited => |code| {
if (code != 0) {
- std.debug.print("{s}: execution exited with code {d}. stderr:\n{s}", .{
- case.name, code, exec_result.stderr,
+ std.debug.print("\n{s}\n{s}: execution exited with code {d}:\n", .{
+ exec_result.stderr, case.name, code,
});
+ dumpArgs(argv.items);
return error.ZigTestFailed;
}
},
else => {
- std.debug.print("{s}: execution crashed. stderr:\n{s}", .{
- case.name, exec_result.stderr,
+ std.debug.print("\n{s}\n{s}: execution crashed:\n", .{
+ exec_result.stderr, case.name,
});
+ dumpArgs(argv.items);
return error.ZigTestFailed;
},
}
@@ -967,3 +970,10 @@ pub const TestContext = struct {
}
}
};
+
+fn dumpArgs(argv: []const []const u8) void {
+ for (argv) |arg| {
+ std.debug.print("{s} ", .{arg});
+ }
+ std.debug.print("\n", .{});
+} \ No newline at end of file