Lots of small fixes.

This commit is contained in:
Igor Pecovnik
2020-03-22 22:14:35 +01:00
parent 065d3cbae4
commit 7cc7e36894
20 changed files with 127 additions and 78 deletions

1
.gitignore vendored
View File

@@ -1,2 +1,3 @@
/userconfig
/logs
/reports

25
go.sh
View File

@@ -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

View File

@@ -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"

View File

@@ -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

View File

@@ -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"

View File

@@ -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"

View File

@@ -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

View File

@@ -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")

View File

@@ -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")

View File

@@ -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

View File

@@ -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")

View File

@@ -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)

View File

@@ -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)

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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

View File

@@ -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 ""

View File

@@ -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"