mirror of
https://github.com/NixOS/nix.git
synced 2025-11-28 05:00:58 +01:00
When `NIX_DAEMON_PACKAGE` is set, make all the tests use the Nix daemon.
That way we can test every piece of Nix functionality both with and
without the daemon.
Tests for which using the daemon isn’t possible or doesn’t make sens can
selectively be disabled with `needLocalStore`
(cherry picked from commit addacfce4a)
72 lines
1.5 KiB
Bash
72 lines
1.5 KiB
Bash
source common.sh
|
|
|
|
needLocalStore "“min-free” and “max-free” are daemon options"
|
|
|
|
clearStore
|
|
|
|
garbage1=$(nix add-to-store --name garbage1 ./nar-access.sh)
|
|
garbage2=$(nix add-to-store --name garbage2 ./nar-access.sh)
|
|
garbage3=$(nix add-to-store --name garbage3 ./nar-access.sh)
|
|
|
|
ls -l $garbage3
|
|
POSIXLY_CORRECT=1 du $garbage3
|
|
|
|
fake_free=$TEST_ROOT/fake-free
|
|
export _NIX_TEST_FREE_SPACE_FILE=$fake_free
|
|
echo 1100 > $fake_free
|
|
|
|
expr=$(cat <<EOF
|
|
with import ./config.nix; mkDerivation {
|
|
name = "gc-A";
|
|
buildCommand = ''
|
|
set -x
|
|
[[ \$(ls \$NIX_STORE/*-garbage? | wc -l) = 3 ]]
|
|
mkdir \$out
|
|
echo foo > \$out/bar
|
|
echo 1...
|
|
sleep 2
|
|
echo 200 > ${fake_free}.tmp1
|
|
mv ${fake_free}.tmp1 $fake_free
|
|
echo 2...
|
|
sleep 2
|
|
echo 3...
|
|
sleep 2
|
|
echo 4...
|
|
[[ \$(ls \$NIX_STORE/*-garbage? | wc -l) = 1 ]]
|
|
'';
|
|
}
|
|
EOF
|
|
)
|
|
|
|
expr2=$(cat <<EOF
|
|
with import ./config.nix; mkDerivation {
|
|
name = "gc-B";
|
|
buildCommand = ''
|
|
set -x
|
|
mkdir \$out
|
|
echo foo > \$out/bar
|
|
echo 1...
|
|
sleep 2
|
|
echo 200 > ${fake_free}.tmp2
|
|
mv ${fake_free}.tmp2 $fake_free
|
|
echo 2...
|
|
sleep 2
|
|
echo 3...
|
|
sleep 2
|
|
echo 4...
|
|
'';
|
|
}
|
|
EOF
|
|
)
|
|
|
|
nix build -v -o $TEST_ROOT/result-A -L "($expr)" \
|
|
--min-free 1000 --max-free 2000 --min-free-check-interval 1 &
|
|
pid=$!
|
|
|
|
nix build -v -o $TEST_ROOT/result-B -L "($expr2)" \
|
|
--min-free 1000 --max-free 2000 --min-free-check-interval 1
|
|
|
|
wait "$pid"
|
|
|
|
[[ foo = $(cat $TEST_ROOT/result-A/bar) ]]
|
|
[[ foo = $(cat $TEST_ROOT/result-B/bar) ]]
|