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 nixVersions.stable
19 ]
20 ++ (with pkgs; [
21 jq
22 bc
23 ]);
24 }
25 ''
26 # Needed to make Nix evaluation work
27 export TEST_ROOT=$(pwd)/test-tmp
28 export NIX_BUILD_HOOK=
29 export NIX_CONF_DIR=$TEST_ROOT/etc
30 export NIX_LOCALSTATE_DIR=$TEST_ROOT/var
31 export NIX_LOG_DIR=$TEST_ROOT/var/log/nix
32 export NIX_STATE_DIR=$TEST_ROOT/var/nix
33 export NIX_STORE_DIR=$TEST_ROOT/store
34 export PAGER=cat
35
36 cp -r ${libpath} lib
37 export TEST_LIB=$PWD/lib
38
39 echo "Running unit tests lib/path/tests/unit.nix"
40 nix-instantiate --eval --show-trace \
41 --argstr libpath "$TEST_LIB" \
42 lib/path/tests/unit.nix
43
44 echo "Running property tests lib/path/tests/prop.sh"
45 bash lib/path/tests/prop.sh ${toString seed}
46
47 touch $out
48 ''