From ef9582a1ec452aab816b67cd2d0d35ef7356ddae Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Mon, 28 Sep 2020 22:19:00 -0700 Subject: `zig test` and `zig run` do not try to run foreign binaries --- src/main.zig | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) (limited to 'src/main.zig') diff --git a/src/main.zig b/src/main.zig index d96cfaf526..61ef77cce7 100644 --- a/src/main.zig +++ b/src/main.zig @@ -1618,6 +1618,17 @@ fn buildOutputType( defer argv.deinit(); if (test_exec_args.items.len == 0) { + if (!std.Target.current.canExecBinariesOf(target_info.target)) { + switch (arg_mode) { + .zig_test => { + warn("created {s} but skipping execution because it is non-native", .{exe_path}); + if (!watch) return cleanExit(); + break :run; + }, + .run => fatal("unable to execute {s}: non-native", .{exe_path}), + else => unreachable, + } + } try argv.append(exe_path); } else { for (test_exec_args.items) |arg| { @@ -2128,8 +2139,8 @@ pub fn cmdBuild(gpa: *Allocator, arena: *Allocator, args: []const []const u8) !v error.FileNotFound => { dirname = fs.path.dirname(dirname) orelse { std.log.info("{}", .{ - \\Initialize a 'build.zig' template file with `zig init-lib` or `zig init-exe`, - \\or see `zig --help` for more options. + \\Initialize a 'build.zig' template file with `zig init-lib` or `zig init-exe`, + \\or see `zig --help` for more options. }); fatal("No 'build.zig' file found, in the current directory or any parent directories.", .{}); }; -- cgit v1.2.3