]> Sergey Matveev's repositories - btrtrc.git/blobdiff - fs/test.sh
Handle torrentfs failure in test.sh
[btrtrc.git] / fs / test.sh
index 5171204193390fa92e6a00af5edb0ec9b6e07101..5374ed86b6a89a615c9e6a5fb109223400c6e5a8 100755 (executable)
@@ -1,7 +1,37 @@
-mkdir mnt torrents
-GOPPROF=http godo github.com/anacrolix/torrent/cmd/torrentfs -mountDir mnt -torrentPath torrents &
-cd torrents
-wget http://releases.ubuntu.com/14.04.2/ubuntu-14.04.2-desktop-amd64.iso.torrent
-cd ..
-ls mnt
-pv mnt/ubuntu-14.04.2-desktop-amd64.iso | md5sum
+#!/usr/bin/env bash
+echo $BASH_VERSION
+set -eux
+repopath="$(cd "$(dirname "$0")/.."; pwd)"
+debian_file=debian-10.8.0-amd64-netinst.iso
+mkdir -p mnt torrents
+# I think the timing can cause torrents to not get added correctly to the torrentfs client, so add
+# them first and start the fs afterwards.
+pushd torrents
+cp "$repopath/testdata/$debian_file.torrent" .
+godo -v -- "$repopath/cmd/torrent" metainfo "$repopath/testdata/sintel.torrent" magnet > sintel.magnet
+popd
+#file="$debian_file"
+file=Sintel/Sintel.mp4
+
+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 ) &
+check_file_pid=$!
+
+trap "kill $torrentfs_pid $check_file_pid" EXIT
+wait -n
+status=$?
+sudo umount mnt
+trap - EXIT
+echo "wait returned" $status
+exit $status