80 lines
2.1 KiB
Bash
Executable File
80 lines
2.1 KiB
Bash
Executable File
#!/usr/bin/env zsh
|
|
|
|
set -e -u -x
|
|
|
|
[ -n "${NODEMCU_WIFI:-}" ] || { echo "Specify NODEMCU_WIFI"; exit 1; }
|
|
[ -n "${NODEMCU_DUT0:-}" ] || { echo "Specify NODEMCU_DUT0"; exit 1; }
|
|
|
|
: ${NODEMCU_DUT0_NUM:=int}
|
|
: ${NODEMCU_DUT0_CONFIG:=conf/dut0/testenv.conf}
|
|
|
|
if [ -n "${NODEMCU_DUT1:-}" ]; then
|
|
: ${NODEMCU_DUT1_NUM:=int}
|
|
: ${NODEMCU_DUT1_CONFIG:=conf/dut1/testenv.conf}
|
|
fi
|
|
|
|
echo "Test configuration:"
|
|
echo " DUT0 ${NODEMCU_DUT0} (${NODEMCU_DUT0_NUM} ${NODEMCU_DUT0_CONFIG})"
|
|
if [ -n "${NODEMCU_DUT1:-}" ]; then
|
|
echo " DUT1 ${NODEMCU_DUT1} (${NODEMCU_DUT1_NUM} ${NODEMCU_DUT1_CONFIG})"
|
|
fi
|
|
|
|
echo "Preflight..."
|
|
|
|
export TCLLIBPATH=./expectnmcu
|
|
[ -z "${NODEMCU_TESTTMP:-}" ] && {
|
|
NODEMCU_TESTTMP="$(umask 077; mktemp -d -p /tmp nodemcu.XXXXXXXXXX)"
|
|
cleanup() {
|
|
rm -rf ${NODEMCU_TESTTMP}
|
|
}
|
|
trap cleanup EXIT
|
|
}
|
|
|
|
export NODEMCU_TESTTMP
|
|
|
|
# Bring the board up and do our IP extraction once rather than letting each
|
|
# test guess over and over.
|
|
if [ -z "${MYIP-}" ]; then
|
|
echo "Probing for my IP address; this might take a moment..."
|
|
MYIP=$(expect ./preflight-host-ip.expect -serial ${NODEMCU_DUT0} -wifi ${NODEMCU_WIFI})
|
|
stty sane
|
|
echo "Guessed my IP as ${MYIP}"
|
|
fi
|
|
|
|
./preflight-tls.sh # Make TLS keys
|
|
./preflight-lfs.sh # Make LFS images
|
|
|
|
echo "Staging LFSes and running early commands on each DUT..."
|
|
|
|
expect ./tap-driver.expect -serial ${NODEMCU_DUT0} -lfs ${NODEMCU_TESTTMP}/tmp-lfs-${NODEMCU_DUT0_NUM}.img ${NODEMCU_DUT0_CONFIG} preflight-dut.lua
|
|
if [ -n "${NODEMCU_DUT1:-}" ]; then
|
|
expect ./tap-driver.expect -serial ${NODEMCU_DUT1} -lfs ${NODEMCU_TESTTMP}/tmp-lfs-${NODEMCU_DUT1_NUM}.img ${NODEMCU_DUT1_CONFIG} preflight-dut.lua
|
|
fi
|
|
|
|
echo "Running on-DUT tests..."
|
|
|
|
# These are all in LFS (see preflight-lfs.sh) and so we can -noxfer and just run tests by name
|
|
T=(
|
|
NTest_adc_env
|
|
NTest_file
|
|
NTest_gpio_env
|
|
NTest_pixbuf
|
|
NTest_tmr
|
|
NTest_ws2812_effects
|
|
NTest_ws2812
|
|
)
|
|
|
|
for t in "${T[@]}"; do
|
|
expect ./tap-driver.expect -serial ${NODEMCU_DUT0} -noxfer -runfunc "node.LFS.get('${t}')"
|
|
done
|
|
|
|
echo "Running from-host tests..."
|
|
|
|
T=(
|
|
./test-mqtt.expect
|
|
)
|
|
|
|
for t in "${T[@]}"; do
|
|
expect ${t} -serial ${NODEMCU_DUT0} -wifi ${NODEMCU_WIFI} -ip ${MYIP}
|
|
done
|