diff options
author | Eelco Dolstra <edolstra@gmail.com> | 2018-02-22T11·18+0100 |
---|---|---|
committer | Eelco Dolstra <edolstra@gmail.com> | 2018-02-22T11·18+0100 |
commit | de4c03d2014020d71e02eda3a63f7c401ceded5c (patch) | |
tree | c0fddea0822fd7d89c1fd2254441b995381c04b0 | |
parent | 88c90d5e6d3865dffedef8a83f24473aefc08646 (diff) | |
parent | c7e0be1bfc79909cafd52645c88ceb8bcf2a588a (diff) |
Merge branch 'fix/dry-run-partially' of https://github.com/dtzWill/nix
-rw-r--r-- | src/nix/build.cc | 2 | ||||
-rw-r--r-- | tests/build-dry.sh | 52 | ||||
-rw-r--r-- | tests/local.mk | 1 |
3 files changed, 55 insertions, 0 deletions
diff --git a/src/nix/build.cc b/src/nix/build.cc index b4f21b32d78f..b329ac38ac2b 100644 --- a/src/nix/build.cc +++ b/src/nix/build.cc @@ -52,6 +52,8 @@ struct CmdBuild : MixDryRun, InstallablesCommand { auto buildables = build(store, dryRun ? DryRun : Build, installables); + if (dryRun) return; + for (size_t i = 0; i < buildables.size(); ++i) { auto & b(buildables[i]); diff --git a/tests/build-dry.sh b/tests/build-dry.sh new file mode 100644 index 000000000000..610e6070c5d7 --- /dev/null +++ b/tests/build-dry.sh @@ -0,0 +1,52 @@ +source common.sh + +################################################### +# Check that --dry-run isn't confused with read-only mode +# https://github.com/NixOS/nix/issues/1795 + +clearStore +clearCache + +# Ensure this builds successfully first +nix build -f dependencies.nix + +clearStore +clearCache + +# Try --dry-run using old command first +nix-build dependencies.nix --dry-run 2>&1 | grep "will be built" +# Now new command: +nix build -f dependencies.nix --dry-run 2>&1 | grep "will be built" + +# TODO: XXX: FIXME: #1793 +# Disable this part of the test until the problem is resolved: +if [ -n "$ISSUE_1795_IS_FIXED" ]; then +clearStore +clearCache + +# Try --dry-run using new command first +nix build -f dependencies.nix --dry-run 2>&1 | grep "will be built" +# Now old command: +nix-build dependencies.nix --dry-run 2>&1 | grep "will be built" +fi + +################################################### +# Check --dry-run doesn't create links with --dry-run +# https://github.com/NixOS/nix/issues/1849 +clearStore +clearCache + +RESULT=$TEST_ROOT/result-link +rm -f $RESULT + +nix-build dependencies.nix -o $RESULT --dry-run + +[[ ! -h $RESULT ]] || fail "nix-build --dry-run created output link" + +nix build -f dependencies.nix -o $RESULT --dry-run + +[[ ! -h $RESULT ]] || fail "nix build --dry-run created output link" + +nix build -f dependencies.nix -o $RESULT + +[[ -h $RESULT ]] diff --git a/tests/local.mk b/tests/local.mk index 2a4832e1304e..ec7ebfb0dedc 100644 --- a/tests/local.mk +++ b/tests/local.mk @@ -13,6 +13,7 @@ nix_tests = \ check-reqs.sh pass-as-file.sh tarball.sh restricted.sh \ placeholders.sh nix-shell.sh \ linux-sandbox.sh \ + build-dry.sh \ build-remote.sh \ nar-access.sh \ structured-attrs.sh \ |