about summary refs log tree commit diff
path: root/tests
diff options
context:
space:
mode:
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 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