1
0
Fork 0
mirror of https://github.com/NixOS/nix synced 2024-09-19 23:03:53 -04:00
nix/tests/overlay-local-store/inner.sh

62 lines
1.6 KiB
Bash
Raw Normal View History

2023-03-16 23:00:14 -04:00
#!/usr/bin/env bash
set -eu -o pipefail
set -x
source common.sh
export NIX_CONFIG='build-users-group = '
# Creating testing directories
storeA="$TEST_ROOT/store_a"
2023-05-08 14:47:39 -04:00
storeB="local-overlay?root=$TEST_ROOT/store_b&lower-store=$TEST_ROOT/merged-store"
2023-03-16 23:00:14 -04:00
storeBTop="$TEST_ROOT/store_b"
mkdir -p "$TEST_ROOT"/{store_a,store_b,merged-store,workdir}
# Mounting Overlay Store
2023-05-08 14:47:39 -04:00
## Restore normal, because we are using these chroot stores
#NIX_STORE_DIR=/nix/store
2023-03-16 23:00:14 -04:00
nix-store --store "$TEST_ROOT/store_a" --add dummy
nix-store --store "$TEST_ROOT/store_b" --add dummy
mount -t overlay overlay \
-o lowerdir="$TEST_ROOT/store_a/nix/store" \
-o upperdir="$TEST_ROOT/store_b/nix/store" \
-o workdir="$TEST_ROOT/workdir" \
"$TEST_ROOT/merged-store" || skipTest "overlayfs is not supported"
2023-05-08 14:47:39 -04:00
# Add in lower
NIX_REMOTE=$storeA source add.sh
# Add in layered
NIX_REMOTE=$storeB source add.sh
#busyboxExpr="\"\${$(dirname "$busybox")}/$(basename "$busybox")\""
path_a=$(nix-build ./hermetic.nix --arg busybox "$busybox" --store "$storeA")
2023-03-16 23:00:14 -04:00
# Checking for Path in store_a
stat "$TEST_ROOT/store_a/$path_a"
# Checking for Path in store_b
expect 1 stat "$TEST_ROOT/store_b/$path_a"
# Checking for Path in merged-store
ls "$TEST_ROOT/merged-store/$(echo "$path_a" | sed 's|/nix/store/||g')"
# Verifying path in store_a
nix-store --verify-path --store "$storeA" "$path_a"
# Verifiying path in merged-store (Should fail)
expect 1 nix-store --verify-path --store "$storeB" "$path_a"
# Verifying path in store_b (Should fail)
expect 1 nix-store --verify-path --store "$storeBTop" "$path_a"
2023-05-08 14:47:39 -04:00
path_b=$(nix-build ./hermetic.nix --arg busybox $busybox --store "$storeB")