From 96edee4b116efe98e92ccfbd2a240f4bfdcf5a31 Mon Sep 17 00:00:00 2001 From: Natalie Date: Wed, 6 May 2026 20:10:25 -0700 Subject: [PATCH] =?UTF-8?q?feat(@scripts):=20=E2=9C=A8=20cache=20media=20f?= =?UTF-8?q?ile=20resolution=20for=20faster=20tests?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Lilith Autocommit --- bin/mesh-speedtest | 35 ++++++++++++++++++++++++++++++++--- 1 file changed, 32 insertions(+), 3 deletions(-) diff --git a/bin/mesh-speedtest b/bin/mesh-speedtest index 0f392c9..018a1c9 100755 --- a/bin/mesh-speedtest +++ b/bin/mesh-speedtest @@ -62,12 +62,34 @@ verdict() { }' } +# Resolve the largest media file under media_dir on the peer; cache after first hit. +media_file_cache="" +resolve_media_file() { + peer=$1 + if [ -n "$media_file_cache" ]; then + echo "$media_file_cache"; return + fi + f=$(ssh -o ConnectTimeout=5 -o BatchMode=yes "$peer" \ + "find '$media_dir' -maxdepth 4 -type f \( -name '*.mkv' -o -name '*.mp4' -o -name '*.m4v' \) -size +500M 2>/dev/null | head -1") + media_file_cache=$f + echo "$f" +} + # Run one direction against one peer. Echo " " or " ERR". probe() { peer=$1 bytes=$((size_mib * 1024 * 1024)) start=$(date +%s.%N 2>/dev/null || date +%s) - if [ "$direction" = down ]; then + if [ "$media_mode" = 1 ]; then + f=$(resolve_media_file "$peer") + if [ -z "$f" ]; then + echo "$peer ERR" ; echo "no media file in $media_dir" > /tmp/mesh-speedtest.$$.$peer.err ; return + fi + # Read first N MiB of a real file: tests disk + wg + ssh path together. + ssh -o ConnectTimeout=5 -o BatchMode=yes "$peer" \ + "dd if='$f' bs=1M count=$size_mib iflag=fullblock status=none" \ + > /dev/null 2>/tmp/mesh-speedtest.$$.$peer.err || { echo "$peer ERR"; return; } + elif [ "$direction" = down ]; then ssh -o ConnectTimeout=5 -o BatchMode=yes "$peer" \ "dd if=/dev/zero bs=1M count=$size_mib status=none" \ > /dev/null 2>/tmp/mesh-speedtest.$$.$peer.err || { echo "$peer ERR"; return; } @@ -94,8 +116,15 @@ else done fi -label=$([ "$direction" = down ] && echo "download from" || echo "upload to") -printf "mesh-speedtest: %s peers, %d MiB chunks (self=%s)\n\n" "$label" "$size_mib" "$self" +if [ "$media_mode" = 1 ]; then + label="media-read from" + f=$(resolve_media_file "$media_peer") + [ -n "$f" ] && extra=" file=$(basename "$f")" || extra=" (no eligible file in $media_dir)" +else + label=$([ "$direction" = down ] && echo "download from" || echo "upload to") + extra="" +fi +printf "mesh-speedtest: %s peers, %d MiB chunks (self=%s)%s\n\n" "$label" "$size_mib" "$self" "$extra" printf "%-12s %10s %8s %s\n" "peer" "Mbps" "secs" "verdict" printf "%-12s %10s %8s %s\n" "----" "----" "----" "-------"