diff options
author | Naïm Favier <n@monade.li> | 2022-05-29 17:26:23 +0200 |
---|---|---|
committer | Naïm Favier <n@monade.li> | 2022-05-31 13:55:41 +0200 |
commit | eef2c762ce19c8cf7172b319a7f4cd5555b5f289 (patch) | |
tree | 9e2697335364ef36570ad9192fea222e39c66861 /pkgs/test/make-binary-wrapper/default.nix | |
parent | 5db40e768d1447624235b27d7176726550eb353f (diff) |
makeBinaryWrapper: fix cross-compilation and add test
Fixes https://github.com/NixOS/nixpkgs/issues/175045
Diffstat (limited to 'pkgs/test/make-binary-wrapper/default.nix')
-rw-r--r-- | pkgs/test/make-binary-wrapper/default.nix | 58 |
1 files changed, 32 insertions, 26 deletions
diff --git a/pkgs/test/make-binary-wrapper/default.nix b/pkgs/test/make-binary-wrapper/default.nix index 2d3389c4a012..afc2b41ff5a7 100644 --- a/pkgs/test/make-binary-wrapper/default.nix +++ b/pkgs/test/make-binary-wrapper/default.nix @@ -1,12 +1,19 @@ -{ lib, coreutils, python3, gcc, writeText, writeScript, runCommand, makeBinaryWrapper }: +{ lib +, stdenv +, pkgsCross +, makeBinaryWrapper +, writeText +, runCommand +, runCommandCC +}: let - env = { buildInputs = [ makeBinaryWrapper ]; }; - envCheck = runCommand "envcheck" env '' - ${gcc}/bin/cc -Wall -Werror -Wpedantic -o $out ${./envcheck.c} + env = { nativeBuildInputs = [ makeBinaryWrapper ]; }; + envCheck = runCommandCC "envcheck" env '' + cc -Wall -Werror -Wpedantic -o $out ${./envcheck.c} ''; - makeGoldenTest = testname: runCommand "test-wrapper_${testname}" env '' - mkdir -p ./tmp/foo + makeGoldenTest = testname: runCommand "make-binary-wrapper-test-${testname}" env '' + mkdir -p tmp/foo # for the chdir test params=$(<"${./.}/${testname}.cmdline") eval "makeCWrapper /send/me/flags $params" > wrapper.c @@ -32,24 +39,23 @@ let cp wrapper.c $out ''; - tests = let - names = [ - "add-flags" - "argv0" - "basic" - "chdir" - "combination" - "env" - "inherit-argv0" - "invalid-env" - "prefix" - "suffix" - "overlength-strings" - ]; - f = name: lib.nameValuePair name (makeGoldenTest name); - in builtins.listToAttrs (builtins.map f names); -in writeText "make-binary-wrapper-test" '' - ${lib.concatStringsSep "\n" (lib.mapAttrsToList (_: test: '' - "${test.name}" "${test}" - '') tests)} + tests = lib.genAttrs [ + "add-flags" + "argv0" + "basic" + "chdir" + "combination" + "env" + "inherit-argv0" + "invalid-env" + "overlength-strings" + "prefix" + "suffix" + ] makeGoldenTest // lib.optionalAttrs (! stdenv.isDarwin) { + cross = pkgsCross.aarch64-multiplatform.callPackage ./cross.nix { }; + }; +in + +writeText "make-binary-wrapper-tests" '' + ${lib.concatStringsSep "\n" (builtins.attrValues tests)} '' // tests |