1{
2 nixpkgs ? ../../..,
3 system ? builtins.currentSystem,
4 pkgs ? import nixpkgs {
5 config = { };
6 overlays = [ ];
7 inherit system;
8 },
9 nixVersions ? import ../../tests/nix-for-tests.nix { inherit pkgs; },
10 libpath ? ../..,
11 # Random seed
12 seed ? null,
13}:
14
15pkgs.runCommand "lib-path-tests"
16 {
17 nativeBuildInputs =
18 [
19 nixVersions.stable
20 ]
21 ++ (with pkgs; [
22 jq
23 bc
24 ]);
25 }
26 ''
27 # Needed to make Nix evaluation work
28 export TEST_ROOT=$(pwd)/test-tmp
29 export NIX_BUILD_HOOK=
30 export NIX_CONF_DIR=$TEST_ROOT/etc
31 export NIX_LOCALSTATE_DIR=$TEST_ROOT/var
32 export NIX_LOG_DIR=$TEST_ROOT/var/log/nix
33 export NIX_STATE_DIR=$TEST_ROOT/var/nix
34 export NIX_STORE_DIR=$TEST_ROOT/store
35 export PAGER=cat
36
37 cp -r ${libpath} lib
38 export TEST_LIB=$PWD/lib
39
40 echo "Running unit tests lib/path/tests/unit.nix"
41 nix-instantiate --eval --show-trace \
42 --argstr libpath "$TEST_LIB" \
43 lib/path/tests/unit.nix
44
45 echo "Running property tests lib/path/tests/prop.sh"
46 bash lib/path/tests/prop.sh ${toString seed}
47
48 touch $out
49 ''