mirror of
https://github.com/armbian/autotests.git
synced 2026-01-06 10:31:09 -08:00
Fixed few bugs, almost ready for testings
This commit is contained in:
34
go.sh
34
go.sh
@@ -17,31 +17,39 @@ source lib/functions.sh
|
||||
[[ -z $HOST ]] && echo "\$HOST not defined. Exiting." && exit 1
|
||||
[[ -z $HOST_IPERF ]] && echo "\$HOST_IPERF not defined. Exiting." && exit 1
|
||||
|
||||
# needed if we haven't login yet
|
||||
get_keys
|
||||
|
||||
ssh-keygen -f "/root/.ssh/known_hosts" -R ${HOST}
|
||||
sshpass -p 1234 ssh ${USER_ROOT}@${HOST} "ls"
|
||||
# if password is still default, change passwd and create new user
|
||||
display_alert "Try if we can login and send CTRL C" "$HOST" "info"
|
||||
sshpass -p 1234 ssh -o "StrictHostKeyChecking=accept-new" ${USER_ROOT}@${HOST} "\x03" &>/dev/null
|
||||
[[ $? -eq 1 ]] && armbian-first-login
|
||||
|
||||
x=1
|
||||
SUM=0
|
||||
while [ $x -le ${PASSES} ]
|
||||
do
|
||||
while ! ping -c1 $HOST &>/dev/null; do echo "Ping Fail - `date`"; done ; echo "Host Found - `date`" ;
|
||||
while ! ping -c1 $HOST &>/dev/null; do display_alert "Ping failed" "$(date +%R:%S)" "wrn"; done ; START=$(date +%s); display_alert "Host found" "$(date +%R:%S)" "info";
|
||||
|
||||
|
||||
TIMES[$x]=$(date +%s)
|
||||
# if wlan credentials are defined, let's check it first
|
||||
if [[ -n ${WLAN_ID} && $x -eq 1 ]]; then
|
||||
if [[ -n ${WLAN_ID} && $x -eq 1 && -n $(sshpass -p ${PASS_ROOT} ssh ${USER_ROOT}@${HOST} "nmcli device | grep wifi") ]]; then
|
||||
check_wlan
|
||||
fi
|
||||
|
||||
echo "Stressing $HOST"
|
||||
sshpass -p ${PASS_ROOT} ssh ${USER_ROOT}@${HOST} "apt -y install stress ; stress --cpu 8 --io 4 --vm 2 --vm-bytes 128M --timeout 60s"
|
||||
|
||||
echo "Rebooting $HOST"
|
||||
display_alert "Stressing [$x] for ${STRESS_TIME}s" "${HOST}" "info";
|
||||
sshpass -p ${PASS_ROOT} ssh ${USER_ROOT}@${HOST} "stress -q --cpu 8 --io 4 --vm 2 --vm-bytes 128M --timeout ${STRESS_TIME}s"
|
||||
display_alert "Rebooting in 5 seconds" "${HOST}" "wrn"
|
||||
sleep 5
|
||||
sshpass -p ${PASS_ROOT} ssh ${USER_ROOT}@${HOST} "reboot"
|
||||
sleep 20
|
||||
x=$(( $x + 1 ))
|
||||
|
||||
done
|
||||
echo "Passed"
|
||||
|
||||
x=2
|
||||
while [ $x -lt ${PASSES} ]
|
||||
do
|
||||
A=${TIMES[@]:$x:1}
|
||||
x=$(( $x + 1 ))
|
||||
B=${TIMES[@]:$x:1}
|
||||
[[ -z $B ]] && B=$(date +%s)
|
||||
echo $(( $B - $A ))
|
||||
done
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
# configuration
|
||||
|
||||
PASSES=5
|
||||
STRESS_TIME=100 # seconds
|
||||
|
||||
# user
|
||||
|
||||
|
||||
@@ -1,28 +1,46 @@
|
||||
#!/bin/bash
|
||||
|
||||
function get_keys()
|
||||
#--------------------------------------------------------------------------------------------------------------------------------
|
||||
# Let's have unique way of displaying alerts
|
||||
#--------------------------------------------------------------------------------------------------------------------------------
|
||||
display_alert()
|
||||
{
|
||||
local tmp=""
|
||||
[[ -n $2 ]] && tmp="[\e[0;33m $2 \x1B[0m]"
|
||||
|
||||
local GET_KEYS=$(expect -c "
|
||||
spawn ssh ${USER_ROOT}@${HOST}
|
||||
set timeout 3
|
||||
expect \"Are you sure you want to continue connecting (yes/no)?\"
|
||||
send \"yes\r\"
|
||||
expect eof
|
||||
")
|
||||
echo $GET_KEYS
|
||||
case $3 in
|
||||
err)
|
||||
echo -e "[\e[0;31m error \x1B[0m] $1 $tmp"
|
||||
;;
|
||||
|
||||
wrn)
|
||||
echo -e "[\e[0;35m warn \x1B[0m] $1 $tmp"
|
||||
;;
|
||||
|
||||
ext)
|
||||
echo -e "[\e[0;32m o.k. \x1B[0m] \e[1;32m$1\x1B[0m $tmp"
|
||||
;;
|
||||
|
||||
info)
|
||||
echo -e "[\e[0;32m o.k. \x1B[0m] $1 $tmp"
|
||||
;;
|
||||
|
||||
*)
|
||||
echo -e "[\e[0;32m .... \x1B[0m] $1 $tmp"
|
||||
;;
|
||||
esac
|
||||
}
|
||||
|
||||
|
||||
function armbian-first-login()
|
||||
{
|
||||
# clean keys
|
||||
get_keys
|
||||
# pass user creation to expect
|
||||
display_alert "Conduct first login steps" "root/${PASS_ROOT} and ${USER_NORMAL}/${PASS_NORMAL}" "info"
|
||||
|
||||
MAKE_USER=$(expect -c "
|
||||
spawn ssh ${USER_ROOT}@${HOST}
|
||||
spawn sshpass -p 1234 ssh -o "StrictHostKeyChecking=accept-new" ${USER_ROOT}@${HOST}
|
||||
set timeout 10
|
||||
expect \"password:\"
|
||||
send \"1234\r\"
|
||||
expect \"Current password:\"
|
||||
send \"1234\r\"
|
||||
expect \"New password:\"
|
||||
@@ -47,10 +65,12 @@ function armbian-first-login()
|
||||
send \"${OTHER_NORMAL}\r\"
|
||||
expect \"information correct\"
|
||||
send \"Y\r\"
|
||||
#expect eof
|
||||
expect eof
|
||||
")
|
||||
# Disable user creation: send \"\x03\"
|
||||
|
||||
sshpass -p ${PASS_ROOT} ssh ${USER_ROOT}@${HOST} "apt -y install jq stress"
|
||||
|
||||
# display output
|
||||
echo "${MAKE_USER}"
|
||||
|
||||
@@ -61,21 +81,38 @@ function check_wlan
|
||||
{
|
||||
|
||||
# clean keys
|
||||
ssh-keygen -f "/root/.ssh/known_hosts" -R ${HOST} > /dev/null 2>&1
|
||||
#ssh-keygen -f "/root/.ssh/known_hosts" -R ${HOST} > /dev/null 2>&1
|
||||
|
||||
# connect wireless
|
||||
sshpass -p ${PASS_ROOT} ssh ${USER_ROOT}@${HOST} "nmcli d wifi connect ${WLAN_ID} password ${WLAN_PASS}"
|
||||
sshpass -p ${PASS_ROOT} ssh ${USER_ROOT}@${HOST} "nmcli d wifi connect ${WLAN_ID} password ${WLAN_PASS}" &>/dev/null
|
||||
if [[ $? -eq 0 ]]; then
|
||||
display_alert "Connected to wireless" "${WLAN_ID}"
|
||||
|
||||
# get wireless ip
|
||||
local GETWLANIP=$(sshpass -p ${PASS_ROOT} ssh ${USER_ROOT}@${HOST} "nmcli -t -f UUID,TYPE,DEVICE connection show --active | grep wireless | rev | cut -d ':' -f1 | rev | xargs ifconfig | sed -En -e 's/.*inet ([0-9.]+).*/\1/p'")
|
||||
# get wireless ip
|
||||
local GETWLANIP=$(sshpass -p ${PASS_ROOT} ssh ${USER_ROOT}@${HOST} "nmcli -t -f UUID,TYPE,DEVICE connection show --active | grep wireless | rev | cut -d ':' -f1 | rev | xargs ifconfig | sed -En -e 's/.*inet ([0-9.]+).*/\1/p'")
|
||||
display_alert "Get wireless ip" "${GETWLANIP}"
|
||||
|
||||
# disable wired networking
|
||||
sshpass -p ${PASS_ROOT} ssh ${USER_ROOT}@${GETWLANIP} "nmcli -t -f UUID,TYPE connection | grep ethernet | sed 's/:.*$//' | xargs nmcli connection down"
|
||||
# disable wired networking
|
||||
sshpass -p ${PASS_ROOT} ssh -o "StrictHostKeyChecking=accept-new" ${USER_ROOT}@${GETWLANIP} "nmcli -t -f UUID,TYPE connection | grep ethernet | sed 's/:.*$//' | xargs nmcli connection down" &>/dev/null
|
||||
display_alert "Disable wired networking" "${HOST}"
|
||||
|
||||
# do the test
|
||||
sshpass -p ${PASS_ROOT} ssh ${USER_ROOT}@$GETWLANIP "iperf3 -c ${HOST_IPERF}"
|
||||
# do the test
|
||||
display_alert "Make WLAN performance test" "${GETWLANIP} -> ${HOST_IPERF}"
|
||||
sshpass -p ${PASS_ROOT} ssh ${USER_ROOT}@${GETWLANIP} "iperf3 -c ${HOST_IPERF} -t 5 -J | jq -r '.intervals' | grep bits_per_second | awk '{print \$2}' | awk '{printf(\"%.0f\n\", \$1)}' | awk '{\$1/=1000000;printf \"%.0f MBits/s\n\",\$1}' | sed -n 'p;n'"
|
||||
|
||||
# re-enable wired networking
|
||||
sshpass -p ${PASS_ROOT} ssh ${USER_ROOT}@${GETWLANIP} "nmcli -t -f UUID,TYPE connection | grep ethernet | sed 's/:.*$//' | xargs nmcli connection up"
|
||||
# re-enable wired networking
|
||||
sshpass -p ${PASS_ROOT} ssh ${USER_ROOT}@${GETWLANIP} "nmcli -t -f UUID,TYPE connection | grep ethernet | sed 's/:.*$//' | xargs nmcli connection up" &>/dev/null
|
||||
display_alert "Enable wired networking" "${HOST}"
|
||||
|
||||
# disable WLAN networking
|
||||
sshpass -p ${PASS_ROOT} ssh -o "StrictHostKeyChecking=accept-new" ${USER_ROOT}@${HOST} "nmcli -t -f UUID,TYPE connection | grep wireless | sed 's/:.*$//' | xargs nmcli connection down" &>/dev/null
|
||||
display_alert "Disable WLAN networking" "${GETWLANIP}"
|
||||
|
||||
# do the test
|
||||
display_alert "Make Ethernet performance test" "${HOST} -> ${HOST_IPERF}"
|
||||
sshpass -p ${PASS_ROOT} ssh ${USER_ROOT}@${HOST} "iperf3 -c ${HOST_IPERF} -t 5 -J | jq -r '.intervals' | grep bits_per_second | awk '{print \$2}' | awk '{printf(\"%.0f\n\", \$1)}' | awk '{\$1/=1000000;printf \"%.0f MBits/s\n\",\$1}' | sed -n 'p;n'"
|
||||
|
||||
else
|
||||
display_alert "connecting to wireless" "${WLAN_ID}" "err"
|
||||
fi
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user