mirror of
git://projects.qi-hardware.com/ben-wpan.git
synced 2024-11-05 08:39:41 +02:00
e9d65fbfd3
- atusb-flash: flash boot loader and application - Makefile (PHONY, flash): invoke atusb-flash - Common (REF_EXEC): execute a command on the host with the reference device - Common (_doit, expect, expect_re): moved command execution to separate function, for better sharing - Common (doit): new function for executing a command without grepping through its output - Common (begin): make profile argument optional
186 lines
2.5 KiB
Bash
186 lines
2.5 KiB
Bash
#!/bin/sh
|
|
|
|
DIV1=------------------------------------------------------------------------
|
|
DIV2=========================================================================
|
|
|
|
|
|
usage()
|
|
{
|
|
echo "usage: $0 ref_dev test_dev" 1>&2
|
|
exit 1
|
|
}
|
|
|
|
|
|
[ "$2" -a -z "$3" ] || usage
|
|
REF=$1
|
|
# DUT = Device Under Test
|
|
DUT=$2
|
|
LOG=_log
|
|
>$LOG
|
|
|
|
if [ ${REF#net:} = $REF ]; then
|
|
REF_EXEC=
|
|
else
|
|
REF_EXEC="ssh `echo $REF | sed 's/^net://;s/,.*$//'`"
|
|
fi
|
|
|
|
if [ ${DUT#net:} = $DUT ]; then
|
|
LOCAL_EXEC=
|
|
LOCAL_DUT=$DUT
|
|
else
|
|
LOCAL_EXEC="ssh `echo $DUT | sed 's/^net://;s/,.*$//'`"
|
|
LOCAL_DUT=`atrf-id -d $DUT -s -s`
|
|
fi
|
|
|
|
|
|
##### Test setup ############################################################
|
|
|
|
|
|
step()
|
|
{
|
|
echo -n " .... $1"
|
|
step=$1
|
|
cmd=
|
|
>_out
|
|
echo $DIV2 >>$LOG
|
|
}
|
|
|
|
|
|
##### Test result ###########################################################
|
|
|
|
|
|
finish()
|
|
{
|
|
echo "$cmd" >>$LOG
|
|
echo | sed "c$DIV1" >>$LOG
|
|
cat _out >>$LOG
|
|
sed "1i$DIV1" >>$LOG
|
|
}
|
|
|
|
|
|
pass()
|
|
{
|
|
echo '\r\033[42;30m PASS \033[0m '
|
|
echo "$step: PASS" >>$LOG
|
|
finish </dev/null
|
|
}
|
|
|
|
|
|
fail()
|
|
{
|
|
echo '\r\033[41;37m FAIL \033[0m '
|
|
echo "$step: FAIL" >>$LOG
|
|
finish
|
|
#
|
|
# to do: allow looping back
|
|
#
|
|
exit 1
|
|
}
|
|
|
|
|
|
todo()
|
|
{
|
|
echo '\r\033[43;30m TODO \033[0m '
|
|
echo "$step: TODO" >>$LOG
|
|
finish </dev/null
|
|
}
|
|
|
|
|
|
##### Test execution ##########################################################
|
|
|
|
|
|
cmd()
|
|
{
|
|
cmd=$1
|
|
}
|
|
|
|
|
|
##### Evaluation ############################################################
|
|
|
|
|
|
_doit()
|
|
{
|
|
eval "$cmd" >_out 2>&1 || { echo "exit code $?" | fail; exit 1; }
|
|
}
|
|
|
|
|
|
doit()
|
|
{
|
|
_doit
|
|
pass
|
|
}
|
|
|
|
|
|
expect()
|
|
{
|
|
_doit
|
|
fgrep -q "$@" _out || { echo "expected $*" | fail; exit 1; }
|
|
pass
|
|
}
|
|
|
|
|
|
expect_re()
|
|
{
|
|
_doit
|
|
grep -q "$@" _out || { echo "expected $*" | fail; exit 1; }
|
|
pass
|
|
}
|
|
|
|
|
|
##### Tests #################################################################
|
|
|
|
|
|
begin()
|
|
{
|
|
if [ "$1" ]; then
|
|
PROFILE=$1
|
|
if [ ! -r $PROFILE ]; then
|
|
echo "$PROFILE not found" 1>&2
|
|
exit 1
|
|
fi
|
|
fi
|
|
if [ "$2" ]; then
|
|
CLKREF=$2
|
|
if ! $LOCAL_EXEC "[ -r $CLKREF ]"; then
|
|
echo "$CLKREF not found" 1>&2
|
|
exit 1
|
|
fi
|
|
fi
|
|
}
|
|
|
|
|
|
identify()
|
|
{
|
|
step "Identification"
|
|
cmd "atrf-id -d $DUT"
|
|
expect "AT86RF231, part 0x03 version 2 manufacturer xxxx001f (Atmel)"
|
|
}
|
|
|
|
|
|
spectrum()
|
|
{
|
|
step "Spectrum"
|
|
# todo:
|
|
# - trim values (maybe)
|
|
# - decide on power
|
|
# - decide on offset
|
|
cmd "atrf-path -g -T +0.5 -P $PROFILE $REF $DUT 10"
|
|
expect PASS
|
|
}
|
|
|
|
|
|
transmit()
|
|
{
|
|
step "Receive"
|
|
# todo:
|
|
# - trim values (maybe)
|
|
# - channel
|
|
# - tolerate imperfection (e.g., 99/100|100/100)
|
|
cmd "atrf-xmit -p 0 $REF $DUT 100"
|
|
expect 100/100
|
|
|
|
step "Send"
|
|
cmd "atrf-xmit -p 15 $DUT $REF 100"
|
|
expect 100/100
|
|
}
|