about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--lib/tests/misc.nix (renamed from lib/tests.nix)4
-rw-r--r--lib/tests/release.nix58
-rw-r--r--lib/tests/systems.nix14
-rw-r--r--pkgs/top-level/make-tarball.nix11
-rw-r--r--pkgs/top-level/release.nix6
5 files changed, 46 insertions, 47 deletions
diff --git a/lib/tests.nix b/lib/tests/misc.nix
index a201fa9ed15d8..334e1a7073342 100644
--- a/lib/tests.nix
+++ b/lib/tests/misc.nix
@@ -1,8 +1,8 @@
 # to run these tests:
-# nix-instantiate --eval --strict nixpkgs/lib/tests.nix
+# nix-instantiate --eval --strict nixpkgs/lib/tests/misc.nix
 # if the resulting list is empty, all tests passed
 let inherit (builtins) add; in
-with import ./default.nix;
+with import ../default.nix;
 
 runTests {
 
diff --git a/lib/tests/release.nix b/lib/tests/release.nix
index dfa4ca2676d1f..77dff39edfaa4 100644
--- a/lib/tests/release.nix
+++ b/lib/tests/release.nix
@@ -1,40 +1,32 @@
-{ nixpkgs ? { outPath = (import ../.).cleanSource ../..; revCount = 1234; shortRev = "abcdef"; }
-, # The platforms for which we build Nixpkgs.
-  supportedSystems ? [ builtins.currentSystem ]
-, # Strip most of attributes when evaluating to spare memory usage
-  scrubJobs ? true
-}:
+{ pkgs ? import ((import ../../lib).cleanSource ../..) {} }:
 
-with import ../../pkgs/top-level/release-lib.nix { inherit supportedSystems scrubJobs; };
-with lib;
+pkgs.stdenv.mkDerivation {
+  name = "nixpkgs-lib-tests";
+  buildInputs = [ pkgs.nix ];
+  NIX_PATH="nixpkgs=${pkgs.path}";
 
-{
-  systems = import ./systems.nix { inherit lib assertTrue; };
+  buildCommand = ''
+    datadir="${pkgs.nix}/share"
+    export TEST_ROOT=$(pwd)/test-tmp
+    export NIX_BUILD_HOOK=
+    export NIX_CONF_DIR=$TEST_ROOT/etc
+    export NIX_DB_DIR=$TEST_ROOT/db
+    export NIX_LOCALSTATE_DIR=$TEST_ROOT/var
+    export NIX_LOG_DIR=$TEST_ROOT/var/log/nix
+    export NIX_MANIFESTS_DIR=$TEST_ROOT/var/nix/manifests
+    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
 
-  moduleSystem = pkgs.stdenv.mkDerivation {
-    name = "nixpkgs-lib-tests";
-    buildInputs = [ pkgs.nix ];
-    NIX_PATH="nixpkgs=${nixpkgs}";
+    cd ${pkgs.path}/lib/tests
+    ./modules.sh
 
-    buildCommand = ''
-      datadir="${pkgs.nix}/share"
-      export TEST_ROOT=$(pwd)/test-tmp
-      export NIX_BUILD_HOOK=
-      export NIX_CONF_DIR=$TEST_ROOT/etc
-      export NIX_DB_DIR=$TEST_ROOT/db
-      export NIX_LOCALSTATE_DIR=$TEST_ROOT/var
-      export NIX_LOG_DIR=$TEST_ROOT/var/log/nix
-      export NIX_MANIFESTS_DIR=$TEST_ROOT/var/nix/manifests
-      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
+    [[ "$(nix-instantiate --eval --strict misc.nix)" == "[ ]" ]]
 
-      cd ${nixpkgs}/lib/tests
-      ./modules.sh
+    [[ "$(nix-instantiate --eval --strict systems.nix)" == "[ ]" ]]
 
-      touch $out
-    '';
-  };
+    touch $out
+  '';
 }
diff --git a/lib/tests/systems.nix b/lib/tests/systems.nix
index 5eacc0defafb4..523fd3feb3b0c 100644
--- a/lib/tests/systems.nix
+++ b/lib/tests/systems.nix
@@ -5,13 +5,13 @@
 # calculating the lists anyway?". The answer is one can mindlessly update these
 # tests as new platforms become supported, and then just give the diff a quick
 # sanity check before committing :).
-{ lib, assertTrue }:
-
-with lib.systems.doubles;
-
-let mseteq = x: y: lib.sort lib.lessThan x == lib.sort lib.lessThan y; in
-
-{
+let
+  lib = import ../default.nix;
+  mseteq = x: y: {
+    expr     = lib.sort lib.lessThan x;
+    expected = lib.sort lib.lessThan y;
+  };
+in with lib.systems.doubles; lib.runTests {
   all = assertTrue (mseteq all (linux ++ darwin ++ cygwin ++ freebsd ++ openbsd ++ netbsd ++ illumos));
 
   arm = assertTrue (mseteq arm [ "armv5tel-linux" "armv6l-linux" "armv7l-linux" ]);
diff --git a/pkgs/top-level/make-tarball.nix b/pkgs/top-level/make-tarball.nix
index a69e7019c8741..c7e5f21910bbd 100644
--- a/pkgs/top-level/make-tarball.nix
+++ b/pkgs/top-level/make-tarball.nix
@@ -57,8 +57,15 @@ releaseTools.sourceTarball rec {
     fi
 
     # Run the regression tests in `lib'.
-    res="$(nix-instantiate --eval --strict --show-trace lib/tests.nix)"
-    if test "$res" != "[ ]"; then
+    if
+        # `set -e` doesn't work inside here, so need to && instead :(
+        res="$(nix-instantiate --eval --strict lib/tests/misc.nix)" \
+        && [[ "$res" == "[ ]" ]] \
+        && res="$(nix-instantiate --eval --strict lib/tests/systems.nix)" \
+        && [[ "$res" == "[ ]" ]]
+    then
+        true
+    else
         echo "regression tests for lib failed, got: $res"
         exit 1
     fi
diff --git a/pkgs/top-level/release.nix b/pkgs/top-level/release.nix
index cf4d54fe04960..3931a3fe73ed3 100644
--- a/pkgs/top-level/release.nix
+++ b/pkgs/top-level/release.nix
@@ -28,7 +28,7 @@ let
       metrics = import ./metrics.nix { inherit pkgs nixpkgs; };
 
       manual = import ../../doc;
-      lib-tests = import ../../lib/tests/release.nix { inherit nixpkgs supportedSystems scrubJobs; };
+      lib-tests = import ../../lib/tests/release.nix { inherit pkgs; };
 
       darwin-tested = pkgs.releaseTools.aggregate
         { name = "nixpkgs-darwin-${jobs.tarball.version}";
@@ -52,6 +52,7 @@ let
             [ jobs.tarball
               jobs.metrics
               jobs.manual
+              jobs.lib-tests
               jobs.stdenv.x86_64-linux
               jobs.stdenv.i686-linux
               jobs.stdenv.x86_64-darwin
@@ -78,8 +79,7 @@ let
               jobs.git.x86_64-darwin
               jobs.mysql.x86_64-darwin
               jobs.vim.x86_64-darwin
-            ] ++ lib.collect lib.isDerivation jobs.stdenvBootstrapTools
-              ++ lib.collect lib.isDerivation jobs.lib-tests;
+            ] ++ lib.collect lib.isDerivation jobs.stdenvBootstrapTools;
         };
     } // (lib.optionalAttrs (builtins.elem "i686-linux" supportedSystems) {
       stdenvBootstrapTools.i686-linux =