mirror of
https://github.com/privatevoid-net/nix-super.git
synced 2025-01-19 17:46:46 +02:00
Adopt GC test for local-overlay store
Doesn't yet pass. Fixes are needed.
This commit is contained in:
parent
0e595a52a3
commit
3731208dc1
3 changed files with 63 additions and 0 deletions
57
tests/overlay-local-store/gc-inner.sh
Normal file
57
tests/overlay-local-store/gc-inner.sh
Normal file
|
@ -0,0 +1,57 @@
|
|||
#!/usr/bin/env bash
|
||||
|
||||
set -eu -o pipefail
|
||||
|
||||
source common.sh
|
||||
|
||||
# Avoid store dir being inside sandbox build-dir
|
||||
unset NIX_STORE_DIR
|
||||
unset NIX_STATE_DIR
|
||||
|
||||
storeDirs
|
||||
|
||||
initLowerStore
|
||||
|
||||
mountOverlayfs
|
||||
|
||||
export NIX_REMOTE="$storeB"
|
||||
stateB="$storeBRoot/nix/var/nix"
|
||||
outPath=$(nix-build ../hermetic.nix --no-out-link --arg busybox "$busybox" --arg seed 2)
|
||||
|
||||
# Set a GC root.
|
||||
mkdir -p "$stateB"
|
||||
rm -f "$stateB"/gcroots/foo
|
||||
ln -sf $outPath "$stateB"/gcroots/foo
|
||||
|
||||
[ "$(nix-store -q --roots $outPath)" = "$stateB/gcroots/foo -> $outPath" ]
|
||||
|
||||
nix-store --gc --print-roots | grep $outPath
|
||||
nix-store --gc --print-live | grep $outPath
|
||||
if nix-store --gc --print-dead | grep -E $outPath$; then false; fi
|
||||
|
||||
nix-store --gc --print-dead
|
||||
|
||||
expect 1 nix-store --delete $outPath
|
||||
test -e "$storeBRoot/$outPath"
|
||||
|
||||
shopt -s nullglob
|
||||
for i in $storeBRoot/*; do
|
||||
if [[ $i =~ /trash ]]; then continue; fi # compat with old daemon
|
||||
touch $i.lock
|
||||
touch $i.chroot
|
||||
done
|
||||
|
||||
nix-collect-garbage
|
||||
|
||||
# Check that the root and its dependencies haven't been deleted.
|
||||
cat "$storeBRoot/$outPath"
|
||||
|
||||
rm "$stateB"/gcroots/foo
|
||||
|
||||
nix-collect-garbage
|
||||
|
||||
# Check that the output has been GC'd.
|
||||
test ! -e $outPath
|
||||
|
||||
# Check that the store is empty.
|
||||
[ "$(ls -1 "$storeBTop" | wc -l)" = "0" ]
|
5
tests/overlay-local-store/gc.sh
Executable file
5
tests/overlay-local-store/gc.sh
Executable file
|
@ -0,0 +1,5 @@
|
|||
source common.sh
|
||||
|
||||
requireEnvironment
|
||||
setupConfig
|
||||
execUnshare ./gc-inner.sh
|
|
@ -4,6 +4,7 @@ overlay-local-store-tests := \
|
|||
$(d)/build.sh \
|
||||
$(d)/bad-uris.sh \
|
||||
$(d)/add-lower.sh \
|
||||
$(d)/gc.sh \
|
||||
$(d)/verify.sh \
|
||||
$(d)/optimise.sh
|
||||
|
||||
|
|
Loading…
Reference in a new issue