about summary refs log tree commit diff
path: root/tests
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2011-06-30T15·19+0000
committerLudovic Courtès <ludo@gnu.org>2011-06-30T15·19+0000
commit5c9e9f732df6d95d712f25de9880b7461c53d6ca (patch)
treed4e562f7048f57d0ec87461bce441dfd450374f7 /tests
parent9c99aa2620b8f86c0e7f99ebfe868e8ccb306f71 (diff)
Add support for the `build-timeout' and `--timeout' options.
Diffstat (limited to 'tests')
-rw-r--r--tests/Makefile.am3
-rw-r--r--tests/timeout.builder.sh2
-rw-r--r--tests/timeout.nix8
-rw-r--r--tests/timeout.sh24
4 files changed, 36 insertions, 1 deletions
diff --git a/tests/Makefile.am b/tests/Makefile.am
index fb4a2285c1..d383bce248 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -8,7 +8,7 @@ TESTS = init.sh hash.sh lang.sh add.sh simple.sh dependencies.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
+  binary-patching.sh timeout.sh
 
 XFAIL_TESTS =
 
@@ -33,5 +33,6 @@ EXTRA_DIST = $(TESTS) \
   export-graph.nix \
   negative-caching.nix \
   binary-patching.nix \
+  timeout.nix timeout.builder.sh \
   $(wildcard lang/*.nix) $(wildcard lang/*.exp) $(wildcard lang/*.exp.xml) $(wildcard lang/*.flags) \
   common.sh.in
diff --git a/tests/timeout.builder.sh b/tests/timeout.builder.sh
new file mode 100644
index 0000000000..3e6e1fc042
--- /dev/null
+++ b/tests/timeout.builder.sh
@@ -0,0 +1,2 @@
+echo "\`timeout' builder entering an infinite loop"
+while true ; do : ; done
diff --git a/tests/timeout.nix b/tests/timeout.nix
new file mode 100644
index 0000000000..dec258801e
--- /dev/null
+++ b/tests/timeout.nix
@@ -0,0 +1,8 @@
+with import ./config.nix;
+
+mkDerivation {
+  name = "timeout";
+  builder = ./timeout.builder.sh;
+  PATH = "";
+  goodPath = path;
+}
diff --git a/tests/timeout.sh b/tests/timeout.sh
new file mode 100644
index 0000000000..f27739fb2b
--- /dev/null
+++ b/tests/timeout.sh
@@ -0,0 +1,24 @@
+# Test the `--timeout' option.
+
+source common.sh
+
+drvPath=$($nixinstantiate timeout.nix)
+
+test "$($nixstore -q --binding system "$drvPath")" = "$system"
+
+echo "derivation is $drvPath"
+
+failed=0
+messages="`$nixstore -r --timeout 2 $drvPath 2>&1 || failed=1`"
+if test $failed -ne 0; then
+    echo "error: \`nix-store' succeeded; should have timed out" >&2
+    exit 1
+fi
+
+if ! echo "$messages" | grep "timed out"; then
+    echo "error: \`nix-store' may have failed for reasons other than timeout" >&2
+    echo >&2
+    echo "output of \`nix-store' follows:" >&2
+    echo "$messages" >&2
+    exit 1
+fi