about summary refs log tree commit diff
path: root/tests
diff options
context:
space:
mode:
authorEelco Dolstra <e.dolstra@tudelft.nl>2004-05-04T12·15+0000
committerEelco Dolstra <e.dolstra@tudelft.nl>2004-05-04T12·15+0000
commit256eeab7112da2d5fe1629ffb8b86640a894ee6d (patch)
treed173bcf930f86c296793a0cd20c7c83900c0bd18 /tests
parentfd927c5d25f1518dcbf99a57223f46fe098d9011 (diff)
* Allow the location of the store etc. to be specified using
  environment variables.
* Started adding some automatic tests.
* Do a `make check' when building RPMs.

Diffstat (limited to 'tests')
-rw-r--r--tests/Makefile.am19
-rw-r--r--tests/init.sh18
-rw-r--r--tests/simple.builder.sh11
-rw-r--r--tests/simple.nix.in6
-rw-r--r--tests/simple.sh10
5 files changed, 64 insertions, 0 deletions
diff --git a/tests/Makefile.am b/tests/Makefile.am
new file mode 100644
index 0000000000..dc8c15e671
--- /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 0000000000..87ab59f964
--- /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 0000000000..dcd9bdb64a
--- /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 0000000000..c2e944c7bb
--- /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 0000000000..68da000d19
--- /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