test_vmcd.sh.in 2.25 KB
Newer Older
Timothy Stack's avatar
Timothy Stack committed
1 2
#! /bin/sh

Timothy Stack's avatar
Timothy Stack committed
3 4
#
# Copyright (c) 2005 University of Utah and the Flux Group.
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
# 
# {{{EMULAB-LICENSE
# 
# This file is part of the Emulab network testbed software.
# 
# This file is free software: you can redistribute it and/or modify it
# under the terms of the GNU Affero General Public License as published by
# the Free Software Foundation, either version 3 of the License, or (at
# your option) any later version.
# 
# This file is distributed in the hope that it will be useful, but WITHOUT
# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Affero General Public
# License for more details.
# 
# You should have received a copy of the GNU Affero General Public License
# along with this file.  If not, see <http://www.gnu.org/licenses/>.
# 
# }}}
Timothy Stack's avatar
Timothy Stack committed
24 25
#

Timothy Stack's avatar
Timothy Stack committed
26 27 28 29 30 31 32 33 34
## Variables

# The full path of the test case
test_file=$1
# The base name of the test case
test_file_base="test_vmcd.sh"
# The current test number for shell based tests.
test_num=0

35
# SRCDIR=@srcdir@
Timothy Stack's avatar
Timothy Stack committed
36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
VMC1_PORT=6566

## Helper functions

run_test() {
    echo "run_test: $*"
    $* > ${test_file_base}_${test_num}.tmp 2>&1
}

check_output() {
    diff -u - ${test_file_base}_${test_num}.tmp
    if test $? -ne 0; then
	echo $1
	exit 1
    fi
    test_num=`expr ${test_num} \+ 1`
}

##

# Start the daemons vmcd depends on:

../emc/emcd -l `pwd`/test_emcd.log \
    -i `pwd`/test_emcd.pid \
60
    -U /tmp/$USER.emcd \
Timothy Stack's avatar
Timothy Stack committed
61 62 63 64 65 66
    -s ops \
    -c `realpath ${SRCDIR}/test_emcd.config`

vmc-client -l `pwd`/test_vmc-client1.log \
    -i `pwd`/test_vmc-client1.pid \
    -p ${VMC1_PORT} \
67
    -f ${SRCDIR}/test_vmcd.pos \
Timothy Stack's avatar
Timothy Stack committed
68 69 70 71 72 73
    foobar

# Start vmcd:

vmcd -l `pwd`/test_vmcd.log \
    -i `pwd`/test_vmcd.pid \
74
    -U /tmp/$USER.emcd \
75
    -c localhost -P ${VMC1_PORT}
Timothy Stack's avatar
Timothy Stack committed
76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96

cleanup() {
    kill `cat test_vmcd.pid`
    kill `cat test_emcd.pid`
    kill `cat test_vmc-client1.pid`
}

trap 'cleanup' EXIT

sleep 2

newframe() {
    kill -s USR1 `cat test_vmc-client1.pid`
}

newframe

sleep 1

newframe

97
run_test ../mtp/mtp_send -U /tmp/$USER.emcd \
98 99 100 101
    -r emulab -i 1 -c 0 -m "empty" init -- \
    -w -i 1 request-position

check_output "no update?" <<EOF
102
Packet: version 2; role emc
103 104
 opcode:	update-position
  id:		1
105 106
  x:		6.000000
  y:		5.040000
107
  theta:	-1.190796
108
  status:	-1
109
  timestamp:	1.000000
110
EOF