mirror of
git://projects.qi-hardware.com/ben-wpan.git
synced 2024-11-28 21:58:27 +02:00
66fb9d808c
This way, we can also spot issues in the digital interface leading to mis-configurations. E.g., this one would be a defective SLP_TR line in atusb: http://downloads.qi-hardware.com/people/werner/wpan/tmp/jagged.png - prod/Makefile, prod/Common: removed "-T +0.5" to use both offsets - prod/Makefile (spectrum): print a direction indication before running atrf-path
200 lines
2.7 KiB
Bash
200 lines
2.7 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
|
|
|
|
LIVE=
|
|
|
|
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 ###########################################################
|
|
|
|
|
|
g_echo()
|
|
{
|
|
/bin/echo -e "$@"
|
|
}
|
|
|
|
|
|
finish()
|
|
{
|
|
echo "$cmd" >>$LOG
|
|
echo | sed "c$DIV1" >>$LOG
|
|
cat _out >>$LOG
|
|
sed "1i$DIV1" >>$LOG
|
|
}
|
|
|
|
|
|
pass()
|
|
{
|
|
g_echo '\r\033[42;30m PASS \033[0m '
|
|
echo "$step: PASS" >>$LOG
|
|
finish </dev/null
|
|
}
|
|
|
|
|
|
fail()
|
|
{
|
|
g_echo '\r\033[41;37m FAIL \033[0m '
|
|
echo "$step: FAIL" >>$LOG
|
|
finish
|
|
#
|
|
# to do: allow looping back
|
|
#
|
|
exit 1
|
|
}
|
|
|
|
|
|
todo()
|
|
{
|
|
g_echo '\r\033[43;30m TODO \033[0m '
|
|
echo "$step: TODO" >>$LOG
|
|
finish </dev/null
|
|
}
|
|
|
|
|
|
##### Test execution ##########################################################
|
|
|
|
|
|
cmd()
|
|
{
|
|
cmd=$1
|
|
}
|
|
|
|
|
|
##### Evaluation ############################################################
|
|
|
|
|
|
_doit()
|
|
{
|
|
if ${LIVE:-false}; then
|
|
echo
|
|
script -c "$cmd" -q _out ||
|
|
{ echo "exit code $?" | fail; exit 1; }
|
|
else
|
|
eval "$cmd" >_out 2>&1 ||
|
|
{ echo "exit code $?" | fail; exit 1; }
|
|
fi
|
|
}
|
|
|
|
|
|
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
|
|
cmd "atrf-path -g -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
|
|
}
|