Add retry mechanism for speed test in runtest.sh and update settings for max retries and delay
This commit is contained in:
parent
9d446b6353
commit
0eab8a0bfa
2 changed files with 36 additions and 3 deletions
36
runtest.sh
36
runtest.sh
|
@ -67,8 +67,29 @@ while [ "$COUNTER" -lt "$NUM_TESTS" ]; do
|
||||||
link_level_noise=$(awk 'NR==3 {gsub(/\./, "", $3); gsub(/\./, "", $4); gsub(/\./, "", $5); print $3","$4","$5}' /proc/net/wireless)
|
link_level_noise=$(awk 'NR==3 {gsub(/\./, "", $3); gsub(/\./, "", $4); gsub(/\./, "", $5); print $3","$4","$5}' /proc/net/wireless)
|
||||||
bssid_and_bitrate=$(iw dev $INTERFACE link | awk '/Connected/ {bssid=$3} /tx bitrate/ {tx=$3} /rx bitrate/ {rx=$3} END {print bssid","tx","rx}')
|
bssid_and_bitrate=$(iw dev $INTERFACE link | awk '/Connected/ {bssid=$3} /tx bitrate/ {tx=$3} /rx bitrate/ {rx=$3} END {print bssid","tx","rx}')
|
||||||
|
|
||||||
# Speed test
|
speed_results=""
|
||||||
speed_results=$(speedtest --secure --csv)
|
for ((retry=1; retry<=MAX_RETRIES; retry++)); do
|
||||||
|
echo " Attempting speed test (try $retry)..."
|
||||||
|
speed_results=$(speedtest --secure --csv 2>/dev/null)
|
||||||
|
|
||||||
|
if [[ -n "$speed_results" ]]; then
|
||||||
|
break
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo " [!] Speedtest failed at $(date -Iseconds). Retrying in $RETRY_DELAY seconds..."
|
||||||
|
sleep $RETRY_DELAY
|
||||||
|
done
|
||||||
|
|
||||||
|
if [[ -z "$speed_results" ]]; then
|
||||||
|
TIMESTAMP=$(date -Iseconds)
|
||||||
|
echo " [!] Speedtest permanently failed at $TIMESTAMP. Skipping sample $i of test $COUNTER."
|
||||||
|
|
||||||
|
# Optionally log failure to a sidecar file for later nerd rage
|
||||||
|
echo "$TIMESTAMP,Test $COUNTER,Sample $i" >> "${TEST_FILE%.csv}-failures.log"
|
||||||
|
|
||||||
|
continue # Skip this sample
|
||||||
|
fi
|
||||||
|
|
||||||
|
|
||||||
# TX failure delta
|
# TX failure delta
|
||||||
FAILED_NOW=$(get_tx_failed)
|
FAILED_NOW=$(get_tx_failed)
|
||||||
|
@ -110,8 +131,17 @@ fi
|
||||||
|
|
||||||
python3 $SCRIPT_DIRECTORY/enrich.py --csv $TEST_FILE --pcapng "$KISMET_LOG" --output "$ENRICHED_FILE"
|
python3 $SCRIPT_DIRECTORY/enrich.py --csv $TEST_FILE --pcapng "$KISMET_LOG" --output "$ENRICHED_FILE"
|
||||||
|
|
||||||
|
ATTACHMENTS="$ENRICHED_FILE"
|
||||||
|
|
||||||
|
# Check if a failure log exists and add it to the attachments
|
||||||
|
FAILURE_LOG="${TEST_FILE%.csv}-failures.log"
|
||||||
|
if [ -f "$FAILURE_LOG" ]; then
|
||||||
|
ATTACHMENTS="$ATTACHMENTS -a $FAILURE_LOG"
|
||||||
|
echo "[+] Attaching failure log: $FAILURE_LOG"
|
||||||
|
fi
|
||||||
|
|
||||||
# Final email with attachment
|
# Final email with attachment
|
||||||
echo "The test with UID ${BOOT_ID} is complete. Please collect the probe. Data is attached." | \
|
echo "The test with UID ${BOOT_ID} is complete. Please collect the probe. Data is attached." | \
|
||||||
mutt -s "Test ${BOOT_ID} Complete" -a "$ENRICHED_FILE" -- "$RECIPIENT"
|
mutt -s "Test ${BOOT_ID} Complete" $ATTACHMENTS -- "$RECIPIENT"
|
||||||
|
|
||||||
sudo kill $SUDO_KEEPALIVE_PID
|
sudo kill $SUDO_KEEPALIVE_PID
|
||||||
|
|
|
@ -13,4 +13,7 @@ INTERFACE=wlan0
|
||||||
PING_COUNT=25
|
PING_COUNT=25
|
||||||
PING_TARGET=1.1.1.1
|
PING_TARGET=1.1.1.1
|
||||||
|
|
||||||
|
MAX_RETRIES=5
|
||||||
|
RETRY_DELAY=10 # seconds
|
||||||
|
|
||||||
RECIPIENT=
|
RECIPIENT=
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue