about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--tests/check.nix12
-rw-r--r--tests/check.sh18
-rw-r--r--tests/local.mk3
3 files changed, 32 insertions, 1 deletions
diff --git a/tests/check.nix b/tests/check.nix
new file mode 100644
index 0000000000..b330ab9c98
--- /dev/null
+++ b/tests/check.nix
@@ -0,0 +1,12 @@
+with import ./config.nix;
+
+{
+  nondeterministic = mkDerivation {
+    name = "nondeterministic";
+    buildCommand =
+      ''
+        mkdir $out
+        date +%s.%N > $out/date
+      '';
+  };
+}
diff --git a/tests/check.sh b/tests/check.sh
new file mode 100644
index 0000000000..3efcef0449
--- /dev/null
+++ b/tests/check.sh
@@ -0,0 +1,18 @@
+source common.sh
+
+clearStore
+
+nix-build dependencies.nix --no-out-link
+nix-build dependencies.nix --no-out-link --check
+
+nix-build check.nix -A nondeterministic --no-out-link
+(! nix-build check.nix -A nondeterministic --no-out-link --check 2> $TEST_ROOT/log)
+grep 'may not be deterministic' $TEST_ROOT/log
+
+clearStore
+
+nix-build dependencies.nix --no-out-link --repeat 3
+
+(! nix-build check.nix -A nondeterministic --no-out-link --repeat 1 2> $TEST_ROOT/log)
+grep 'differs from previous round' $TEST_ROOT/log
+
diff --git a/tests/local.mk b/tests/local.mk
index 82502a8e5f..e90b9f7da4 100644
--- a/tests/local.mk
+++ b/tests/local.mk
@@ -21,7 +21,8 @@ nix_tests = \
   signing.sh \
   run.sh \
   brotli.sh \
-  pure-eval.sh
+  pure-eval.sh \
+  check.sh
   # parallel.sh
 
 install-tests += $(foreach x, $(nix_tests), tests/$(x))