Project

General

Profile

Bug #23136 » MountTest.sh

try to reproduce using clean disk cache on each run (succeeded) - Brett Smith, 09/03/2025 02:54 AM

 
#!/bin/sh

set -e
set -u

COLL_PATH=by_id/4fce132bc4ae9b4cc844115246a6bd41+175

fail() {
echo "ERROR: ${2:-failed}" >&2
exit "${1:-9}"
}

cd "$(mktemp --directory --tmpdir="$XDG_RUNTIME_DIR" MountTest-XXXXXXXX)"
mkdir mnt
UNIT_PATH="../systemd/transient/$(basename "$PWD").service"
MOUNT_SVC="$(basename "$UNIT_PATH")"
mkdir -p "$(dirname "$UNIT_PATH")"
cat >"$UNIT_PATH" <<EOF
[Service]
# --storage-classes default
Type=simple
WorkingDirectory=$PWD
CacheDirectory=%n
ExecStartPre=/usr/bin/find %C/%n -mindepth 1 -delete
ExecStart=$(command -v arv-mount) --foreground --read-write --crunchstat-interval=10 --allow-other --disk-cache --disk-cache-dir %C/%n --file-cache 2147483648 --mount-tmp tmp0 --mount-by-pdh by_id --disable-event-listening --mount-by-id by_uuid mnt
ExecStop=$(command -v fusermount) -u mnt
StandardOutput=append:$PWD/arv-mount.out.log
StandardError=append:$PWD/arv-mount.err.log
EOF
systemctl --user daemon-reload

RUN=0
systemctl --user start "$MOUNT_SVC"
while ! [ -d mnt/tmp0 ]; do sleep .25s; done
sha256sum "mnt/$COLL_PATH"/* |
sed -r 's@ mnt/@ @' >SHA256SUMS ||
fail 12 "generating SHA256SUMS exited $?"
if ! [ -s SHA256SUMS ]; then
fail 12 "no SHA256SUMS generated (missing/empty file)"
fi
cat -A SHA256SUMS
systemctl --user stop "$MOUNT_SVC"

while [ "$RUN" -lt 2500 ]; do
RUN=$(( $RUN + 1 ))
printf "\rRun #$RUN at $(date --rfc-3339=seconds)... " >&2
systemctl --user start "$MOUNT_SVC"
while ! [ -d mnt/tmp0 ]; do sleep .25s; done
docker run --interactive --rm \
--attach stdin \
--mount type=bind,src="$PWD/mnt",dst=/keep \
--workdir /keep \
debian:bookworm-slim \
sha256sum --check --strict --quiet - <SHA256SUMS ||
fail 17 "Docker sha256 check #$RUN exited $?"
systemctl --user stop "$MOUNT_SVC"
done
printf "\nSuccess.\n" >&2
(3-3/12)