mirror of
https://github.com/ziglang/zig.git
synced 2025-12-23 22:53:06 +00:00
zig test: std.testing.zig_exe_path is now available
it will be set to the path of the zig executable which is running `zig test`.
This commit is contained in:
parent
a54ccd8537
commit
7ca9f3bc7b
@ -11,7 +11,15 @@ pub const io_mode: io.Mode = builtin.test_io_mode;
|
||||
|
||||
var log_err_count: usize = 0;
|
||||
|
||||
var args_buffer: [std.fs.MAX_PATH_BYTES + std.mem.page_size]u8 = undefined;
|
||||
var args_allocator = std.heap.FixedBufferAllocator.init(&args_buffer);
|
||||
|
||||
pub fn main() anyerror!void {
|
||||
const args = std.process.argsAlloc(&args_allocator.allocator) catch {
|
||||
@panic("Too many bytes passed over the CLI to the test runner");
|
||||
};
|
||||
std.testing.zig_exe_path = args[1];
|
||||
|
||||
const test_fn_list = builtin.test_functions;
|
||||
var ok_count: usize = 0;
|
||||
var skip_count: usize = 0;
|
||||
|
||||
@ -21,6 +21,10 @@ pub var base_allocator_instance = std.heap.FixedBufferAllocator.init("");
|
||||
/// TODO https://github.com/ziglang/zig/issues/5738
|
||||
pub var log_level = std.log.Level.warn;
|
||||
|
||||
/// This is available to any test that wants to execute Zig in a child process.
|
||||
/// It will be the same executable that is running `zig test`.
|
||||
pub var zig_exe_path: []const u8 = undefined;
|
||||
|
||||
/// This function is intended to be used only in tests. It prints diagnostics to stderr
|
||||
/// and then aborts when actual_error_union is not expected_error.
|
||||
pub fn expectError(expected_error: anyerror, actual_error_union: anytype) void {
|
||||
|
||||
@ -1828,7 +1828,9 @@ fn buildOutputType(
|
||||
else => unreachable,
|
||||
}
|
||||
}
|
||||
try argv.append(exe_path);
|
||||
try argv.appendSlice(&[_][]const u8{
|
||||
exe_path, self_exe_path,
|
||||
});
|
||||
} else {
|
||||
for (test_exec_args.items) |arg| {
|
||||
try argv.append(arg orelse exe_path);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user