From 7cc7e36894e8b63e00f228dc076d78a83afb65dd Mon Sep 17 00:00:00 2001 From: Igor Pecovnik Date: Sun, 22 Mar 2020 22:14:35 +0100 Subject: [PATCH] Lots of small fixes. --- .gitignore | 1 + go.sh | 25 +++++---- init/0000-armbian-first-login.bash | 8 ++- lib/functions.sh | 55 +++++++++++++++++-- tests/0000-read-board-data.bash | 2 +- tests/0002-update-and-upgrade.bash | 9 ++- ...08-connect-wireless-devices-on-2.4Ghz.bash | 18 +++--- tests/0013-iperf-on-all-wired-interfaces.bash | 4 +- ...0014-iperf-on-all-wireless-interfaces.bash | 4 +- ...15-connect-wireless-devices-on-5.0Ghz.bash | 22 ++++---- ...0017-iperf-on-all-wireless-interfaces.bash | 4 +- tests/0018-io-tests-memory.bash | 4 +- tests/0019-io-tests-drive.bash | 6 +- tests/0111-bluetoth.bash | 4 +- tests/0115-strong-stressing.bash | 4 +- tests/0116-dvfs.bash | 4 +- tests/0119-7-zip-benchmark.bash.disabled | 2 +- tests/9000-nigtly-stable-switch.bash | 12 ++-- tests/9999-reboot.bash | 6 +- tests/include/iperf-on-all-interfaces.include | 11 ++-- 20 files changed, 127 insertions(+), 78 deletions(-) diff --git a/.gitignore b/.gitignore index a78530a..086988c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ /userconfig /logs +/reports diff --git a/go.sh b/go.sh index b33c47c..9907269 100755 --- a/go.sh +++ b/go.sh @@ -4,16 +4,17 @@ # apt install -y -qq jq expect sshpass nmap &>/dev/null -mkdir -p userconfig logs +mkdir -p userconfig logs reports # create sample configuration if [[ ! -f userconfig/configuration.sh ]]; then cp lib/configuration.sh userconfig/configuration.sh echo "Setup finished. Edit userconfig/configuration.sh and run ./go.sh again!" - exit + exit fi SRC="$(dirname "$(realpath "${BASH_SOURCE[0]}")")" +REPORT="$(date +%Y%m%d%H%M%S)" source userconfig/configuration.sh source lib/functions.sh @@ -24,7 +25,7 @@ rm -rf logs/* [[ -n $INCLUDE ]] && IFS=', ' read -r -a includearray <<< "$INCLUDE" if [[ -n $SUBNET ]]; then - readarray -t hostarray < <(nmap $HOST_EXCLUDE --open -sn ${SUBNET} | grep "ssh\|Nmap scan report" | grep -v "gateway" | grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}') + readarray -t hostarray < <(nmap $HOST_EXCLUDE --open -sn ${SUBNET} 2> /dev/null | grep "ssh\|Nmap scan report" | grep -v "gateway" | grep -o '[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}') elif [[ -n $HOSTS ]]; then IFS=', ' read -r -a hostarray <<< "$HOSTS" else @@ -46,7 +47,7 @@ table { } -\n" +
CycleBoard
\n" HEADER_MD="|Board|" readarray -t array < <(find $SRC/tests -maxdepth 2 -type f -name '*.bash' | sort) COLOUMB=0 @@ -66,7 +67,7 @@ do [[ $TEST_SKIP != "true" ]] && HEADER_MD+=":-|" done -HEADER_HTML+="\n" +HEADER_HTML+="\n" unset DRY_RUN @@ -81,12 +82,12 @@ for USER_HOST in "${hostarray[@]}"; do for u in "${array[@]}" do . $u - BOARD_NAMES+=("$BOARD_NAME") - BOARD_KERNELS+=("$BOARD_KERNEL") - BOARD_URLS+=("$BOARD_URL") - BOARD_VERSIONS+=("$BOARD_VERSION") - BOARD_DISTRIBUTION_CODENAMES+=("$BOARD_DISTRIBUTION_CODENAME") -# BOARD_PIDS+=("$!"); + # always start with the stock build + if [[ $BOARD_IMAGE_TYPE != stable ]]; then + display_alert "Switch to stable builds" "$(date +%R:%S)" "wrn" + remote_exec "LANG=C armbian-config main=System selection=Stable; reboot" + #sshpass -p ${PASS_ROOT} ssh -t ${USER_ROOT}@${USER_HOST} "LANG=C armbian-config main=System selection=Stable; reboot" &>/dev/null + fi x=$((x+1)) done done @@ -110,4 +111,4 @@ done HEADER_HTML+="
#Board
/
Cycle
Version / distribution
Kernel / variant
Iperf (MBits/s)IO (MBits/s)
Iperf send/receive (MBits/s)IO read/write (MBits/s)
\n" -echo -e $HEADER_HTML >> ${SRC}/logs/report.html +echo -e $HEADER_HTML >> ${SRC}/reports/${REPORT}.html diff --git a/init/0000-armbian-first-login.bash b/init/0000-armbian-first-login.bash index a47edf8..d849794 100755 --- a/init/0000-armbian-first-login.bash +++ b/init/0000-armbian-first-login.bash @@ -3,7 +3,7 @@ source $SRC/lib/functions.sh #display_alert "$(basename $BASH_SOURCE)" "$(date +%R:%S)" "info" -ssh-keygen -qf "/root/.ssh/known_hosts" -R "${USER_HOST}" > /dev/null 2>&1 +ssh-keygen -qf "$HOME/.ssh/known_hosts" -R "${USER_HOST}" > /dev/null 2>&1 sshpass -p 1234 ssh -o "StrictHostKeyChecking=accept-new" ${USER_ROOT}@${USER_HOST} "\x03" &>/dev/null if [[ $? -eq 1 ]]; then # clean keys @@ -45,7 +45,9 @@ if [[ $? -eq 1 ]]; then echo "${MAKE_USER}" >> ${SRC}/logs/${USER_HOST}.log fi -sshpass -p ${PASS_ROOT} ssh ${USER_ROOT}@${USER_HOST} "chsh -s /bin/bash; apt -y purge armbian-config; apt -qq -y install jq stress armbian-config bluez-tools iozone3" &>/dev/null +remote_exec "chsh -s /bin/bash; apt -y purge armbian-config; apt -qq -y install jq stress armbian-config bluez-tools iozone3" &>/dev/null +#sshpass -p ${PASS_ROOT} ssh ${USER_ROOT}@${USER_HOST} "chsh -s /bin/bash; apt -y purge armbian-config; apt -qq -y install jq stress armbian-config bluez-tools iozone3" &>/dev/null get_board_data -display_alert "${x}. $BOARD_NAME $BOARD_KERNEL" "$USER_HOST" "info" +display_alert "${x}. $BOARD_NAME $BOARD_KERNEL $BOARD_IMAGE_TYPE" "$(mask_ip "$USER_HOST")" "info" + diff --git a/lib/functions.sh b/lib/functions.sh index c76cb75..df1fdf3 100644 --- a/lib/functions.sh +++ b/lib/functions.sh @@ -1,21 +1,59 @@ #!/bin/bash +# +# mask_ip +# +# + + +# +# Masking IP prefix address to make report copy/paste ready +# +function mask_ip(){ + + echo $1 | sed -r 's!/.*!!; s!.*\.!!' | awk '{print "###.###.###."$1}' + +} + + + + +# +# Remote execution wrapper +# +function remote_exec(){ + + f=0; + while ! nc -zvw3 $USER_HOST 22 &>/dev/null + do + sleep 1; f=$(( $f + 1 )); [[ $f -gt 5 ]] && return 1 + done + [[ $? -eq 0 ]] && sshpass -p ${PASS_ROOT} ssh ${2} ${USER_ROOT}@${USER_HOST} "${1}" 2> /dev/null + +} + + + +# +# Get board data +# function get_board_data(){ - BOARD_DATA=$(sshpass -p ${PASS_ROOT} ssh ${USER_ROOT}@${USER_HOST} "cat /etc/armbian-release") - BOARD_KERNEL=$(sshpass -p ${PASS_ROOT} ssh ${USER_ROOT}@${USER_HOST} "uname -sr") + BOARD_DATA=$(remote_exec "cat /etc/armbian-release") + BOARD_KERNEL=$(remote_exec "uname -sr") echo -e "$BOARD_DATA" >> ${SRC}/logs/${USER_HOST}.txt 2>&1 BOARD_NAME=$(echo -e "$BOARD_DATA" | grep BOARD_NAME | sed 's/\"//g' | cut -d "=" -f2) BOARD_URL="https://www.armbian.com/"$(echo -e "$BOARD_DATA" | grep BOARD | head -1 | cut -d "=" -f2) BOARD_VERSION=$(echo -e "$BOARD_DATA" | grep VERSION | head -1 | cut -d "=" -f2) BOARD_DISTRIBUTION_CODENAME=$(echo -e "$BOARD_DATA" | grep DISTRIBUTION_CODENAME | head -1 | cut -d "=" -f2) + BOARD_IMAGE_TYPE=$(echo -e "$BOARD_DATA" | grep IMAGE_TYPE | head -1 | cut -d "=" -f2) } function get_device() { local ips=() - sshpass -p ${PASS_ROOT} ssh ${USER_ROOT}@${USER_HOST} ' + remote_exec ' for f in /sys/class/net/*; do intf=$(basename $f) # match only interface names starting with e (Ethernet), br (bridge), w (wireless), r (some Ralink drivers use ra format) @@ -84,16 +122,21 @@ SUM=0 START=$(date +%s) while [ $r -le ${PASSES} ] do -while ! ping -c1 $USER_HOST &>/dev/null; do display_alert "Ping $USER_HOST failed $i" "$(date +%R:%S)" "info"; sleep 2; i=$(( $i + 1 )); [[ $i -gt 5 ]] && return 1;done ; START=$(date +%s); display_alert "Host ${USER_HOST} found" "Run $r out of ${PASSES}" "info"; +while ! ping -c1 $USER_HOST &>/dev/null; do display_alert "Ping $USER_HOST failed $i" "$(date +%R:%S)" "info"; sleep 10; i=$(( $i + 1 )); [[ $i -gt 5 ]] && return 1;done ; START=$(date +%s); echo ""; display_alert "Host $(mask_ip "$USER_HOST") found" "Run $r out of ${PASSES}" "info"; i=1 - nc -zvw3 $USER_HOST 22 &> /dev/null + while ! nc -zvw3 $USER_HOST 22 &>/dev/null + do + sleep 3; f=$(( $f + 1 )); [[ $f -gt 3 ]] && exit 1 + display_alert "Probing SSH port on $USER_HOST" "$(date +%R:%S)" "info" + done if [[ $? -ne 0 ]]; then display_alert "Can't connect. SSH on $USER_HOST is closed" "$(date +%R:%S)" "wrn" else readarray -t array < <(find $SRC/tests -maxdepth 2 -type f -name '*.bash' | sort) + get_board_data HEADER_MD+="\n|$BOARD_NAME|" - HEADER_HTML+="\n$r/${PASSES}${BOARD_NAMES[$x]} ${BOARD_VERSIONS[$x]} ${BOARD_DISTRIBUTION_CODENAMES[$x]}
${BOARD_KERNELS[$x]}" + HEADER_HTML+="\n"$( [[ ${r} -eq 1 ]] && echo "$((x+1))${BOARD_NAME} $(mask_ip "$USER_HOST")")"$r/${PASSES}
$(date +%R:%S)${BOARD_VERSION} (${BOARD_DISTRIBUTION_CODENAME})
${BOARD_KERNEL} ${BOARD_IMAGE_TYPE}" for u in "${array[@]}" do unset TEST_OUTPUT diff --git a/tests/0000-read-board-data.bash b/tests/0000-read-board-data.bash index 69fc58e..caf1e9a 100755 --- a/tests/0000-read-board-data.bash +++ b/tests/0000-read-board-data.bash @@ -7,4 +7,4 @@ TEST_SKIP="true" get_board_data -display_alert "$BOARD_NAME $BOARD_KERNEL" "$USER_HOST" "info" +display_alert "$BOARD_NAME $BOARD_KERNEL" "$(mask_ip "$USER_HOST")" "info" diff --git a/tests/0002-update-and-upgrade.bash b/tests/0002-update-and-upgrade.bash index 79b82af..08b1c90 100755 --- a/tests/0002-update-and-upgrade.bash +++ b/tests/0002-update-and-upgrade.bash @@ -7,8 +7,7 @@ TEST_SKIP="true" display_alert "$(basename $BASH_SOURCE)" "$(date +%R:%S)" "info" - -sshpass -p ${PASS_ROOT} ssh ${USER_ROOT}@${USER_HOST} "LANG=C apt-get -o Dpkg::Options::=\"--force-confold\" -qq -y update &>/dev/null" -PACKAGES=$(sshpass -p ${PASS_ROOT} ssh ${USER_ROOT}@${USER_HOST} "DEBIAN_FRONTEND=noninteractive LANG=C apt-get upgrade -s |grep -P '^\d+ upgraded'|cut -d\" \" -f1") -display_alert "Updating and upgrading ${PACKAGES} packages" "${USER_HOST}" "info" -sshpass -p ${PASS_ROOT} ssh ${USER_ROOT}@${USER_HOST} "DEBIAN_FRONTEND=noninteractive LANG=C apt-get -y upgrade &>/dev/null" +remote_exec "LANG=C apt-get -o Dpkg::Options::=\"--force-confold\" -qq -y update &>/dev/null" +PACKAGES=$(remote_exec "DEBIAN_FRONTEND=noninteractive LANG=C apt-get upgrade -s |grep -P '^\d+ upgraded'|cut -d\" \" -f1") +display_alert "Updating and upgrading" "${PACKAGES} packages" "info" +remote_exec "DEBIAN_FRONTEND=noninteractive LANG=C apt-get -y upgrade &>/dev/null" diff --git a/tests/0008-connect-wireless-devices-on-2.4Ghz.bash b/tests/0008-connect-wireless-devices-on-2.4Ghz.bash index 5ffb8ae..e819180 100755 --- a/tests/0008-connect-wireless-devices-on-2.4Ghz.bash +++ b/tests/0008-connect-wireless-devices-on-2.4Ghz.bash @@ -7,22 +7,22 @@ TEST_ICON="/dev/null" # go down and - sshpass -p ${PASS_ROOT} ssh ${USER_ROOT}@${USER_HOST} "nmcli c del $u &>/dev/null" # delete if previous defined - output=$(sshpass -p ${PASS_ROOT} ssh ${USER_ROOT}@${USER_HOST} "nmcli c add type wifi con-name $u ifname $u ssid ${WLAN_ID_24}") - sshpass -p ${PASS_ROOT} ssh ${USER_ROOT}@${USER_HOST} "nmcli c add type wifi con-name $u ifname $u ssid ${WLAN_ID_24}" >> ${SRC}/logs/${USER_HOST}.txt 2>&1 + remote_exec "nmcli con down $u &>/dev/null" # go down and + remote_exec "nmcli c del $u &>/dev/null" # delete if previous defined + output=$(remote_exec "nmcli c add type wifi con-name $u ifname $u ssid ${WLAN_ID_24}") + remote_exec "nmcli c add type wifi con-name $u ifname $u ssid ${WLAN_ID_24}" >> ${SRC}/logs/${USER_HOST}.txt 2>&1 # retry once just in case - [[ $? -ne 0 ]] && sshpass -p ${PASS_ROOT} ssh ${USER_ROOT}@${USER_HOST} "nmcli c add type wifi con-name $u ifname $u ssid ${WLAN_ID_24}" >> ${SRC}/logs/${USER_HOST}.txt 2>&1 + [[ $? -ne 0 ]] && remote_exec "nmcli c add type wifi con-name $u ifname $u ssid ${WLAN_ID_24}" >> ${SRC}/logs/${USER_HOST}.txt 2>&1 output=$? - sshpass -p ${PASS_ROOT} ssh ${USER_ROOT}@${USER_HOST} "nmcli con modify $u wifi-sec.key-mgmt wpa-psk" >> ${SRC}/logs/${USER_HOST}.txt 2>&1 - sshpass -p ${PASS_ROOT} ssh ${USER_ROOT}@${USER_HOST} "nmcli con modify $u wifi-sec.psk ${WLAN_PASS_24}" >> ${SRC}/logs/${USER_HOST}.txt 2>&1 - sshpass -p ${PASS_ROOT} ssh ${USER_ROOT}@${USER_HOST} "nmcli con up $u" >> ${SRC}/logs/${USER_HOST}.txt 2>&1 + remote_exec "nmcli con modify $u wifi-sec.key-mgmt wpa-psk" >> ${SRC}/logs/${USER_HOST}.txt 2>&1 + remote_exec "nmcli con modify $u wifi-sec.psk ${WLAN_PASS_24}" >> ${SRC}/logs/${USER_HOST}.txt 2>&1 + remote_exec "nmcli con up $u" >> ${SRC}/logs/${USER_HOST}.txt 2>&1 [[ $? -ne 0 && ${output} -eq 0 ]] && display_alert "Can't connect to ${WLAN_ID_24}" "$u" "wrn" done sleep 3 diff --git a/tests/0013-iperf-on-all-wired-interfaces.bash b/tests/0013-iperf-on-all-wired-interfaces.bash index 9575f11..acab74b 100755 --- a/tests/0013-iperf-on-all-wired-interfaces.bash +++ b/tests/0013-iperf-on-all-wired-interfaces.bash @@ -5,9 +5,9 @@ TEST_TITLE="Lan" TEST_ICON="" [[ $DRY_RUN == true ]] && return 0 -display_alert "$(basename $BASH_SOURCE)" "${BOARD_NAMES[$x]} @ ${USER_HOST}" "info" +display_alert "$(basename $BASH_SOURCE)" "$(date +%R:%S)" "info" -sshpass -p ${PASS_ROOT} ssh ${USER_ROOT}@${USER_HOST} "pkill iperf3;iperf3 -Ds --pidfile /var/run/iperf3" +remote_exec "pkill iperf3;iperf3 -Ds --pidfile /var/run/iperf3" readarray -t array < <(get_device "^bond.*|^[e].*|^br.*|^lt.*|^umts.*|^lan.*" "ip") diff --git a/tests/0014-iperf-on-all-wireless-interfaces.bash b/tests/0014-iperf-on-all-wireless-interfaces.bash index eae9a02..104dfb1 100755 --- a/tests/0014-iperf-on-all-wireless-interfaces.bash +++ b/tests/0014-iperf-on-all-wireless-interfaces.bash @@ -5,9 +5,9 @@ TEST_TITLE="2.4Ghz" TEST_ICON="" [[ $DRY_RUN == true ]] && return 0 -display_alert "$(basename $BASH_SOURCE)" "${BOARD_NAMES[$x]} @ ${USER_HOST}" "info" +display_alert "$(basename $BASH_SOURCE)" "$(date +%R:%S)" "info" -sshpass -p ${PASS_ROOT} ssh ${USER_ROOT}@${USER_HOST} "pkill iperf3;iperf3 -Ds --pidfile /var/run/iperf3" +remote_exec "pkill iperf3;iperf3 -Ds --pidfile /var/run/iperf3" readarray -t array < <(get_device "^[wr].*" "ip") diff --git a/tests/0015-connect-wireless-devices-on-5.0Ghz.bash b/tests/0015-connect-wireless-devices-on-5.0Ghz.bash index ab1bbef..b243025 100755 --- a/tests/0015-connect-wireless-devices-on-5.0Ghz.bash +++ b/tests/0015-connect-wireless-devices-on-5.0Ghz.bash @@ -7,26 +7,26 @@ TEST_ICON="/dev/null" # go down and - sshpass -p ${PASS_ROOT} ssh ${USER_ROOT}@${USER_HOST} "nmcli c del $u &>/dev/null" # delete if previous defined - output=$(sshpass -p ${PASS_ROOT} ssh ${USER_ROOT}@${USER_HOST} "nmcli c add type wifi con-name $u ifname $u ssid ${WLAN_ID_50}" >> ${SRC}/logs/${USER_HOST}.txt 2>&1) + remote_exec "nmcli con down $u &>/dev/null" # go down and + remote_exec "nmcli c del $u &>/dev/null" # delete if previous defined + output=$(remote_exec "nmcli c add type wifi con-name $u ifname $u ssid ${WLAN_ID_50}" >> ${SRC}/logs/${USER_HOST}.txt 2>&1) # retry once if it fails - [[ $? -ne 0 ]] && sshpass -p ${PASS_ROOT} ssh ${USER_ROOT}@${USER_HOST} "nmcli c add type wifi con-name $u ifname $u ssid ${WLAN_ID_50}" >> ${SRC}/logs/${USER_HOST}.txt 2>&1 + [[ $? -ne 0 ]] && remote_exec "nmcli c add type wifi con-name $u ifname $u ssid ${WLAN_ID_50}" >> ${SRC}/logs/${USER_HOST}.txt 2>&1 - sshpass -p ${PASS_ROOT} ssh ${USER_ROOT}@${USER_HOST} "nmcli con modify $u wifi-sec.key-mgmt wpa-psk" >> ${SRC}/logs/${USER_HOST}.txt 2>&1 - sshpass -p ${PASS_ROOT} ssh ${USER_ROOT}@${USER_HOST} "nmcli con modify $u wifi-sec.psk ${WLAN_PASS_50}" >> ${SRC}/logs/${USER_HOST}.txt 2>&1 - sshpass -p ${PASS_ROOT} ssh ${USER_ROOT}@${USER_HOST} "nmcli con up $u" >> ${SRC}/logs/${USER_HOST}.txt 2>&1 + remote_exec "nmcli con modify $u wifi-sec.key-mgmt wpa-psk" >> ${SRC}/logs/${USER_HOST}.txt 2>&1 + remote_exec "nmcli con modify $u wifi-sec.psk ${WLAN_PASS_50}" >> ${SRC}/logs/${USER_HOST}.txt 2>&1 + remote_exec "nmcli con up $u" >> ${SRC}/logs/${USER_HOST}.txt 2>&1 if [[ $? -ne 0 ]]; then - sshpass -p ${PASS_ROOT} ssh ${USER_ROOT}@${USER_HOST} "nmcli con down $u" >> ${SRC}/logs/${USER_HOST}.txt 2>&1 - sshpass -p ${PASS_ROOT} ssh ${USER_ROOT}@${USER_HOST} "nmcli c del $u &>/dev/null" # delete if failed - sshpass -p ${PASS_ROOT} ssh ${USER_ROOT}@${USER_HOST} "service network-manager reload" + remote_exec "nmcli con down $u" >> ${SRC}/logs/${USER_HOST}.txt 2>&1 + remote_exec "nmcli c del $u &>/dev/null" # delete if failed + remote_exec "service network-manager reload" [[ -n $(echo "${output}" | grep succesfully) ]] && display_alert "Can't connect to ${WLAN_ID_50}" "$u" "wrn" fi done diff --git a/tests/0017-iperf-on-all-wireless-interfaces.bash b/tests/0017-iperf-on-all-wireless-interfaces.bash index ffaa209..c05cc15 100755 --- a/tests/0017-iperf-on-all-wireless-interfaces.bash +++ b/tests/0017-iperf-on-all-wireless-interfaces.bash @@ -4,9 +4,9 @@ source $SRC/lib/functions.sh TEST_TITLE="5Ghz" [[ $DRY_RUN == true ]] && return 0 -display_alert "$(basename $BASH_SOURCE)" "${BOARD_NAMES[$x]} @ ${USER_HOST}" "info" +display_alert "$(basename $BASH_SOURCE)" "$(date +%R:%S)" "info" -sshpass -p ${PASS_ROOT} ssh ${USER_ROOT}@${USER_HOST} "pkill iperf3;iperf3 -Ds --pidfile /var/run/iperf3" +remote_exec "pkill iperf3;iperf3 -Ds --pidfile /var/run/iperf3" readarray -t array < <(get_device "^[wr].*" "ip") diff --git a/tests/0018-io-tests-memory.bash b/tests/0018-io-tests-memory.bash index d0d0aef..e4407d7 100755 --- a/tests/0018-io-tests-memory.bash +++ b/tests/0018-io-tests-memory.bash @@ -5,8 +5,8 @@ TEST_TITLE="memory" TEST_ICON="" [[ $DRY_RUN == true ]] && return 0 -display_alert "$(basename $BASH_SOURCE)" "${BOARD_NAMES[$x]} @ ${USER_HOST}" "info" -TEMP=$(sshpass -p ${PASS_ROOT} ssh ${USER_ROOT}@${USER_HOST} "cd /tmp; iozone -e -a -s 100M -r 16384k -i 0 -i 1 -i 2 | tail -3 | head -1") +display_alert "$(basename $BASH_SOURCE)" "$(date +%R:%S)" "info" +TEMP=$(remote_exec "cd /tmp; iozone -e -a -s 100M -r 16384k -i 0 -i 1 -i 2 | tail -3 | head -1") READ=$(echo $(echo $TEMP | awk '{print $7}') / 1000 | bc) WRITE=$(echo $(echo $TEMP | awk '{print $8}') / 1000 | bc) diff --git a/tests/0019-io-tests-drive.bash b/tests/0019-io-tests-drive.bash index 1b6ca63..2a05092 100755 --- a/tests/0019-io-tests-drive.bash +++ b/tests/0019-io-tests-drive.bash @@ -1,12 +1,12 @@ #!/bin/bash source $SRC/lib/functions.sh -TEST_TITLE="drive" +TEST_TITLE="storage" TEST_ICON="" [[ $DRY_RUN == true ]] && return 0 -display_alert "$(basename $BASH_SOURCE)" "${BOARD_NAMES[$x]} @ ${USER_HOST}" "info" -TEMP=$(sshpass -p ${PASS_ROOT} ssh ${USER_ROOT}@${USER_HOST} "iozone -e -a -s 100M -r 16384k -i 0 -i 1 -i 2 | tail -3 | head -1") +display_alert "$(basename $BASH_SOURCE)" "$(date +%R:%S)" "info" +TEMP=$(remote_exec "iozone -e -a -s 100M -r 16384k -i 0 -i 1 -i 2 | tail -3 | head -1") READ=$(echo $(echo $TEMP | awk '{print $7}') / 1000 | bc) WRITE=$(echo $(echo $TEMP | awk '{print $8}') / 1000 | bc) diff --git a/tests/0111-bluetoth.bash b/tests/0111-bluetoth.bash index 7f54247..5d1c405 100755 --- a/tests/0111-bluetoth.bash +++ b/tests/0111-bluetoth.bash @@ -7,9 +7,9 @@ TEST_ICON="/dev/null") + resoult=$(remote_exec "hcitool name $BLUEDEV 2>/dev/null") else TEST_OUTPUT="n/a" return 0 diff --git a/tests/0115-strong-stressing.bash b/tests/0115-strong-stressing.bash index 1e21187..ac4c7ff 100755 --- a/tests/0115-strong-stressing.bash +++ b/tests/0115-strong-stressing.bash @@ -5,9 +5,9 @@ TEST_TITLE="Stress ${STRESS_TIME}s" TEST_ICON="" [[ $DRY_RUN == true ]] && return 0 -display_alert "$(basename $BASH_SOURCE)" "${BOARD_NAMES[$x]} @ ${USER_HOST} + ${STRESS_TIME}s" "info" +display_alert "$(basename $BASH_SOURCE)" "$(date +%R:%S) + ${STRESS_TIME}s" "info" REMOTE_MEM=$(awk '{printf("%d",$2/1024/4)}' <<<$(sshpass -p ${PASS_ROOT} ssh ${USER_ROOT}@${USER_HOST} "LC_ALL=C free -w 2>/dev/null | grep \"^Mem\"")) -sshpass -p ${PASS_ROOT} ssh ${USER_ROOT}@${USER_HOST} "stress -q --cpu $(nproc) --io 4 --vm 2 --vm-bytes ${REMOTE_MEM}M --timeout ${STRESS_TIME}s" +remote_exec "stress -q --cpu $(nproc) --io 4 --vm 2 --vm-bytes ${REMOTE_MEM}M --timeout ${STRESS_TIME}s" if [[ $? -ne 0 ]]; then TEST_OUTPUT=":x:" else diff --git a/tests/0116-dvfs.bash b/tests/0116-dvfs.bash index 92d1448..d984c6f 100755 --- a/tests/0116-dvfs.bash +++ b/tests/0116-dvfs.bash @@ -5,10 +5,10 @@ TEST_TITLE="DVFS (Mhz)" TEST_ICON="" [[ $DRY_RUN == true ]] && return 0 -display_alert "$(basename $BASH_SOURCE)" "${BOARD_NAMES[$x]} @ ${USER_HOST}" "info" +display_alert "$(basename $BASH_SOURCE)" "$(date +%R:%S)" "info" min='[[ -d /sys/devices/system/cpu/cpu0/cpufreq ]] && echo -n $(bc <<< "scale=0;$(cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq | head -1)/1000")" - " ' max='[[ -d /sys/devices/system/cpu/cpu0/cpufreq ]] && echo $(bc <<< "scale=0;$(cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq | head -1)/1000") ' -resoult=$(sshpass -p ${PASS_ROOT} ssh ${USER_ROOT}@${USER_HOST} "eval $min; eval $max") +resoult=$(remote_exec "eval $min; eval $max") [[ -n $resoult ]] && display_alert "... DVFS works" "$resoult Mhz" "info" && TEST_OUTPUT=$resoult diff --git a/tests/0119-7-zip-benchmark.bash.disabled b/tests/0119-7-zip-benchmark.bash.disabled index 00e4ad2..c6f3e8f 100755 --- a/tests/0119-7-zip-benchmark.bash.disabled +++ b/tests/0119-7-zip-benchmark.bash.disabled @@ -5,4 +5,4 @@ TEST_TITLE="7z bench" [[ $DRY_RUN == true ]] && return 0 display_alert "$(basename $BASH_SOURCE)" "${BOARD_NAMES[$x]} @ ${USER_HOST}" "info" -sshpass -p ${PASS_ROOT} ssh ${USER_ROOT}@${USER_HOST} "armbianmonitor -z" >> ${SRC}/logs/${USER_HOST}.log | tee -a ${SRC}/logs/${USER_HOST}.txt +remote_exec "armbianmonitor -z" >> ${SRC}/logs/${USER_HOST}.log | tee -a ${SRC}/logs/${USER_HOST}.txt diff --git a/tests/9000-nigtly-stable-switch.bash b/tests/9000-nigtly-stable-switch.bash index 0c72027..4398d4f 100755 --- a/tests/9000-nigtly-stable-switch.bash +++ b/tests/9000-nigtly-stable-switch.bash @@ -5,12 +5,14 @@ TEST_TITLE="Nightly or stable" TEST_SKIP="true" [[ $DRY_RUN == true ]] && return 0 -display_alert "$(basename $BASH_SOURCE)" "$(date +%R:%S)" "info" +display_alert "$(basename $BASH_SOURCE)" "${BOARD_NAME}" "info" + +remote_exec "apt update; apt -y purge armbian-config; apt -qq -y install armbian-config" "-t" &>/dev/null if (( $r % 2 )); then - display_alert "Switch to stable builds" "$(date +%R:%S)" "info" - sshpass -p ${PASS_ROOT} ssh -t ${USER_ROOT}@${USER_HOST} "LANG=C armbian-config main=System selection=Stable" &>/dev/null -else display_alert "Switch to nightly builds" "$(date +%R:%S)" "info" - sshpass -p ${PASS_ROOT} ssh -t ${USER_ROOT}@${USER_HOST} "armbian-config main=System selection=Nightly" &>/dev/null + remote_exec "armbian-config main=System selection=Nightly" "-t" &>/dev/null +else + display_alert "Switch to stable builds" "$(date +%R:%S)" "info" + remote_exec "LANG=C armbian-config main=System selection=Stable" "-t" &>/dev/null fi diff --git a/tests/9999-reboot.bash b/tests/9999-reboot.bash index b1af931..92dc391 100755 --- a/tests/9999-reboot.bash +++ b/tests/9999-reboot.bash @@ -6,13 +6,13 @@ TEST_SKIP="true" [[ $DRY_RUN == true ]] && return 0 display_alert "$(basename $BASH_SOURCE)" "$(date +%R:%S)" "info" -display_alert "Rebooting in 3 seconds" "${USER_HOST}" "info" +display_alert "Rebooting in 3 seconds" "${BOARD_NAME}" "info" sleep 3 -sshpass -p ${PASS_ROOT} ssh ${USER_ROOT}@${USER_HOST} "reboot" &>/dev/null +remote_exec "reboot" &>/dev/null sleep 3 i=0 # return error if machine does not come back after 10 seconds echo -en "[\e[0;32m o.k. \x1B[0m] " while ping -c1 $USER_HOST &>/dev/null; do echo -n "."; sleep 2; i=$(( $i + 1 )); [[ $i -gt 10 ]] && return 1; done i=0 -echo "" + diff --git a/tests/include/iperf-on-all-interfaces.include b/tests/include/iperf-on-all-interfaces.include index 0135872..3afc6e8 100644 --- a/tests/include/iperf-on-all-interfaces.include +++ b/tests/include/iperf-on-all-interfaces.include @@ -4,17 +4,18 @@ source $SRC/lib/functions.sh for u in "${array[@]}" do - device=$(sshpass -p ${PASS_ROOT} ssh ${USER_ROOT}@${USER_HOST} "nmcli | awk -vRS='connected' '/$u/{print}' | head -3 | tail -2 | sed 'N;s/\n/ /' | tr -d '\011' | sed 's/..:..:..:..:..:.., //' | sed 's/, hw, mtu [0-9][0-9][0-9][0-9]//'") + device=$(remote_exec "nmcli | awk -vRS='connected' '/$u/{print}' | head -3 | tail -2 | sed 'N;s/\n/ /' | tr -d '\011' | sed 's/..:..:..:..:..:.., //' | sed 's/, hw, mtu [0-9][0-9][0-9][0-9]//'") speed_to=$(echo "$(iperf3 -c ${u} -t 10 -J | jq -r '.intervals' | grep bits_per_second | awk '{print $2}' | awk '{printf("%.0f\n", $1)}' | paste -sd+ | bc) / 20" | bc | awk '{$1/=1000000;printf "%.0f\n",$1}') if [[ $device == *ethernet* ]]; then - speed_from="~ "$(echo "$(iperf3 -R -c ${u} -t 10 -J | jq -r '.intervals' | grep bits_per_second | awk '{print $2}' | awk '{printf("%.0f\n", $1)}' | paste -sd+ | bc) / 20" | bc | awk '{$1/=1000000;printf "%.0f\n",$1}')" " + speed_from=" "$(echo "$(iperf3 -R -c ${u} -t 10 -J | jq -r '.intervals' | grep bits_per_second | awk '{print $2}' | awk '{printf("%.0f\n", $1)}' | paste -sd+ | bc) / 20" | bc | awk '{$1/=1000000;printf "%.0f\n",$1}')" " + speed_to=" - "$speed_to else unset speed_from fi - display_alert "... $device" "${speed_from}~ ${speed_to} MBits/s" "info" - TEST_OUTPUT+="$(echo $device | cut -d \( -f2 | cut -d \) -f1)
${speed_from}~${speed_to}
" + display_alert "... $device" "${speed_from} ${speed_to} MBits/s" "info" + TEST_OUTPUT+="$(echo $device | cut -d \( -f2 | cut -d \) -f1)
${speed_from}${speed_to}
" done [[ ${#array[@]} -eq 0 ]] && TEST_OUTPUT="" sleep 1 -sshpass -p ${PASS_ROOT} ssh ${USER_ROOT}@${USER_HOST} "pkill -F /var/run/iperf3" +remote_exec "pkill -F /var/run/iperf3"