From 228d451e0388118572e4113afbf34ea2eaf3f55f Mon Sep 17 00:00:00 2001 From: Tobias Bergkvist Date: Fri, 10 Dec 2021 21:21:14 +0100 Subject: [PATCH] makeBinaryWrapper: Fix chdir golden test for darwin On macOS, /tmp is a symlink to /private/tmp. When performing cd /tmp, and checking cwd - it won't match since it follows the symlink. This caused test breakage on macOS but not Linux. Instead, use a folder which is not a symlink, and consistent across Linux and macOS. --- pkgs/test/make-binary-wrapper/chdir.c | 2 +- pkgs/test/make-binary-wrapper/chdir.cmdline | 2 +- pkgs/test/make-binary-wrapper/chdir.env | 2 +- pkgs/test/make-binary-wrapper/default.nix | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pkgs/test/make-binary-wrapper/chdir.c b/pkgs/test/make-binary-wrapper/chdir.c index c67c695b1c3b..9e0b7e2c7f52 100644 --- a/pkgs/test/make-binary-wrapper/chdir.c +++ b/pkgs/test/make-binary-wrapper/chdir.c @@ -5,7 +5,7 @@ #define assert_success(e) do { if ((e) < 0) { perror(#e); abort(); } } while (0) int main(int argc, char **argv) { - assert_success(chdir("/tmp/foo")); + assert_success(chdir("./tmp/foo")); argv[0] = "/send/me/flags"; return execv("/send/me/flags", argv); } diff --git a/pkgs/test/make-binary-wrapper/chdir.cmdline b/pkgs/test/make-binary-wrapper/chdir.cmdline index 15235f20621c..d6ab081e8d35 100644 --- a/pkgs/test/make-binary-wrapper/chdir.cmdline +++ b/pkgs/test/make-binary-wrapper/chdir.cmdline @@ -1 +1 @@ - --chdir /tmp/foo + --chdir ./tmp/foo diff --git a/pkgs/test/make-binary-wrapper/chdir.env b/pkgs/test/make-binary-wrapper/chdir.env index db129d68af74..ea1c61054e50 100644 --- a/pkgs/test/make-binary-wrapper/chdir.env +++ b/pkgs/test/make-binary-wrapper/chdir.env @@ -1,2 +1,2 @@ -CWD=/tmp/foo +CWD=SUBST_CWD/tmp/foo SUBST_ARGV0 diff --git a/pkgs/test/make-binary-wrapper/default.nix b/pkgs/test/make-binary-wrapper/default.nix index c5bb6970aac0..7b4d0b26b5cc 100644 --- a/pkgs/test/make-binary-wrapper/default.nix +++ b/pkgs/test/make-binary-wrapper/default.nix @@ -6,7 +6,7 @@ let ${gcc}/bin/cc -Wall -Werror -Wpedantic -o $out ${./envcheck.c} ''; makeGoldenTest = testname: runCommand "test-wrapper_${testname}" env '' - mkdir -p /tmp/foo + mkdir -p ./tmp/foo params=$(<"${./.}/${testname}.cmdline") eval "makeCWrapper /send/me/flags $params" > wrapper.c