about summary refs log tree commit diff
path: root/pkgs/test
diff options
context:
space:
mode:
authorAdam Joseph <adam@westernsemico.com>2023-12-02 21:44:15 -0800
committerAdam Joseph <adam@westernsemico.com>2023-12-15 05:13:50 -0800
commit2d036511f65a267604a27d4758de1eb952315b15 (patch)
tree2d62dd5e1819639f2378445f476031cb5b76671e /pkgs/test
parent77d3093caa6777dd5861d6f497fee2a61480bdf9 (diff)
pkgs/test/release/default.nix: init
This derivation verifies that all jobset attributes can be evaluated
under tryEval without producing any non-catchable errors or causing
infinite recursion.
Diffstat (limited to 'pkgs/test')
-rw-r--r--pkgs/test/release/default.nix46
1 files changed, 46 insertions, 0 deletions
diff --git a/pkgs/test/release/default.nix b/pkgs/test/release/default.nix
new file mode 100644
index 0000000000000..f112ee6b92124
--- /dev/null
+++ b/pkgs/test/release/default.nix
@@ -0,0 +1,46 @@
+# Adapted from lib/tests/release.nix
+{ pkgs-path ? ../../..
+, pkgs ? import pkgs-path {}
+, lib ? pkgs.lib
+, nix ? pkgs.nix
+}:
+
+#
+# This verifies that release-attrpaths-superset.nix does not encounter
+# infinite recursion or non-tryEval-able failures.
+#
+pkgs.runCommand "all-attrs-eval-under-tryEval" {
+  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 ${pkgs-path + "/lib"} lib
+  cp -r ${pkgs-path + "/pkgs"} pkgs
+  cp -r ${pkgs-path + "/default.nix"} default.nix
+  cp -r ${pkgs-path + "/nixos"} nixos
+  cp -r ${pkgs-path + "/maintainers"} maintainers
+  cp -r ${pkgs-path + "/.version"} .version
+  cp -r ${pkgs-path + "/doc"} doc
+  echo "Running pkgs/top-level/release-attrpaths-superset.nix"
+  nix-instantiate --eval --strict --json pkgs/top-level/release-attrpaths-superset.nix -A names > /dev/null
+
+  mkdir $out
+  echo success > $out/${nix.version}
+''