diff options
author | Robert Hensing <robert@roberthensing.nl> | 2024-02-01 17:15:58 +0100 |
---|---|---|
committer | Robert Hensing <robert@roberthensing.nl> | 2024-02-23 11:07:08 +0100 |
commit | 475ee3a18ec12ab3f53a78875918a38b5a04d340 (patch) | |
tree | fb5350f17560e7f7284ad3aebce5f918abda4c2b /lib/tests | |
parent | f305ff3011bbbac55d894a865343a656fe77ee62 (diff) |
lib/tests/test-with-nix.nix: init
See https://github.com/NixOS/nix/pull/9900
Diffstat (limited to 'lib/tests')
-rw-r--r-- | lib/tests/release.nix | 55 | ||||
-rw-r--r-- | lib/tests/test-with-nix.nix | 70 |
2 files changed, 71 insertions, 54 deletions
diff --git a/lib/tests/release.nix b/lib/tests/release.nix index 96d34be8c2d35..5b2a9df1635c6 100644 --- a/lib/tests/release.nix +++ b/lib/tests/release.nix @@ -9,60 +9,7 @@ let lib = import ../.; 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 - pkgs.gitMinimal - ] ++ lib.optional pkgs.stdenv.isLinux pkgs.inotify-tools; - strictDeps = true; - } '' - datadir="${nix}/share" - export TEST_ROOT=$(pwd)/test-tmp - export HOME=$(mktemp -d) - 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 - - echo "Running lib/fileset/tests.sh" - TEST_LIB=$PWD/lib bash lib/fileset/tests.sh - - echo "Running lib/tests/systems.nix" - [[ $(nix-instantiate --eval --strict lib/tests/systems.nix | tee /dev/stderr) == '[ ]' ]]; - - mkdir $out - echo success > $out/${nix.version} - ''; + import ./test-with-nix.nix { inherit lib nix pkgs; }; in pkgs.symlinkJoin { diff --git a/lib/tests/test-with-nix.nix b/lib/tests/test-with-nix.nix new file mode 100644 index 0000000000000..fd2e7532e697c --- /dev/null +++ b/lib/tests/test-with-nix.nix @@ -0,0 +1,70 @@ +/** + * Instantiate the library tests for a given Nix version. + * + * IMPORTANT: + * This is used by the github.com/NixOS/nix CI. + * + * Try not to change the interface of this file, or if you need to, ping the + * Nix maintainers for help. Thank you! + */ +{ + pkgs, + lib, + # Only ever use this nix; see comment at top + 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 + pkgs.gitMinimal + ] ++ lib.optional pkgs.stdenv.isLinux pkgs.inotify-tools; + strictDeps = true; +} '' + datadir="${nix}/share" + export TEST_ROOT=$(pwd)/test-tmp + export HOME=$(mktemp -d) + 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 + + echo "Running lib/fileset/tests.sh" + TEST_LIB=$PWD/lib bash lib/fileset/tests.sh + + echo "Running lib/tests/systems.nix" + [[ $(nix-instantiate --eval --strict lib/tests/systems.nix | tee /dev/stderr) == '[ ]' ]]; + + mkdir $out + echo success > $out/${nix.version} +'' |