From bb4cb342048a9feee7e5408c4f444439197a96af Mon Sep 17 00:00:00 2001 From: kcbanner Date: Sun, 8 Jan 2023 22:38:03 -0500 Subject: [PATCH] test: fix "chdir smoke test" comparing paths with potentially different drive letter cases --- lib/std/os/test.zig | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/lib/std/os/test.zig b/lib/std/os/test.zig index ae4de77b76..177e32f772 100644 --- a/lib/std/os/test.zig +++ b/lib/std/os/test.zig @@ -64,7 +64,14 @@ test "chdir smoke test" { var new_cwd_buf: [fs.MAX_PATH_BYTES]u8 = undefined; const new_cwd = try os.getcwd(new_cwd_buf[0..]); - try expect(mem.eql(u8, tmp_dir_path, new_cwd)); + + // On Windows, fs.path.resolve returns an uppercase drive letter, but the drive letter returned by getcwd may be lowercase + var resolved_cwd_buf: [fs.MAX_PATH_BYTES]u8 = undefined; + var resolved_cwd = path: { + var allocator = std.heap.FixedBufferAllocator.init(&resolved_cwd_buf); + break :path try fs.path.resolve(allocator.allocator(), &[_][]const u8{new_cwd}); + }; + try expect(mem.eql(u8, tmp_dir_path, resolved_cwd)); // Restore cwd because process may have other tests that do not tolerate chdir. tmp_dir.close();