1
0
mirror of git://projects.qi-hardware.com/ben-wpan.git synced 2024-11-04 23:39:21 +02:00
ben-wpan/prod/Common
Werner Almesberger 66fb9d808c prod/: use positive and negative offset in spectrum test
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
2011-06-07 08:09:20 -03:00

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
}