From 30f89e0d6564394747e20e04d486b81aeec96752 Mon Sep 17 00:00:00 2001 From: Will Dietz Date: Wed, 5 Apr 2017 07:34:10 -0500 Subject: [PATCH 1/2] Process nix.conf options in "new" nix commands, add test. Without this (minor) change, the options set using "--option" or read from nix.conf were parsed but not used. --- src/nix/main.cc | 1 + tests/timeout.sh | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/src/nix/main.cc b/src/nix/main.cc index 440ced97d..fdb8f6e3a 100644 --- a/src/nix/main.cc +++ b/src/nix/main.cc @@ -42,6 +42,7 @@ void mainWrapped(int argc, char * * argv) NixArgs args; args.parseCmdline(argvToStrings(argc, argv)); + settings.update(); assert(args.command); diff --git a/tests/timeout.sh b/tests/timeout.sh index ce1ae7d67..77b227e89 100644 --- a/tests/timeout.sh +++ b/tests/timeout.sh @@ -29,3 +29,8 @@ if nix-build timeout.nix -A closeLog; then echo "build should have failed" exit 1 fi + +if nix build -f timeout.nix silent --option build-max-silent-time 2; then + echo "build should have failed" + exit 1 +fi From a0c56197fcb6d13e77ccbdd28322a540352b880c Mon Sep 17 00:00:00 2001 From: Will Dietz Date: Wed, 5 Apr 2017 08:13:07 -0500 Subject: [PATCH 2/2] tests/timeout: create output so tests don't trivially pass Timeout tests rely on failed build to determine success, so make sure these derivations (silent in particular) don't fail regardless of timeout behavior. --- tests/timeout.nix | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tests/timeout.nix b/tests/timeout.nix index 540fba934..e18d717ef 100644 --- a/tests/timeout.nix +++ b/tests/timeout.nix @@ -5,6 +5,7 @@ with import ./config.nix; infiniteLoop = mkDerivation { name = "timeout"; buildCommand = '' + touch $out echo "‘timeout’ builder entering an infinite loop" while true ; do echo -n .; done ''; @@ -13,6 +14,7 @@ with import ./config.nix; silent = mkDerivation { name = "silent"; buildCommand = '' + touch $out sleep 60 ''; }; @@ -20,6 +22,7 @@ with import ./config.nix; closeLog = mkDerivation { name = "silent"; buildCommand = '' + touch $out exec > /dev/null 2>&1 sleep 1000000000 '';