1{
2 # The pkgs used for dependencies for the testing itself
3 # Don't test properties of pkgs.lib, but rather the lib in the parent directory
4 system ? builtins.currentSystem,
5 pkgs ? import ../.. { inherit system; } // {
6 lib = throw "pkgs.lib accessed, but the lib tests should use nixpkgs' lib path directly!";
7 },
8 # For testing someone may edit impure.nix to return cross pkgs, use `pkgsBuildBuild` directly so everything here works.
9 pkgsBB ? pkgs.pkgsBuildBuild,
10 nix ? pkgs-nixVersions.stable,
11 nixVersions ? [
12 pkgs-nixVersions.nix_2_28
13 nix
14 pkgs-nixVersions.latest
15 ],
16 pkgs-nixVersions ? import ./nix-for-tests.nix { pkgs = pkgsBB; },
17}:
18
19let
20 lib = import ../.;
21 testWithNix =
22 nix:
23 import ./test-with-nix.nix {
24 inherit lib nix;
25 pkgs = pkgsBB;
26 };
27
28in
29pkgsBB.symlinkJoin {
30 name = "nixpkgs-lib-tests";
31 paths = map testWithNix nixVersions ++ [
32 (import ./nix-unit.nix {
33 inherit pkgs;
34 })
35 (import ./maintainers.nix {
36 inherit pkgs;
37 lib = import ../.;
38 })
39 (import ./teams.nix {
40 inherit pkgs;
41 lib = import ../.;
42 })
43 ];
44}