From a4c63c6e8e161d55778b797e566d9eca7c47f34f Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Wed, 1 Mar 2006 12:15:33 +0000 Subject: [PATCH] * Make it easy to run individual tests from the command line. --- configure.ac | 8 +++++--- substitute.mk | 2 ++ tests/Makefile.am | 35 +++++------------------------------ tests/build-hook.sh | 2 ++ tests/common.sh.in | 26 ++++++++++++++++++++++++++ tests/dependencies.sh | 2 ++ tests/fallback.sh | 2 ++ tests/gc-concurrent.sh | 2 ++ tests/gc.sh | 2 ++ tests/hash.sh | 2 ++ tests/init.sh | 2 ++ tests/lang.sh | 2 ++ tests/locking.sh | 2 ++ tests/misc.sh | 4 ++++ tests/nix-pull.sh | 2 ++ tests/nix-push.sh | 2 ++ tests/parallel.sh | 2 ++ tests/referrers.sh | 2 ++ tests/simple.sh | 2 ++ tests/substitutes.sh | 2 ++ tests/substitutes2.sh | 2 ++ tests/user-envs.sh | 2 ++ tests/verify.sh | 2 ++ 23 files changed, 78 insertions(+), 33 deletions(-) create mode 100644 tests/common.sh.in diff --git a/configure.ac b/configure.ac index eee73c07b..f6e548729 100644 --- a/configure.ac +++ b/configure.ac @@ -1,4 +1,4 @@ -AC_INIT(nix, "0.10") +AC_INIT(nix, 0.10) AC_CONFIG_SRCDIR(README) AC_CONFIG_AUX_DIR(config) AM_INIT_AUTOMAKE([dist-bzip2 foreign]) @@ -10,12 +10,14 @@ STABLE=0 # Put the revision number in the version. if test "$STABLE" != "1"; then if REVISION=`test -d $srcdir/.svn && svnversion $srcdir 2> /dev/null`; then - VERSION="${VERSION}pre${REVISION}" + VERSION=${VERSION}pre${REVISION} elif REVISION=`cat $srcdir/svn-revision 2> /dev/null`; then - VERSION="${VERSION}pre${REVISION}" + VERSION=${VERSION}pre${REVISION} fi fi +AC_DEFINE_UNQUOTED(NIX_VERSION, ["$(echo $VERSION)"], [version]) + AC_PREFIX_DEFAULT(/nix) AC_CANONICAL_HOST diff --git a/substitute.mk b/substitute.mk index 2b7f38610..2e28e5867 100644 --- a/substitute.mk +++ b/substitute.mk @@ -16,6 +16,8 @@ -e "s^@perl\@^$(perl)^g" \ -e "s^@coreutils\@^$(coreutils)^g" \ -e "s^@tar\@^$(tar)^g" \ + -e "s^@dot\@^$(dot)^g" \ + -e "s^@aterm_bin\@^$(aterm_bin)^g" \ -e "s^@version\@^$(VERSION)^g" \ < $< > $@ || rm $@ if test -x $<; then chmod +x $@; fi diff --git a/tests/Makefile.am b/tests/Makefile.am index 933da520b..d8493496d 100644 --- a/tests/Makefile.am +++ b/tests/Makefile.am @@ -1,29 +1,4 @@ -TEST_ROOT = $(shell pwd)/test-tmp - -extra1 = $(TEST_ROOT)/shared - -TESTS_ENVIRONMENT = TEST_ROOT=$(TEST_ROOT) \ - NIX_STORE_DIR=$(TEST_ROOT)/store \ - NIX_DATA_DIR=$(TEST_ROOT)/data \ - NIX_LOCALSTATE_DIR=$(TEST_ROOT)/var \ - NIX_LOG_DIR=$(TEST_ROOT)/var/log/nix \ - NIX_STATE_DIR=$(TEST_ROOT)/var/nix \ - NIX_DB_DIR=$(TEST_ROOT)/db \ - NIX_CONF_DIR=$(TEST_ROOT)/etc \ - NIX_BIN_DIR=$(TEST_ROOT)/bin \ - NIX_LIBEXEC_DIR=$(TEST_ROOT)/bin \ - REAL_BIN_DIR=$(bindir) \ - REAL_LIBEXEC_DIR=$(libexecdir) \ - REAL_LOCALSTATE_DIR=$(localstatedir) \ - REAL_DATA_DIR=$(datadir) \ - REAL_STORE_DIR=$(storedir) \ - NIX_BUILD_HOOK= \ - PERL=$(perl) \ - TOP=$(shell pwd)/.. \ - SHARED=$(extra1) \ - aterm_bin=$(aterm_bin) \ - dot=$(dot) \ - $(SHELL) -e +TESTS_ENVIRONMENT = $(SHELL) -e simple.sh: simple.nix dependencies.sh: dependencies.nix @@ -45,11 +20,10 @@ TESTS = init.sh hash.sh lang.sh simple.sh dependencies.sh locking.sh parallel.sh XFAIL_TESTS = -langtests: - $(TESTS_ENVIRONMENT) ./lang.sh - include ../substitute.mk +$(TESTS): common.sh + EXTRA_DIST = $(TESTS) \ simple.nix.in simple.builder.sh \ dependencies.nix.in dependencies.builder*.sh \ @@ -62,4 +36,5 @@ EXTRA_DIST = $(TESTS) \ gc-concurrent2.nix.in gc-concurrent2.builder.sh \ fallback.nix.in \ user-envs.nix.in user-envs.builder.sh \ - $(wildcard lang/*.nix) $(wildcard lang/*.exp) + $(wildcard lang/*.nix) $(wildcard lang/*.exp) \ + common.sh.in diff --git a/tests/build-hook.sh b/tests/build-hook.sh index f11cd15b8..6a71bbe56 100644 --- a/tests/build-hook.sh +++ b/tests/build-hook.sh @@ -1,3 +1,5 @@ +source common.sh + export NIX_BUILD_HOOK="build-hook.hook.sh" drvPath=$($TOP/src/nix-instantiate/nix-instantiate build-hook.nix) diff --git a/tests/common.sh.in b/tests/common.sh.in new file mode 100644 index 000000000..979e60db2 --- /dev/null +++ b/tests/common.sh.in @@ -0,0 +1,26 @@ +set -e + +export TEST_ROOT=$(pwd)/test-tmp +export NIX_STORE_DIR=$TEST_ROOT/store +export NIX_DATA_DIR=$TEST_ROOT/data +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_DB_DIR=$TEST_ROOT/db +export NIX_CONF_DIR=$TEST_ROOT/etc +export NIX_BIN_DIR=$TEST_ROOT/bin +export NIX_LIBEXEC_DIR=$TEST_ROOT/bin +export SHARED=$TEST_ROOT/shared + +export REAL_BIN_DIR=@bindir@ +export REAL_LIBEXEC_DIR=@libexecdir@ +export REAL_LOCALSTATE_DIR=@localstatedir@ +export REAL_DATA_DIR=@datadir@ +export REAL_STORE_DIR=@storedir@ +export NIX_BUILD_HOOK= +export PERL=perl +export TOP=$(pwd)/.. +export aterm_bin=@aterm_bin@ +export dot=@dot@ + +export version=@version@ diff --git a/tests/dependencies.sh b/tests/dependencies.sh index 985d08727..0d19cd2bb 100644 --- a/tests/dependencies.sh +++ b/tests/dependencies.sh @@ -1,3 +1,5 @@ +source common.sh + drvPath=$($TOP/src/nix-instantiate/nix-instantiate dependencies.nix) echo "derivation is $drvPath" diff --git a/tests/fallback.sh b/tests/fallback.sh index 4a3d29f39..2ff4b0b9c 100644 --- a/tests/fallback.sh +++ b/tests/fallback.sh @@ -1,3 +1,5 @@ +source common.sh + drvPath=$($TOP/src/nix-instantiate/nix-instantiate fallback.nix) echo "derivation is $drvPath" diff --git a/tests/gc-concurrent.sh b/tests/gc-concurrent.sh index 8cc24565d..7606a64c8 100644 --- a/tests/gc-concurrent.sh +++ b/tests/gc-concurrent.sh @@ -1,3 +1,5 @@ +source common.sh + drvPath1=$($TOP/src/nix-instantiate/nix-instantiate gc-concurrent.nix) outPath1=$($TOP/src/nix-store/nix-store -q $drvPath1) diff --git a/tests/gc.sh b/tests/gc.sh index 9fe0068b3..c1bfc9ce4 100644 --- a/tests/gc.sh +++ b/tests/gc.sh @@ -1,3 +1,5 @@ +source common.sh + drvPath=$($TOP/src/nix-instantiate/nix-instantiate dependencies.nix) outPath=$($TOP/src/nix-store/nix-store -rvv "$drvPath") diff --git a/tests/hash.sh b/tests/hash.sh index 848a36c6b..fbbf1a761 100644 --- a/tests/hash.sh +++ b/tests/hash.sh @@ -1,3 +1,5 @@ +source common.sh + try () { echo -n "$2" > $TEST_ROOT/vector hash=$($TOP/src/nix-hash/nix-hash $EXTRA --flat --type "$1" $TEST_ROOT/vector) diff --git a/tests/init.sh b/tests/init.sh index 316b2ec3d..cd9fe6021 100644 --- a/tests/init.sh +++ b/tests/init.sh @@ -1,3 +1,5 @@ +source common.sh + echo "NIX_STORE_DIR=$NIX_STORE_DIR NIX_DB_DIR=$NIX_DB_DIR" test -n "$TEST_ROOT" diff --git a/tests/lang.sh b/tests/lang.sh index bbdb3fb8a..5e9d8d51e 100644 --- a/tests/lang.sh +++ b/tests/lang.sh @@ -1,3 +1,5 @@ +source common.sh + fail=0 for i in lang/parse-fail-*.nix; do diff --git a/tests/locking.sh b/tests/locking.sh index eeac569b8..3e1788660 100644 --- a/tests/locking.sh +++ b/tests/locking.sh @@ -1,3 +1,5 @@ +source common.sh + drvPath=$($TOP/src/nix-instantiate/nix-instantiate locking.nix) echo "derivation is $drvPath" diff --git a/tests/misc.sh b/tests/misc.sh index d865df8dd..2220ea18c 100644 --- a/tests/misc.sh +++ b/tests/misc.sh @@ -1,3 +1,5 @@ +source common.sh + # Tests miscellaneous commands. # Do all commands have help? @@ -6,3 +8,5 @@ $TOP/src/nix-store/nix-store --help | grep -q realise $TOP/src/nix-instantiate/nix-instantiate --help | grep -q eval-only $TOP/src/nix-hash/nix-hash --help | grep -q base32 +# Can we ask for the version number? +$TOP/src/nix-env/nix-env --version | grep "$version" diff --git a/tests/nix-pull.sh b/tests/nix-pull.sh index 4f53113bc..a8dca8fea 100644 --- a/tests/nix-pull.sh +++ b/tests/nix-pull.sh @@ -1,3 +1,5 @@ +source common.sh + clearStore () { echo "clearing store..." chmod -R +w "$NIX_STORE_DIR" diff --git a/tests/nix-push.sh b/tests/nix-push.sh index 73499f1e9..6dbb24840 100644 --- a/tests/nix-push.sh +++ b/tests/nix-push.sh @@ -1,3 +1,5 @@ +source common.sh + drvPath=$($TOP/src/nix-instantiate/nix-instantiate dependencies.nix) outPath=$($TOP/src/nix-store/nix-store -r $drvPath) diff --git a/tests/parallel.sh b/tests/parallel.sh index 0cc4ea9c3..2382db783 100644 --- a/tests/parallel.sh +++ b/tests/parallel.sh @@ -1,3 +1,5 @@ +source common.sh + drvPath=$($TOP/src/nix-instantiate/nix-instantiate parallel.nix) echo "derivation is $drvPath" diff --git a/tests/referrers.sh b/tests/referrers.sh index 6169e8e55..2ee97e65b 100644 --- a/tests/referrers.sh +++ b/tests/referrers.sh @@ -1,3 +1,5 @@ +source common.sh + max=5000 reference=$NIX_STORE_DIR/abcdef diff --git a/tests/simple.sh b/tests/simple.sh index 996ef4e78..3e58bcc84 100644 --- a/tests/simple.sh +++ b/tests/simple.sh @@ -1,3 +1,5 @@ +source common.sh + drvPath=$($TOP/src/nix-instantiate/nix-instantiate simple.nix) echo "derivation is $drvPath" diff --git a/tests/substitutes.sh b/tests/substitutes.sh index 150d6b8a3..680f114b5 100644 --- a/tests/substitutes.sh +++ b/tests/substitutes.sh @@ -1,3 +1,5 @@ +source common.sh + # Instantiate. drvPath=$($TOP/src/nix-instantiate/nix-instantiate substitutes.nix) echo "derivation is $drvPath" diff --git a/tests/substitutes2.sh b/tests/substitutes2.sh index 6dcff6fd4..7303255af 100644 --- a/tests/substitutes2.sh +++ b/tests/substitutes2.sh @@ -1,3 +1,5 @@ +source common.sh + # Instantiate. drvPath=$($TOP/src/nix-instantiate/nix-instantiate substitutes2.nix) echo "derivation is $drvPath" diff --git a/tests/user-envs.sh b/tests/user-envs.sh index 59565cff0..eddd4c22a 100644 --- a/tests/user-envs.sh +++ b/tests/user-envs.sh @@ -1,3 +1,5 @@ +source common.sh + nixenv=$TOP/src/nix-env/nix-env profiles="$NIX_STATE_DIR"/profiles diff --git a/tests/verify.sh b/tests/verify.sh index ede3e7d74..a38544331 100644 --- a/tests/verify.sh +++ b/tests/verify.sh @@ -1 +1,3 @@ +source common.sh + $TOP/src/nix-store/nix-store --verify