Merge pull request #25196 from Ericson2314/recursive-platform-tests
lib: Consolidate tests into one meta job
This commit is contained in:
commit
f3c989babd
@ -1,8 +1,8 @@
|
|||||||
# to run these tests:
|
# 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
|
# if the resulting list is empty, all tests passed
|
||||||
let inherit (builtins) add; in
|
let inherit (builtins) add; in
|
||||||
with import ./default.nix;
|
with import ../default.nix;
|
||||||
|
|
||||||
runTests {
|
runTests {
|
||||||
|
|
@ -1,40 +1,32 @@
|
|||||||
{ nixpkgs ? { outPath = (import ../.).cleanSource ../..; revCount = 1234; shortRev = "abcdef"; }
|
{ pkgs ? import ((import ../../lib).cleanSource ../..) {} }:
|
||||||
, # The platforms for which we build Nixpkgs.
|
|
||||||
supportedSystems ? [ builtins.currentSystem ]
|
|
||||||
, # Strip most of attributes when evaluating to spare memory usage
|
|
||||||
scrubJobs ? true
|
|
||||||
}:
|
|
||||||
|
|
||||||
with import ../../pkgs/top-level/release-lib.nix { inherit supportedSystems scrubJobs; };
|
pkgs.stdenv.mkDerivation {
|
||||||
with lib;
|
name = "nixpkgs-lib-tests";
|
||||||
|
buildInputs = [ pkgs.nix ];
|
||||||
|
NIX_PATH="nixpkgs=${pkgs.path}";
|
||||||
|
|
||||||
{
|
buildCommand = ''
|
||||||
systems = import ./systems.nix { inherit lib assertTrue; };
|
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 {
|
cd ${pkgs.path}/lib/tests
|
||||||
name = "nixpkgs-lib-tests";
|
./modules.sh
|
||||||
buildInputs = [ pkgs.nix ];
|
|
||||||
NIX_PATH="nixpkgs=${nixpkgs}";
|
|
||||||
|
|
||||||
buildCommand = ''
|
[[ "$(nix-instantiate --eval --strict misc.nix)" == "[ ]" ]]
|
||||||
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
|
|
||||||
|
|
||||||
cd ${nixpkgs}/lib/tests
|
[[ "$(nix-instantiate --eval --strict systems.nix)" == "[ ]" ]]
|
||||||
./modules.sh
|
|
||||||
|
|
||||||
touch $out
|
touch $out
|
||||||
'';
|
'';
|
||||||
};
|
|
||||||
}
|
}
|
||||||
|
@ -5,13 +5,13 @@
|
|||||||
# calculating the lists anyway?". The answer is one can mindlessly update these
|
# 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
|
# tests as new platforms become supported, and then just give the diff a quick
|
||||||
# sanity check before committing :).
|
# sanity check before committing :).
|
||||||
{ lib, assertTrue }:
|
let
|
||||||
|
lib = import ../default.nix;
|
||||||
with lib.systems.doubles;
|
mseteq = x: y: {
|
||||||
|
expr = lib.sort lib.lessThan x;
|
||||||
let mseteq = x: y: lib.sort lib.lessThan x == lib.sort lib.lessThan y; in
|
expected = lib.sort lib.lessThan y;
|
||||||
|
};
|
||||||
{
|
in with lib.systems.doubles; lib.runTests {
|
||||||
all = assertTrue (mseteq all (linux ++ darwin ++ cygwin ++ freebsd ++ openbsd ++ netbsd ++ illumos));
|
all = assertTrue (mseteq all (linux ++ darwin ++ cygwin ++ freebsd ++ openbsd ++ netbsd ++ illumos));
|
||||||
|
|
||||||
arm = assertTrue (mseteq arm [ "armv5tel-linux" "armv6l-linux" "armv7l-linux" ]);
|
arm = assertTrue (mseteq arm [ "armv5tel-linux" "armv6l-linux" "armv7l-linux" ]);
|
||||||
|
@ -57,8 +57,15 @@ releaseTools.sourceTarball rec {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# Run the regression tests in `lib'.
|
# Run the regression tests in `lib'.
|
||||||
res="$(nix-instantiate --eval --strict --show-trace lib/tests.nix)"
|
if
|
||||||
if test "$res" != "[ ]"; then
|
# `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"
|
echo "regression tests for lib failed, got: $res"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
@ -28,7 +28,7 @@ let
|
|||||||
metrics = import ./metrics.nix { inherit pkgs nixpkgs; };
|
metrics = import ./metrics.nix { inherit pkgs nixpkgs; };
|
||||||
|
|
||||||
manual = import ../../doc;
|
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
|
darwin-tested = pkgs.releaseTools.aggregate
|
||||||
{ name = "nixpkgs-darwin-${jobs.tarball.version}";
|
{ name = "nixpkgs-darwin-${jobs.tarball.version}";
|
||||||
@ -52,6 +52,7 @@ let
|
|||||||
[ jobs.tarball
|
[ jobs.tarball
|
||||||
jobs.metrics
|
jobs.metrics
|
||||||
jobs.manual
|
jobs.manual
|
||||||
|
jobs.lib-tests
|
||||||
jobs.stdenv.x86_64-linux
|
jobs.stdenv.x86_64-linux
|
||||||
jobs.stdenv.i686-linux
|
jobs.stdenv.i686-linux
|
||||||
jobs.stdenv.x86_64-darwin
|
jobs.stdenv.x86_64-darwin
|
||||||
@ -78,8 +79,7 @@ let
|
|||||||
jobs.git.x86_64-darwin
|
jobs.git.x86_64-darwin
|
||||||
jobs.mysql.x86_64-darwin
|
jobs.mysql.x86_64-darwin
|
||||||
jobs.vim.x86_64-darwin
|
jobs.vim.x86_64-darwin
|
||||||
] ++ lib.collect lib.isDerivation jobs.stdenvBootstrapTools
|
] ++ lib.collect lib.isDerivation jobs.stdenvBootstrapTools;
|
||||||
++ lib.collect lib.isDerivation jobs.lib-tests;
|
|
||||||
};
|
};
|
||||||
} // (lib.optionalAttrs (builtins.elem "i686-linux" supportedSystems) {
|
} // (lib.optionalAttrs (builtins.elem "i686-linux" supportedSystems) {
|
||||||
stdenvBootstrapTools.i686-linux =
|
stdenvBootstrapTools.i686-linux =
|
||||||
|
Loading…
Reference in New Issue
Block a user