From 475ee3a18ec12ab3f53a78875918a38b5a04d340 Mon Sep 17 00:00:00 2001 From: Robert Hensing Date: Thu, 1 Feb 2024 17:15:58 +0100 Subject: [PATCH] lib/tests/test-with-nix.nix: init See https://github.com/NixOS/nix/pull/9900 --- lib/tests/release.nix | 55 +---------------------------- lib/tests/test-with-nix.nix | 70 +++++++++++++++++++++++++++++++++++++ 2 files changed, 71 insertions(+), 54 deletions(-) create mode 100644 lib/tests/test-with-nix.nix diff --git a/lib/tests/release.nix b/lib/tests/release.nix index 96d34be8c2d3..5b2a9df1635c 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 000000000000..fd2e7532e697 --- /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} +''