#!/bin/sh

set -e
set -u

COLL_PATH=by_id/4fce132bc4ae9b4cc844115246a6bd41+175

set -- --disable-event-listening --ram-cache \
    --mount-tmp=tmp --mount-by-pdh=by_id --mount-by-id=by_uuid \
    "$@" mnt

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

RUN=0
cd "$(mktemp --directory --tmpdir="$XDG_RUNTIME_DIR" MountTest.XXXXXX)"
mkdir mnt
arv-mount "$@" || fail 11 "arv-mount #$RUN exited $?"
sha256sum "mnt/$COLL_PATH"/* >SHA256SUMS || fail 12 "generating SHA256SUMS exited $?"
if ! [ -s SHA256SUMS ]; then
    fail 12 "no SHA256SUMS generated (missing/empty file)"
fi
fusermount -u mnt || fail 13 "fusermount #$RUN exited $?"

while [ "$RUN" -lt 1000 ]; do
    RUN=$(( $RUN + 1 ))
    printf "\rRun #$RUN at $(date --rfc-3339=seconds)..." >&2
    arv-mount "$@" || fail 16 "arv-mount #$RUN exited $?"
    sha256sum --quiet --check SHA256SUMS || fail 17 "sha256sum check #$RUN exited $?"
    fusermount -u mnt || fail 18 "fusermount #$RUN exited $?"
done
printf "\nSuccess.\n" >&2
