diff options
author | Tobias Bergkvist <tobias@bergkv.ist> | 2021-12-02 04:03:36 +0100 |
---|---|---|
committer | Tobias Bergkvist <tobias@bergkv.ist> | 2021-12-02 04:03:36 +0100 |
commit | d8375fbccb2d8f7b8279374fa84645494e1a0942 (patch) | |
tree | cdf3ba7fd886c8d5ce295db74daff1a4861e0425 /pkgs/test | |
parent | 64da82731d44371a88625af875848482b3b436bc (diff) | |
download | nixpkgs-d8375fbccb2d8f7b8279374fa84645494e1a0942.tar nixpkgs-d8375fbccb2d8f7b8279374fa84645494e1a0942.tar.gz nixpkgs-d8375fbccb2d8f7b8279374fa84645494e1a0942.tar.bz2 nixpkgs-d8375fbccb2d8f7b8279374fa84645494e1a0942.tar.lz nixpkgs-d8375fbccb2d8f7b8279374fa84645494e1a0942.tar.xz nixpkgs-d8375fbccb2d8f7b8279374fa84645494e1a0942.tar.zst nixpkgs-d8375fbccb2d8f7b8279374fa84645494e1a0942.zip |
Add tests for `--inherit-argv0` and `--chdir DIR`
Diffstat (limited to 'pkgs/test')
-rw-r--r-- | pkgs/test/make-binary-wrapper/chdir.c | 14 | ||||
-rw-r--r-- | pkgs/test/make-binary-wrapper/default.nix | 10 | ||||
-rw-r--r-- | pkgs/test/make-binary-wrapper/inherit-argv0.c | 9 |
3 files changed, 29 insertions, 4 deletions
diff --git a/pkgs/test/make-binary-wrapper/chdir.c b/pkgs/test/make-binary-wrapper/chdir.c new file mode 100644 index 00000000000..ff1f91a03ba --- /dev/null +++ b/pkgs/test/make-binary-wrapper/chdir.c @@ -0,0 +1,14 @@ +// makeCWrapper /path/to/executable \ + --chdir /usr/local/bin + +#include <unistd.h> +#include <stdlib.h> +#include <stdio.h> + +#define assert_success(e) do { if ((e) < 0) { perror(#e); abort(); } } while (0) + +int main(int argc, char **argv) { + assert_success(chdir("/usr/local/bin")); + argv[0] = "/path/to/executable"; + return execv("/path/to/executable", argv); +} \ No newline at end of file diff --git a/pkgs/test/make-binary-wrapper/default.nix b/pkgs/test/make-binary-wrapper/default.nix index 1972b03da25..eddab15fd31 100644 --- a/pkgs/test/make-binary-wrapper/default.nix +++ b/pkgs/test/make-binary-wrapper/default.nix @@ -22,14 +22,16 @@ let }; }; tests = { - add-flags = makeGoldenTest { name = "add-flags"; filename = ./add-flags.c; }; - argv0 = makeGoldenTest { name = "argv0"; filename = ./argv0.c; }; basic = makeGoldenTest { name = "basic"; filename = ./basic.c; }; - combination = makeGoldenTest { name = "combination"; filename = ./combination.c; }; + argv0 = makeGoldenTest { name = "argv0"; filename = ./argv0.c; }; + inherit_argv0 = makeGoldenTest { name = "inherit-argv0"; filename = ./inherit-argv0.c; }; env = makeGoldenTest { name = "env"; filename = ./env.c; }; + invalid_env = makeGoldenTest { name = "invalid-env"; filename = ./invalid-env.c; }; prefix = makeGoldenTest { name = "prefix"; filename = ./prefix.c; }; suffix = makeGoldenTest { name = "suffix"; filename = ./suffix.c; }; - invalid-env = makeGoldenTest { name = "invalid-env"; filename = ./invalid-env.c; }; + add_flags = makeGoldenTest { name = "add-flags"; filename = ./add-flags.c; }; + chdir = makeGoldenTest { name = "chdir"; filename = ./chdir.c; }; + combination = makeGoldenTest { name = "combination"; filename = ./combination.c; }; }; in runCommand "make-binary-wrapper-test" { passthru = tests; diff --git a/pkgs/test/make-binary-wrapper/inherit-argv0.c b/pkgs/test/make-binary-wrapper/inherit-argv0.c new file mode 100644 index 00000000000..71e12d9b024 --- /dev/null +++ b/pkgs/test/make-binary-wrapper/inherit-argv0.c @@ -0,0 +1,9 @@ +// makeCWrapper /path/to/executable \ + --inherit-argv0 + +#include <unistd.h> +#include <stdlib.h> + +int main(int argc, char **argv) { + return execv("/path/to/executable", argv); +} \ No newline at end of file |