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