From 49d88b93e54a70860403a3257b7b7015df2ef214 Mon Sep 17 00:00:00 2001 From: Anund Date: Fri, 27 Dec 2024 11:50:29 +1100 Subject: [PATCH] testing: point Command.zig at ~more universal external binaries The `Command.zig` tests reach outside the local source tree and look for files on the host os machine. This introduces some portability issues for the tests. The nix build sandbox doesn't include `/usr/bin/env` making it error out when `zig build test` runs `Command.zig` tests as part of a `nix build`. Current ci and local development relies on `nix develop` sharing a host os file system that includes `/usr/bin/env`. Turns out `/tmp` and `/bin/sh` are available in the build sandbox in nix so we swap these in to enable nixpkg builds to include testing ghostty as part of any update cycle. --- src/Command.zig | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/Command.zig b/src/Command.zig index 6b42e12a13..b5d550cb45 100644 --- a/src/Command.zig +++ b/src/Command.zig @@ -587,8 +587,8 @@ test "createNullDelimitedEnvMap" { test "Command: pre exec" { if (builtin.os.tag == .windows) return error.SkipZigTest; var cmd: Command = .{ - .path = "/usr/bin/env", - .args = &.{ "/usr/bin/env", "-v" }, + .path = "/bin/sh", + .args = &.{ "/bin/sh", "-v" }, .pre_exec = (struct { fn do(_: *Command) void { // This runs in the child, so we can exit and it won't @@ -629,8 +629,8 @@ test "Command: redirect stdout to file" { .args = &.{"C:\\Windows\\System32\\whoami.exe"}, .stdout = stdout, } else .{ - .path = "/usr/bin/env", - .args = &.{ "/usr/bin/env", "-v" }, + .path = "/bin/sh", + .args = &.{ "/bin/sh", "-c", "echo hello" }, .stdout = stdout, }; @@ -663,8 +663,8 @@ test "Command: custom env vars" { .stdout = stdout, .env = &env, } else .{ - .path = "/usr/bin/env", - .args = &.{ "/usr/bin/env", "sh", "-c", "echo $VALUE" }, + .path = "/bin/sh", + .args = &.{ "/bin/sh", "-c", "echo $VALUE" }, .stdout = stdout, .env = &env, }; @@ -699,10 +699,10 @@ test "Command: custom working directory" { .stdout = stdout, .cwd = "C:\\Windows\\System32", } else .{ - .path = "/usr/bin/env", - .args = &.{ "/usr/bin/env", "sh", "-c", "pwd" }, + .path = "/bin/sh", + .args = &.{ "/bin/sh", "-c", "pwd" }, .stdout = stdout, - .cwd = "/usr/bin", + .cwd = "/tmp", }; try cmd.testingStart(); @@ -719,7 +719,7 @@ test "Command: custom working directory" { if (builtin.os.tag == .windows) { try testing.expectEqualStrings("C:\\Windows\\System32\r\n", contents); } else { - try testing.expectEqualStrings("/usr/bin\n", contents); + try testing.expectEqualStrings("/tmp\n", contents); } }