tvl-depot/nix/getBins/tests.nix
Profpatsch 98a990c6a6 feat(nix/getBins): add getBins
This is a simple-stupid “unix import system” for nix, for referencing
binaries in `/bin/` by their name and lifting them to a Nix attrset.

Allows for simple aliasing of executable names.

Change-Id: Ifa23cb377201c3b08050c5026e9751e736afaf56
Reviewed-on: https://cl.tvl.fyi/c/depot/+/664
Reviewed-by: tazjin <mail@tazj.in>
2020-06-28 17:58:15 +00:00

40 lines
845 B
Nix
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{ writeScriptBin, assertEq, it, runTestsuite, getBins }:
let
drv = writeScriptBin "hello" "its me";
drv2 = writeScriptBin "goodbye" "tschau";
bins = getBins drv [
"hello"
{ use = "hello"; as = "also-hello"; }
]
// getBins drv2 [ "goodbye" ]
;
simple = it "path is equal to the executable name" [
(assertEq "path"
bins.hello
"${drv}/bin/hello")
(assertEq "content"
(builtins.readFile bins.hello)
"its me")
];
useAs = it "use/as can be used to rename attributes" [
(assertEq "path"
bins.also-hello
"${drv}/bin/hello")
];
secondDrv = it "by merging attrsets you can build up bins" [
(assertEq "path"
bins.goodbye
"${drv2}/bin/goodbye")
];
in
runTestsuite "getBins" [
simple
useAs
secondDrv
]