+#!/usr/bin/env bash
+echo $BASH_VERSION
set -eux
repopath="$(cd "$(dirname "$0")/.."; pwd)"
-mkdir -p mnt torrents
-GOPPROF=http godo -v "$repopath/cmd/torrentfs" -mountDir=mnt -metainfoDir=torrents &> log &
-trap 'set +e; sudo umount -f mnt' EXIT
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" .
-echo 'magnet:?xt=urn:btih:6a9759bffd5c0af65319979fb7832189f4f3c35d&dn=sintel.mp4' > sintel.magnet
+godo -v -- "$repopath/cmd/torrent" metainfo "$repopath/testdata/sintel.torrent" magnet > sintel.magnet
popd
-file="$debian_file"
-# file=sintel.mp4
-while [ ! -e "mnt/$file" ]; do sleep 1; done
-pv "mnt/$file" | md5sum
-# expect e221f43f4fdd409250908fc4305727d4
+#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 ) &
+
+wait -n
+status=$?
sudo umount mnt
-wait || echo "wait returned" $?
+trap - EXIT
+echo "wait returned" $status
+exit $status