From 8f36942576648885dc2c04f1e2cdac6e67f1052b Mon Sep 17 00:00:00 2001 From: Yaro Kasear Date: Wed, 7 May 2025 09:56:46 -0500 Subject: [PATCH 1/5] Add specific server options to speedtest command for improved accuracy --- runtest.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runtest.sh b/runtest.sh index 49de54a..ea4824c 100755 --- a/runtest.sh +++ b/runtest.sh @@ -219,7 +219,7 @@ for ((COUNTER = 1; COUNTER <= NUM_TESTS; COUNTER++)); do for ((retry = 1; retry <= MAX_RETRIES; retry++)); do SECONDS=0 log "Speed test attempt $retry" - speed_results=$(speedtest --secure --csv 2>/dev/null || true) + speed_results=$(speedtest --secure --csv --server 57444 --server 16797 --server 40818 --server 24079 --server 55661 2>/dev/null || true) speedtest_duration=$SECONDS [[ -n "$speed_results" ]] && break warn "Speedtest failed. Retrying in $RETRY_DELAY seconds..." From 594ce01b1993b556f7ee12b7efd4045c466520cb Mon Sep 17 00:00:00 2001 From: Yaro Kasear Date: Wed, 7 May 2025 10:34:24 -0500 Subject: [PATCH 2/5] Refactor speedtest command to use a variable for header extraction and simplify server options for improved readability --- runtest.sh | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/runtest.sh b/runtest.sh index ea4824c..08171c6 100755 --- a/runtest.sh +++ b/runtest.sh @@ -152,8 +152,11 @@ echo -e "Subject: Test ${BOOT_ID} Started\n\nTest ${BOOT_ID} has commenced." | m FAILED_START=$(get_tx_failed) +DUMMY_SPEEDTEST=$(speedtest --format=csv --output-header) +SPEEDTEST_HEADER=$(echo "$DUMMY_SPEEDTEST" | head -n 1) + # CSV setup -TEST_HEADER="StartTimestamp,EndTimestamp,Link,Level,Noise,BSSID,TX Bitrate,RX Bitrate,$(speedtest --csv-header),TX Failures,Channel,Frequency,Packet Loss,Jitter,LocalTCPUp,LocalTCPDown,LocalUDPUp,LocalUDPDown,RemoteTCPUp,RemoteTCPDown,RemoteUDPUp,RemoteUDPDown" +TEST_HEADER="StartTimestamp,EndTimestamp,Link,Level,Noise,BSSID,TX Bitrate,RX Bitrate,$(SPEEDTEST_HEADER),TX Failures,Channel,Frequency,Packet Loss,Jitter,LocalTCPUp,LocalTCPDown,LocalUDPUp,LocalUDPDown,RemoteTCPUp,RemoteTCPDown,RemoteUDPUp,RemoteUDPDown" LISTENER_HEADER="Timestamp,ClientsOnAP,ClientsOnChannel,APsOnChannel,AvgAPSignal,StrongestAPSignal,UnlinkedDevices,NumberofBSSIDsOnSSID,AvgSSIDSignal,MaxSSIDSignal,NumberofChannelsOnSSID,PacketCount,Deadpoints" echo "Speedtest,LocalTCPUp,LocalTCPDown,LocalUDPUp,LocalUDPDown,RemoteTCPUp,RemoteTCPDown,RemoteUDPUp,RemoteUDPDown" >"${TEST_FILE}_durations.csv" @@ -219,7 +222,8 @@ for ((COUNTER = 1; COUNTER <= NUM_TESTS; COUNTER++)); do for ((retry = 1; retry <= MAX_RETRIES; retry++)); do SECONDS=0 log "Speed test attempt $retry" - speed_results=$(speedtest --secure --csv --server 57444 --server 16797 --server 40818 --server 24079 --server 55661 2>/dev/null || true) + # speed_results=$(speedtest --secure --csv --server 57444 --server 16797 --server 40818 --server 24079 --server 55661 2>/dev/null || true) + speed_results=$(speedtest --format=csv 2>/dev/null || true) speedtest_duration=$SECONDS [[ -n "$speed_results" ]] && break warn "Speedtest failed. Retrying in $RETRY_DELAY seconds..." From 91599e1ffe26db05412cb1351c5a4086b15d1913 Mon Sep 17 00:00:00 2001 From: Yaro Kasear Date: Wed, 7 May 2025 10:41:40 -0500 Subject: [PATCH 3/5] Fix variable expansion in TEST_HEADER for correct CSV formatting --- runtest.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runtest.sh b/runtest.sh index 08171c6..e58d2c9 100755 --- a/runtest.sh +++ b/runtest.sh @@ -156,7 +156,7 @@ DUMMY_SPEEDTEST=$(speedtest --format=csv --output-header) SPEEDTEST_HEADER=$(echo "$DUMMY_SPEEDTEST" | head -n 1) # CSV setup -TEST_HEADER="StartTimestamp,EndTimestamp,Link,Level,Noise,BSSID,TX Bitrate,RX Bitrate,$(SPEEDTEST_HEADER),TX Failures,Channel,Frequency,Packet Loss,Jitter,LocalTCPUp,LocalTCPDown,LocalUDPUp,LocalUDPDown,RemoteTCPUp,RemoteTCPDown,RemoteUDPUp,RemoteUDPDown" +TEST_HEADER="StartTimestamp,EndTimestamp,Link,Level,Noise,BSSID,TX Bitrate,RX Bitrate,${SPEEDTEST_HEADER},TX Failures,Channel,Frequency,Packet Loss,Jitter,LocalTCPUp,LocalTCPDown,LocalUDPUp,LocalUDPDown,RemoteTCPUp,RemoteTCPDown,RemoteUDPUp,RemoteUDPDown" LISTENER_HEADER="Timestamp,ClientsOnAP,ClientsOnChannel,APsOnChannel,AvgAPSignal,StrongestAPSignal,UnlinkedDevices,NumberofBSSIDsOnSSID,AvgSSIDSignal,MaxSSIDSignal,NumberofChannelsOnSSID,PacketCount,Deadpoints" echo "Speedtest,LocalTCPUp,LocalTCPDown,LocalUDPUp,LocalUDPDown,RemoteTCPUp,RemoteTCPDown,RemoteUDPUp,RemoteUDPDown" >"${TEST_FILE}_durations.csv" From f2df8f3efa70af1d430afd6bc203528ba56f36d0 Mon Sep 17 00:00:00 2001 From: Yaro Kasear Date: Wed, 7 May 2025 14:05:03 -0500 Subject: [PATCH 4/5] Update log message to reflect correct sample count in listener launch --- runtest.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/runtest.sh b/runtest.sh index 49de54a..3691e33 100755 --- a/runtest.sh +++ b/runtest.sh @@ -174,7 +174,7 @@ for ((COUNTER = 1; COUNTER <= NUM_TESTS; COUNTER++)); do if [ "$LISTENER_ENABLED" -eq 1 ]; then LISTENER_SAMPLE_FILE="${TEST_FILE%.csv}-listener-$COUNTER-$i.csv" - log "Launching listener for sample $i/$NUM_TESTS..." + log "Launching listener for sample $i/$NUM_SAMPLES..." READY_FILE="/tmp/listener_ready_${COUNTER}_${i}" From 05ce0e2ee6b02a8a0a49b2ef9c3689c3cc8a4ea2 Mon Sep 17 00:00:00 2001 From: Yaro Kasear Date: Thu, 8 May 2025 10:26:38 -0500 Subject: [PATCH 5/5] Improve listener initialization timeout handling with warning log --- runtest.sh | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/runtest.sh b/runtest.sh index 3691e33..7d756ad 100755 --- a/runtest.sh +++ b/runtest.sh @@ -195,8 +195,18 @@ for ((COUNTER = 1; COUNTER <= NUM_TESTS; COUNTER++)); do "${ADAPTIVE_ARGS[@]}" > >(tee "$READY_FILE") & LISTENER_PID=$! - # Wait for the READY_FILE to contain "LISTENING_STARTED" - bash -c "until grep -q LISTENING_STARTED $READY_FILE; do sleep 0.2; done" + # Wait up to 10 seconds for LISTENING_STARTED + log "Waiting for listener to initialize (timeout in 10s)..." + for ((j = 0; j < 50; j++)); do + if grep -q LISTENING_STARTED "$READY_FILE"; then + break + fi + sleep 0.2 + done + + if ! grep -q LISTENING_STARTED "$READY_FILE"; then + warn "Listener did not start properly (LISTENING_STARTED not found in time). Proceeding without it." + fi fi log " Sample $i of $NUM_SAMPLES"