fix(windows): use proper temp dir for testing on windows

This commit is contained in:
CJ van den Berg 2026-03-07 21:37:19 +01:00
parent 240f3f148f
commit 24a3537ef8
Signed by: neurocyte
GPG key ID: 8EB1E1BB660E3FB9

View file

@ -145,15 +145,18 @@ var temp_dir_counter = std.atomic.Value(u32).init(0);
/// Create a fresh temporary directory and return its absolute path (caller frees). /// Create a fresh temporary directory and return its absolute path (caller frees).
fn makeTempDir(allocator: std.mem.Allocator) ![]u8 { fn makeTempDir(allocator: std.mem.Allocator) ![]u8 {
const n = temp_dir_counter.fetchAdd(1, .monotonic); const n = temp_dir_counter.fetchAdd(1, .monotonic);
const name = try std.fmt.allocPrint( const pid = switch (builtin.os.tag) {
allocator, .linux => std.os.linux.getpid(),
"/tmp/nightwatch_test_{d}_{d}", .windows => std.os.windows.GetCurrentProcessId(),
.{ switch (builtin.os.tag) { else => std.c.getpid(),
.linux => std.os.linux.getpid(), };
.windows => std.os.windows.GetCurrentProcessId(), const name = if (builtin.os.tag == .windows) blk: {
else => std.c.getpid(), const tmp_dir = std.process.getEnvVarOwned(allocator, "TEMP") catch
}, n }, try std.process.getEnvVarOwned(allocator, "TMP");
); defer allocator.free(tmp_dir);
break :blk try std.fmt.allocPrint(allocator, "{s}\\nightwatch_test_{d}_{d}", .{ tmp_dir, pid, n });
} else
try std.fmt.allocPrint(allocator, "/tmp/nightwatch_test_{d}_{d}", .{ pid, n });
errdefer allocator.free(name); errdefer allocator.free(name);
try std.fs.makeDirAbsolute(name); try std.fs.makeDirAbsolute(name);
return name; return name;