From 13d05bc8458758ee39cb829098241e89616717ee Mon Sep 17 00:00:00 2001 From: Ashlee Young Date: Wed, 9 Sep 2015 22:15:21 -0700 Subject: ONOS checkin based on commit tag e796610b1f721d02f9b0e213cf6f7790c10ecd60 Change-Id: Ife8810491034fe7becdba75dda20de4267bd15cd --- framework/src/onos/tools/test/bin/onos-mininet | 69 ++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100755 framework/src/onos/tools/test/bin/onos-mininet (limited to 'framework/src/onos/tools/test/bin/onos-mininet') diff --git a/framework/src/onos/tools/test/bin/onos-mininet b/framework/src/onos/tools/test/bin/onos-mininet new file mode 100755 index 00000000..ef2c8ea5 --- /dev/null +++ b/framework/src/onos/tools/test/bin/onos-mininet @@ -0,0 +1,69 @@ +#!/bin/bash +# ----------------------------------------------------------------------------- +# Starts or interacts with mininet in a remote screen session. +# ----------------------------------------------------------------------------- + +[ ! -d "$ONOS_ROOT" ] && echo "ONOS_ROOT is not defined" >&2 && exit 1 +. $ONOS_ROOT/tools/build/envDefaults + +export MAX_WAIT=60 + +cmd="$1" && shift +log="screenlog.0" +remote="$ONOS_USER@$OCN" +mininet="ssh -t -t $remote screen -L -S mininet" + +case $cmd in +send) + $mininet -X "stuff \"$@\\n\"" 2>/dev/null + ;; + +sendAndExpect) + cmd="" + for a in $*; do shift; if [ "$a" = "--expect" ]; then break; fi; cmd="$cmd $a"; done + $mininet -X "stuff \"$cmd\\n\"" 2>/dev/null + onos-mininet expect "$@" + ;; + +wait) + ssh $remote " + let count=0 + sleep 1 && while test ! -f $log; do if test \$count -ge $MAX_WAIT; then exit 1; fi; sleep 1; let count=count+1; done + while ! (tail -n1 $log | egrep -q '^mininet>'); do if [ \$count -ge $MAX_WAIT ]; then exit 1; fi; sleep 1; done + sleep ${1-:1} + " + ;; + +expect) + aux=/tmp/mininet.$$.log + ssh $remote " + sleep 1 + if [ ! -f $log ]; then exit 1; fi; + let count=0 + while ! (tail -n1 $log | egrep -q '^mininet>'); do if test \$count -ge $MAX_WAIT; then exit 1; fi; sleep 1; let count=count+1; done + tac $log | awk '{ print \$0; } /^mininet>/ { if (on) { exit 0; } on=1; }' | tac > $aux + cat $aux + set -x + egrep \"$@\" $aux + " + ;; + +attach) + $mininet -x + ;; + +start) + ssh $remote "rm -f $log; echo logfile flush 1 > ~/.screenrc" + ( + $mininet "$@" + scp $remote:$log /tmp/mininet.log + ssh $remote rm -f $log + ) & + ;; + +stop) + $mininet -X "stuff \"^C\\n\"" 2>/dev/null && \ + $mininet -X "stuff \"^C\\n\"" 2>/dev/null && \ + $mininet -X "stuff \"exit\\n\"" 2>/dev/null + ;; +esac -- cgit 1.2.3-korg