forked from lix-project/lix
build-remote: Add a basic test
This only runs on Linux because it requires a diverted store (which uses mount/user namespaces).
This commit is contained in:
parent
cef8c169b1
commit
16535552ad
|
@ -5,6 +5,7 @@ let
|
||||||
input1 = mkDerivation {
|
input1 = mkDerivation {
|
||||||
name = "build-hook-input-1";
|
name = "build-hook-input-1";
|
||||||
builder = ./dependencies.builder1.sh;
|
builder = ./dependencies.builder1.sh;
|
||||||
|
requiredSystemFeatures = ["foo"];
|
||||||
};
|
};
|
||||||
|
|
||||||
input2 = mkDerivation {
|
input2 = mkDerivation {
|
||||||
|
|
24
tests/build-remote.sh
Normal file
24
tests/build-remote.sh
Normal file
|
@ -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
|
|
@ -12,7 +12,8 @@ nix_tests = \
|
||||||
binary-cache.sh nix-profile.sh repair.sh dump-db.sh case-hack.sh \
|
binary-cache.sh nix-profile.sh repair.sh dump-db.sh case-hack.sh \
|
||||||
check-reqs.sh pass-as-file.sh tarball.sh restricted.sh \
|
check-reqs.sh pass-as-file.sh tarball.sh restricted.sh \
|
||||||
placeholders.sh nix-shell.sh \
|
placeholders.sh nix-shell.sh \
|
||||||
linux-sandbox.sh
|
linux-sandbox.sh \
|
||||||
|
build-remote.sh
|
||||||
# parallel.sh
|
# parallel.sh
|
||||||
|
|
||||||
install-tests += $(foreach x, $(nix_tests), tests/$(x))
|
install-tests += $(foreach x, $(nix_tests), tests/$(x))
|
||||||
|
|
Loading…
Reference in a new issue