#!/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 >$LOG finish # # to do: allow looping back # exit 1 } todo() { g_echo '\r\033[43;30m TODO \033[0m ' echo "$step: TODO" >>$LOG finish _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 # - 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 }