2020-04-25 22:07:43 +02:00
|
|
|
{ # The pkgs used for dependencies for the testing itself
|
|
|
|
# Don't test properties of pkgs.lib, but rather the lib in the parent directory
|
2023-01-18 01:37:13 +01:00
|
|
|
pkgs ? import ../.. {} // { lib = throw "pkgs.lib accessed, but the lib tests should use nixpkgs' lib path directly!"; },
|
2023-11-09 11:08:44 +01:00
|
|
|
nix ? pkgs-nixVersions.stable,
|
|
|
|
nixVersions ? [ pkgs-nixVersions.minimum nix pkgs-nixVersions.unstable ],
|
|
|
|
pkgs-nixVersions ? import ./nix-for-tests.nix { inherit pkgs; },
|
2020-04-25 22:07:43 +02:00
|
|
|
}:
|
2015-02-08 22:51:20 +01:00
|
|
|
|
2023-05-26 18:32:38 +02:00
|
|
|
let
|
2023-08-17 00:55:32 +02:00
|
|
|
lib = import ../.;
|
2023-05-26 18:32:38 +02:00
|
|
|
testWithNix = nix:
|
|
|
|
pkgs.runCommand "nixpkgs-lib-tests-nix-${nix.version}" {
|
|
|
|
buildInputs = [
|
|
|
|
(import ./check-eval.nix)
|
|
|
|
(import ./maintainers.nix {
|
|
|
|
inherit pkgs;
|
|
|
|
lib = import ../.;
|
|
|
|
})
|
|
|
|
(import ./teams.nix {
|
|
|
|
inherit pkgs;
|
|
|
|
lib = import ../.;
|
|
|
|
})
|
|
|
|
(import ../path/tests {
|
|
|
|
inherit pkgs;
|
|
|
|
})
|
|
|
|
];
|
|
|
|
nativeBuildInputs = [
|
|
|
|
nix
|
2023-11-03 01:24:55 +01:00
|
|
|
pkgs.gitMinimal
|
2023-08-17 00:55:32 +02:00
|
|
|
] ++ lib.optional pkgs.stdenv.isLinux pkgs.inotify-tools;
|
2023-05-26 18:32:38 +02:00
|
|
|
strictDeps = true;
|
|
|
|
} ''
|
|
|
|
datadir="${nix}/share"
|
|
|
|
export TEST_ROOT=$(pwd)/test-tmp
|
2023-11-03 01:24:55 +01:00
|
|
|
export HOME=$(mktemp -d)
|
2023-05-26 18:32:38 +02:00
|
|
|
export NIX_BUILD_HOOK=
|
|
|
|
export NIX_CONF_DIR=$TEST_ROOT/etc
|
|
|
|
export NIX_LOCALSTATE_DIR=$TEST_ROOT/var
|
|
|
|
export NIX_LOG_DIR=$TEST_ROOT/var/log/nix
|
|
|
|
export NIX_STATE_DIR=$TEST_ROOT/var/nix
|
|
|
|
export NIX_STORE_DIR=$TEST_ROOT/store
|
|
|
|
export PAGER=cat
|
|
|
|
cacheDir=$TEST_ROOT/binary-cache
|
|
|
|
|
|
|
|
nix-store --init
|
|
|
|
|
|
|
|
cp -r ${../.} lib
|
|
|
|
echo "Running lib/tests/modules.sh"
|
|
|
|
bash lib/tests/modules.sh
|
|
|
|
|
|
|
|
echo "Running lib/tests/filesystem.sh"
|
|
|
|
TEST_LIB=$PWD/lib bash lib/tests/filesystem.sh
|
|
|
|
|
|
|
|
echo "Running lib/tests/sources.sh"
|
|
|
|
TEST_LIB=$PWD/lib bash lib/tests/sources.sh
|
|
|
|
|
2023-08-17 00:55:32 +02:00
|
|
|
echo "Running lib/fileset/tests.sh"
|
|
|
|
TEST_LIB=$PWD/lib bash lib/fileset/tests.sh
|
|
|
|
|
2023-05-14 22:29:09 +02:00
|
|
|
echo "Running lib/tests/systems.nix"
|
|
|
|
[[ $(nix-instantiate --eval --strict lib/tests/systems.nix | tee /dev/stderr) == '[ ]' ]];
|
|
|
|
|
2023-05-26 18:32:38 +02:00
|
|
|
mkdir $out
|
|
|
|
echo success > $out/${nix.version}
|
|
|
|
'';
|
|
|
|
|
|
|
|
in
|
|
|
|
pkgs.symlinkJoin {
|
|
|
|
name = "nixpkgs-lib-tests";
|
2023-12-07 03:38:23 +01:00
|
|
|
paths = map testWithNix nixVersions ++
|
|
|
|
|
|
|
|
#
|
|
|
|
# TEMPORARY MIGRATION MECHANISM
|
|
|
|
#
|
|
|
|
# This comment and the expression which follows it should be
|
|
|
|
# removed as part of resolving this issue:
|
|
|
|
#
|
|
|
|
# https://github.com/NixOS/nixpkgs/issues/272591
|
|
|
|
#
|
|
|
|
[(import ../../pkgs/test/release {})]
|
|
|
|
;
|
|
|
|
|
2023-05-26 18:32:38 +02:00
|
|
|
}
|