diff options
author | Eelco Dolstra <edolstra@gmail.com> | 2017-05-02 15:35:35 +0200 |
---|---|---|
committer | Eelco Dolstra <edolstra@gmail.com> | 2017-05-02 15:46:10 +0200 |
commit | 16535552ad69ca5397967b84fd70cc0d27a38ac1 (patch) | |
tree | 92070c2cb2190fbf883304f6c927c04570130c19 /tests/build-remote.sh | |
parent | cef8c169b1d100685d7c7b7bfb921eaa43b5521b (diff) |
build-remote: Add a basic test
This only runs on Linux because it requires a diverted store (which
uses mount/user namespaces).
Diffstat (limited to 'tests/build-remote.sh')
-rw-r--r-- | tests/build-remote.sh | 24 |
1 files changed, 24 insertions, 0 deletions
diff --git a/tests/build-remote.sh b/tests/build-remote.sh new file mode 100644 index 000000000..071011dcb --- /dev/null +++ b/tests/build-remote.sh @@ -0,0 +1,24 @@ +source common.sh + +clearStore + +if [[ $(uname) != Linux ]]; then exit; fi +if [[ ! $SHELL =~ /nix/store ]]; then exit; fi + +chmod -R u+w $TEST_ROOT/store0 || true +chmod -R u+w $TEST_ROOT/store1 || true +rm -rf $TEST_ROOT/store0 $TEST_ROOT/store1 + +# FIXME: --option is not passed to build-remote, so have to create a config file. +export NIX_CONF_DIR=$TEST_ROOT/etc2 +mkdir -p $NIX_CONF_DIR +echo "build-sandbox-paths = /nix/store" > $NIX_CONF_DIR/nix.conf + +outPath=$(nix-build build-hook.nix --no-out-link -j0 --option builders "local?root=$TEST_ROOT/store0; local?root=$TEST_ROOT/store1 - - 1 1 foo" --option build-sandbox-paths /nix/store) + +cat $outPath/foobar | grep FOOBAR + +# Ensure that input1 was built on store1 due to the required feature. +p=$(readlink -f $outPath/input-2) +(! nix path-info --store local?root=$TEST_ROOT/store0 --all | grep dependencies.builder1.sh) +nix path-info --store local?root=$TEST_ROOT/store1 --all | grep dependencies.builder1.sh |