]> Sergey Matveev's repositories - btrtrc.git/commitdiff
fs/test.sh: Handle torrentfs failures synchronously
authorMatt Joiner <anacrolix@gmail.com>
Sun, 28 May 2023 03:52:50 +0000 (13:52 +1000)
committerMatt Joiner <anacrolix@gmail.com>
Sun, 28 May 2023 03:52:50 +0000 (13:52 +1000)
fs/test.sh

index 93bfbdc52e52b5f84ef6ef29a99fda36949605dc..abae61a4a50fc96ec49a2a7009a258fafea4a15d 100755 (executable)
@@ -1,3 +1,5 @@
+#!/usr/bin/env bash
+echo $BASH_VERSION
 set -eux
 repopath="$(cd "$(dirname "$0")/.."; pwd)"
 debian_file=debian-10.8.0-amd64-netinst.iso
@@ -8,13 +10,26 @@ pushd torrents
 cp "$repopath/testdata/$debian_file.torrent" .
 godo -v -- "$repopath/cmd/torrent" metainfo "$repopath/testdata/sintel.torrent" magnet > sintel.magnet
 popd
-GOPPROF=http godo -v -- "$repopath/fs/cmd/torrentfs" -mountDir=mnt -metainfoDir=torrents &
-trap 'set +e; sudo umount -f mnt' EXIT
 #file="$debian_file"
 file=Sintel/Sintel.mp4
-while [ ! -e "mnt/$file" ]; do sleep 1; done
-pv -f "mnt/$file" | md5sum -c <(cat <<EOF
-083e808d56aa7b146f513b3458658292  -
-EOF)
+
+GOPPROF=http godo -v -- "$repopath/fs/cmd/torrentfs" -mountDir=mnt -metainfoDir=torrents &
+torrentfs_pid=$!
+trap "kill $torrentfs_pid" EXIT
+
+check_file() {
+       while [ ! -e "mnt/$file" ]; do sleep 1; done
+       pv -f "mnt/$file" | md5sum -c <(cat <<-EOF
+       083e808d56aa7b146f513b3458658292  -
+       EOF
+       )
+}
+
+( check_file ) &
+
+wait -n
+status=$?
 sudo umount mnt
-wait || echo "wait returned" $?
+trap - EXIT
+echo "wait returned" $status
+exit $status