diff options
Diffstat (limited to 'tests')
-rw-r--r-- | tests/Makefile.am | 19 | ||||
-rw-r--r-- | tests/init.sh | 18 | ||||
-rw-r--r-- | tests/simple.builder.sh | 11 | ||||
-rw-r--r-- | tests/simple.nix.in | 6 | ||||
-rw-r--r-- | tests/simple.sh | 10 |
5 files changed, 64 insertions, 0 deletions
diff --git a/tests/Makefile.am b/tests/Makefile.am new file mode 100644 index 000000000000..dc8c15e67134 --- /dev/null +++ b/tests/Makefile.am @@ -0,0 +1,19 @@ +TEST_ROOT = $(shell pwd)/test-tmp + +TESTS_ENVIRONMENT = TEST_ROOT=$(TEST_ROOT) \ + NIX_STORE_DIR=$(TEST_ROOT)/store \ + NIX_DATA_DIR=$(TEST_ROOT)/data \ + NIX_LOG_DIR=$(TEST_ROOT)/log \ + NIX_STATE_DIR=$(TEST_ROOT)/state \ + NIX_DB_DIR=$(TEST_ROOT)/db \ + TOP=$(shell pwd)/.. \ + $(SHELL) -e -x + +simple.sh: simple.nix + +TESTS = init.sh simple.sh + +include ../substitute.mk + +EXTRA_DIST = \ + simple.nix.in simple.builder.sh diff --git a/tests/init.sh b/tests/init.sh new file mode 100644 index 000000000000..87ab59f964bf --- /dev/null +++ b/tests/init.sh @@ -0,0 +1,18 @@ +test -n "$TEST_ROOT" +if test -d "$TEST_ROOT"; then + chmod -R u+w "$TEST_ROOT" + rm -rf "$TEST_ROOT" +fi +mkdir "$TEST_ROOT" + +mkdir "$NIX_STORE_DIR" +mkdir "$NIX_DATA_DIR" +mkdir "$NIX_LOG_DIR" +mkdir "$NIX_STATE_DIR" +mkdir "$NIX_DB_DIR" + +# Initialise the database. +$TOP/src/nix-store/nix-store --init + +# Did anything happen? +test -e "$NIX_DB_DIR"/validpaths diff --git a/tests/simple.builder.sh b/tests/simple.builder.sh new file mode 100644 index 000000000000..dcd9bdb64ad0 --- /dev/null +++ b/tests/simple.builder.sh @@ -0,0 +1,11 @@ +echo "PATH=$PATH" + +# Verify that the PATH is empty. +if mkdir foo; then exit 1; fi + +# Set a PATH (!!! impure). +export PATH=/bin:/usr/bin:$PATH + +mkdir $out + +echo "Hello World!" > $out/hello \ No newline at end of file diff --git a/tests/simple.nix.in b/tests/simple.nix.in new file mode 100644 index 000000000000..c2e944c7bb85 --- /dev/null +++ b/tests/simple.nix.in @@ -0,0 +1,6 @@ +derivation { + name = "simple"; + system = "@system@"; + builder = "@shell@"; + args = ["-e" "-x" ./simple.builder.sh]; +} \ No newline at end of file diff --git a/tests/simple.sh b/tests/simple.sh new file mode 100644 index 000000000000..68da000d19f4 --- /dev/null +++ b/tests/simple.sh @@ -0,0 +1,10 @@ +storeExpr=$($TOP/src/nix-instantiate/nix-instantiate simple.nix) + +echo "store expr is $storeExpr" + +outPath=$($TOP/src/nix-store/nix-store -qnfvvvvv "$storeExpr") + +echo "output path is $outPath" + +text=$(cat "$outPath"/hello) +if test "$text" != "Hello World!"; then exit 1; fi |