mirror of
https://github.com/armbian/autotests.git
synced 2026-01-06 10:31:09 -08:00
Lots of small fixes.
This commit is contained in:
1
.gitignore
vendored
1
.gitignore
vendored
@@ -1,2 +1,3 @@
|
||||
/userconfig
|
||||
/logs
|
||||
/reports
|
||||
|
||||
25
go.sh
25
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 {
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body><table cellspacing=0 width=100% border=1><tr><td rowspan=2>Cycle</td><td rowspan=2>Board</td>\n"
|
||||
<body><table cellspacing=0 width=100% border=1><tr><td align=right rowspan=2>#</td><td align=center rowspan=2>Board<br>/<br>Cycle</td><td rowspan=2>Version / distribution <br>Kernel / variant</td>\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+="</tr><tr><td align=middle colspan=3>Iperf (MBits/s)</td><td align=middle colspan=2>IO (MBits/s)</td></tr>\n"
|
||||
HEADER_HTML+="</tr><tr><td align=middle colspan=3>Iperf send/receive (MBits/s)</td><td align=middle colspan=2>IO read/write (MBits/s)</td></tr>\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+="</table></body>
|
||||
</html>\n"
|
||||
echo -e $HEADER_HTML >> ${SRC}/logs/report.html
|
||||
echo -e $HEADER_HTML >> ${SRC}/reports/${REPORT}.html
|
||||
|
||||
@@ -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"
|
||||
|
||||
|
||||
@@ -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<number> 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<tr><td>$r/${PASSES}</td><td><a href=${BOARD_URLS[$x]}>${BOARD_NAMES[$x]}</a> ${BOARD_VERSIONS[$x]} ${BOARD_DISTRIBUTION_CODENAMES[$x]}<br>${BOARD_KERNELS[$x]}</td>"
|
||||
HEADER_HTML+="\n<tr>"$( [[ ${r} -eq 1 ]] && echo "<td align=right rowspan=$((PASSES+1))>$((x+1))</td><td colspan=$((COLOUMB+2))>${BOARD_NAME} $(mask_ip "$USER_HOST")</td></td></tr><tr>")"<td align=center>$r/${PASSES}<br><small>$(date +%R:%S)</small></td><td>${BOARD_VERSION} (${BOARD_DISTRIBUTION_CODENAME})<br>${BOARD_KERNEL} ${BOARD_IMAGE_TYPE}</td>"
|
||||
for u in "${array[@]}"
|
||||
do
|
||||
unset TEST_OUTPUT
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -7,22 +7,22 @@ TEST_ICON="<img width=32 src=https://cdn4.iconfinder.com/data/icons/ionicons/512
|
||||
TEST_SKIP="true"
|
||||
[[ $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"
|
||||
|
||||
readarray -t array < <(get_device "^[wr].*" "")
|
||||
for u in "${array[@]}"
|
||||
do
|
||||
display_alert "... " "$u" "info"
|
||||
sshpass -p ${PASS_ROOT} ssh ${USER_ROOT}@${USER_HOST} "nmcli con down $u &>/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
|
||||
|
||||
@@ -5,9 +5,9 @@ TEST_TITLE="Lan"
|
||||
TEST_ICON="<img width=32 src=https://www.pngkey.com/png/detail/856-8562696_ethernet-on-icon-rj45-icon.png>"
|
||||
[[ $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")
|
||||
|
||||
|
||||
@@ -5,9 +5,9 @@ TEST_TITLE="2.4Ghz"
|
||||
TEST_ICON="<img width=32 src=https://cdn4.iconfinder.com/data/icons/ionicons/512/icon-wifi-32.png>"
|
||||
[[ $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")
|
||||
|
||||
|
||||
@@ -7,26 +7,26 @@ TEST_ICON="<img width=32 src=https://cdn4.iconfinder.com/data/icons/ionicons/512
|
||||
TEST_SKIP="true"
|
||||
[[ $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"
|
||||
|
||||
readarray -t array < <(get_device "^[wr].*")
|
||||
|
||||
for u in "${array[@]}"
|
||||
do
|
||||
display_alert "... " "$u" "info"
|
||||
sshpass -p ${PASS_ROOT} ssh ${USER_ROOT}@${USER_HOST} "nmcli con down $u &>/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
|
||||
|
||||
@@ -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")
|
||||
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -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)
|
||||
|
||||
@@ -7,9 +7,9 @@ TEST_ICON="<img width=32 src=https://cdn4.iconfinder.com/data/icons/vecico-conne
|
||||
|
||||
unset resoult
|
||||
|
||||
display_alert "$(basename $BASH_SOURCE)" "${BOARD_NAMES[$x]} @ ${USER_HOST}" "info"
|
||||
display_alert "$(basename $BASH_SOURCE)" "${BOARD_NAME}" "info"
|
||||
if [[ -n $BLUEDEV ]]; then
|
||||
resoult=$(sshpass -p ${PASS_ROOT} ssh ${USER_ROOT}@${USER_HOST} "hcitool name $BLUEDEV 2>/dev/null")
|
||||
resoult=$(remote_exec "hcitool name $BLUEDEV 2>/dev/null")
|
||||
else
|
||||
TEST_OUTPUT="n/a"
|
||||
return 0
|
||||
|
||||
@@ -5,9 +5,9 @@ TEST_TITLE="Stress ${STRESS_TIME}s"
|
||||
TEST_ICON="<img width=32 src=https://f0.pngfuel.com/png/586/784/fire-illustration-png-clip-art.png>"
|
||||
[[ $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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 ""
|
||||
|
||||
|
||||
@@ -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+="<small>$(echo $device | cut -d \( -f2 | cut -d \) -f1)</small><br>${speed_from}~${speed_to}<br>"
|
||||
display_alert "... $device" "${speed_from} ${speed_to} MBits/s" "info"
|
||||
TEST_OUTPUT+="<small>$(echo $device | cut -d \( -f2 | cut -d \) -f1)</small><br>${speed_from}${speed_to}<br>"
|
||||
|
||||
done
|
||||
[[ ${#array[@]} -eq 0 ]] && TEST_OUTPUT="<img width=16 src=https://upload.wikimedia.org/wikipedia/commons/thumb/1/18/Philippines_road_sign_R3-1.svg/220px-Philippines_road_sign_R3-1.svg.png>"
|
||||
sleep 1
|
||||
sshpass -p ${PASS_ROOT} ssh ${USER_ROOT}@${USER_HOST} "pkill -F /var/run/iperf3"
|
||||
remote_exec "pkill -F /var/run/iperf3"
|
||||
|
||||
Reference in New Issue
Block a user