1
0
Fork 0
mirror of https://github.com/NixOS/nix synced 2025-07-07 06:01:48 +02:00

Add support for ‘make installcheck’

This commit is contained in:
Eelco Dolstra 2013-11-25 18:47:03 +01:00
parent 9285f0aa2b
commit 0202ce6b94
11 changed files with 52 additions and 28 deletions

21
tests/Makefile Normal file
View file

@ -0,0 +1,21 @@
check:
@echo "Warning: Nix has no 'make check'. Please install Nix and run 'make installcheck' instead."
nix_tests = \
init.sh hash.sh lang.sh add.sh simple.sh dependencies.sh \
parallel.sh build-hook.sh substitutes.sh substitutes2.sh \
fallback.sh nix-push.sh gc.sh gc-concurrent.sh verify.sh nix-pull.sh \
referrers.sh user-envs.sh logging.sh nix-build.sh misc.sh fixed.sh \
gc-runtime.sh install-package.sh check-refs.sh filter-source.sh \
remote-store.sh export.sh export-graph.sh negative-caching.sh \
binary-patching.sh timeout.sh secure-drv-outputs.sh nix-channel.sh \
multiple-outputs.sh import-derivation.sh fetchurl.sh optimise-store.sh \
binary-cache.sh nix-profile.sh
INSTALL_TESTS += $(foreach x, $(nix_tests), tests/$(x))
TESTS_ENVIRONMENT = NIX_REMOTE= $(bash) -e
clean_files += $(d)/common.sh
installcheck: $(d)/common.sh

View file

@ -1,7 +1,7 @@
set -e
datadir="@datadir@"
profiledir="@profiledir@"
profiledir="@sysconfdir@/profile.d"
export TEST_ROOT=$(pwd)/test-tmp
export NIX_STORE_DIR
@ -16,7 +16,7 @@ export NIX_STATE_DIR=$TEST_ROOT/var/nix
export NIX_DB_DIR=$TEST_ROOT/db
export NIX_CONF_DIR=$TEST_ROOT/etc
export NIX_MANIFESTS_DIR=$TEST_ROOT/var/nix/manifests
export SHARED=$TEST_ROOT/shared
export _NIX_TEST_SHARED=$TEST_ROOT/shared
export NIX_REMOTE=$NIX_REMOTE_
export PATH=@bindir@:$PATH
@ -26,9 +26,9 @@ export dot=@dot@
export xmllint="@xmllint@"
export xmlflags="@xmlflags@"
export xsltproc="@xsltproc@"
export SHELL="@shell@"
export SHELL="@bash@"
export version=@version@
export version=@PACKAGE_VERSION@
export system=@system@
readLink() {

View file

@ -1,12 +1,14 @@
with import <nix/config.nix>;
rec {
shell = "@shell@";
inherit shell;
path = "@testPath@";
path = coreutils;
system = "@system@";
system = builtins.currentSystem;
shared = builtins.getEnv "_NIX_TEST_SHARED";
shared = "@extra1@";
mkDerivation = args:
derivation ({
inherit system;

View file

@ -6,7 +6,7 @@ echo "testing nix-build -j..."
clearStore
rm -f $SHARED.cur $SHARED.max
rm -f $_NIX_TEST_SHARED.cur $_NIX_TEST_SHARED.max
outPath=$(nix-build -j10000 parallel.nix --no-out-link)
@ -15,8 +15,8 @@ echo "output path is $outPath"
text=$(cat "$outPath")
if test "$text" != "abacade"; then exit 1; fi
if test "$(cat $SHARED.cur)" != 0; then fail "wrong current process count"; fi
if test "$(cat $SHARED.max)" != 3; then fail "not enough parallelism"; fi
if test "$(cat $_NIX_TEST_SHARED.cur)" != 0; then fail "wrong current process count"; fi
if test "$(cat $_NIX_TEST_SHARED.max)" != 3; then fail "not enough parallelism"; fi
# Second, test that parallel invocations of nix-build perform builds
@ -25,7 +25,7 @@ echo "testing multiple nix-build -j1..."
clearStore
rm -f $SHARED.cur $SHARED.max
rm -f $_NIX_TEST_SHARED.cur $_NIX_TEST_SHARED.max
drvPath=$(nix-instantiate parallel.nix --argstr sleepTime 15)
@ -52,5 +52,5 @@ wait $pid2 || fail "instance 2 failed: $?"
wait $pid3 || fail "instance 3 failed: $?"
wait $pid4 || fail "instance 4 failed: $?"
if test "$(cat $SHARED.cur)" != 0; then fail "wrong current process count"; fi
if test "$(cat $SHARED.max)" != 3; then fail "not enough parallelism"; fi
if test "$(cat $_NIX_TEST_SHARED.cur)" != 0; then fail "wrong current process count"; fi
if test "$(cat $_NIX_TEST_SHARED.max)" != 3; then fail "not enough parallelism"; fi