Loading lib/meta.nix +8 −1 Original line number Diff line number Diff line Loading @@ -162,5 +162,12 @@ rec { getExe' pkgs.imagemagick "convert" => "/nix/store/5rs48jamq7k6sal98ymj9l4k2bnwq515-imagemagick-7.1.1-15/bin/convert" */ getExe' = x: y: "${lib.getBin x}/bin/${y}"; getExe' = x: y: assert lib.assertMsg (lib.isDerivation x) "lib.meta.getExe': The first argument is of type ${builtins.typeOf x}, but it should be a derivation instead."; assert lib.assertMsg (lib.isString y) "lib.meta.getExe': The second argument is of type ${builtins.typeOf y}, but it should be a string instead."; assert lib.assertMsg (builtins.length (lib.splitString "/" y) == 1) "lib.meta.getExe': The second argument \"${y}\" is a nested path with a \"/\" character, but it should just be the name of the executable instead."; "${lib.getBin x}/bin/${y}"; } lib/tests/misc.nix +28 −0 Original line number Diff line number Diff line Loading @@ -1906,4 +1906,32 @@ runTests { expr = (with types; either int (listOf (either bool str))).description; expected = "signed integer or list of (boolean or string)"; }; # Meta testGetExe'Output = { expr = getExe' { type = "derivation"; out = "somelonghash"; bin = "somelonghash"; } "executable"; expected = "somelonghash/bin/executable"; }; testGetExeOutput = { expr = getExe { type = "derivation"; out = "somelonghash"; bin = "somelonghash"; meta.mainProgram = "mainProgram"; }; expected = "somelonghash/bin/mainProgram"; }; testGetExe'FailureFirstArg = testingThrow ( getExe' "not a derivation" "executable" ); testGetExe'FailureSecondArg = testingThrow ( getExe' { type = "derivation"; } "dir/executable" ); } Loading
lib/meta.nix +8 −1 Original line number Diff line number Diff line Loading @@ -162,5 +162,12 @@ rec { getExe' pkgs.imagemagick "convert" => "/nix/store/5rs48jamq7k6sal98ymj9l4k2bnwq515-imagemagick-7.1.1-15/bin/convert" */ getExe' = x: y: "${lib.getBin x}/bin/${y}"; getExe' = x: y: assert lib.assertMsg (lib.isDerivation x) "lib.meta.getExe': The first argument is of type ${builtins.typeOf x}, but it should be a derivation instead."; assert lib.assertMsg (lib.isString y) "lib.meta.getExe': The second argument is of type ${builtins.typeOf y}, but it should be a string instead."; assert lib.assertMsg (builtins.length (lib.splitString "/" y) == 1) "lib.meta.getExe': The second argument \"${y}\" is a nested path with a \"/\" character, but it should just be the name of the executable instead."; "${lib.getBin x}/bin/${y}"; }
lib/tests/misc.nix +28 −0 Original line number Diff line number Diff line Loading @@ -1906,4 +1906,32 @@ runTests { expr = (with types; either int (listOf (either bool str))).description; expected = "signed integer or list of (boolean or string)"; }; # Meta testGetExe'Output = { expr = getExe' { type = "derivation"; out = "somelonghash"; bin = "somelonghash"; } "executable"; expected = "somelonghash/bin/executable"; }; testGetExeOutput = { expr = getExe { type = "derivation"; out = "somelonghash"; bin = "somelonghash"; meta.mainProgram = "mainProgram"; }; expected = "somelonghash/bin/mainProgram"; }; testGetExe'FailureFirstArg = testingThrow ( getExe' "not a derivation" "executable" ); testGetExe'FailureSecondArg = testingThrow ( getExe' { type = "derivation"; } "dir/executable" ); }