test_vmcd2.sh 1.92 KB
Newer Older
Timothy Stack's avatar
 
Timothy Stack committed
1 2
#! /bin/sh

Timothy Stack's avatar
Timothy Stack committed
3 4 5 6 7 8
#
# EMULAB-COPYRIGHT
# Copyright (c) 2005 University of Utah and the Flux Group.
# All rights reserved.
#

Timothy Stack's avatar
 
Timothy Stack committed
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
## Variables

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

# SRCDIR=@srcdir@
EMC_PORT=6565
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 \
    -p ${EMC_PORT} \
    -s ops \
    -c `realpath ${SRCDIR}/test_emcd2.config`

Timothy Stack's avatar
 
Timothy Stack committed
48
./vmc-client -l `pwd`/test_vmc-client1.log \
Timothy Stack's avatar
 
Timothy Stack committed
49 50 51 52 53 54 55
    -i `pwd`/test_vmc-client1.pid \
    -p ${VMC1_PORT} \
    -f ${SRCDIR}/test_vmcd2.pos \
    foobar

# Start vmcd:

Timothy Stack's avatar
 
Timothy Stack committed
56
./vmcd -l `pwd`/test_vmcd2.log \
Timothy Stack's avatar
 
Timothy Stack committed
57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88
    -i `pwd`/test_vmcd.pid \
    -e localhost \
    -p ${EMC_PORT} \
    -c localhost -P ${VMC1_PORT}

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

sleep 1

run_test ../mtp/mtp_send -n localhost -P ${EMC_PORT} \
    -r emulab -i 1 -c 0 -m "empty" init -- \
    -w -i 1 request-position

check_output "no update?" <<EOF
Timothy Stack's avatar
 
Timothy Stack committed
89
Packet: version 2; role emc
Timothy Stack's avatar
 
Timothy Stack committed
90 91
 opcode:	update-position
  id:		1
Timothy Stack's avatar
 
Timothy Stack committed
92 93
  x:		6.000000
  y:		5.040000
Timothy Stack's avatar
 
Timothy Stack committed
94
  theta:	-1.190796
Timothy Stack's avatar
 
Timothy Stack committed
95
  status:	-1
Timothy Stack's avatar
 
Timothy Stack committed
96
  timestamp:	1.000000
Timothy Stack's avatar
 
Timothy Stack committed
97 98 99 100 101 102 103
EOF

run_test ../mtp/mtp_send -n localhost -P ${EMC_PORT} \
    -r emulab -i 1 -c 0 -m "empty" init -- \
    -w -i 2 request-position

check_output "no update?" <<EOF
Timothy Stack's avatar
 
Timothy Stack committed
104
Packet: version 2; role emc
Timothy Stack's avatar
 
Timothy Stack committed
105 106 107 108
 opcode:	update-position
  id:		2
  x:		20.000000
  y:		20.000000
Timothy Stack's avatar
 
Timothy Stack committed
109
  theta:	-1.570796
Timothy Stack's avatar
 
Timothy Stack committed
110
  status:	-1
Timothy Stack's avatar
 
Timothy Stack committed
111
  timestamp:	1.000000
Timothy Stack's avatar
 
Timothy Stack committed
112
EOF