1*90e502c7SAndroid Build Coastguard Worker#!/bin/sh 2*90e502c7SAndroid Build Coastguard Worker# 3*90e502c7SAndroid Build Coastguard Worker# usage: rtpw_test <rtpw_commands> 4*90e502c7SAndroid Build Coastguard Worker# 5*90e502c7SAndroid Build Coastguard Worker# tests the rtpw sender and receiver functions 6*90e502c7SAndroid Build Coastguard Worker# 7*90e502c7SAndroid Build Coastguard Worker# Copyright (c) 2001-2017, Cisco Systems, Inc. 8*90e502c7SAndroid Build Coastguard Worker# All rights reserved. 9*90e502c7SAndroid Build Coastguard Worker# 10*90e502c7SAndroid Build Coastguard Worker# Redistribution and use in source and binary forms, with or without 11*90e502c7SAndroid Build Coastguard Worker# modification, are permitted provided that the following conditions 12*90e502c7SAndroid Build Coastguard Worker# are met: 13*90e502c7SAndroid Build Coastguard Worker# 14*90e502c7SAndroid Build Coastguard Worker# Redistributions of source code must retain the above copyright 15*90e502c7SAndroid Build Coastguard Worker# notice, this list of conditions and the following disclaimer. 16*90e502c7SAndroid Build Coastguard Worker# 17*90e502c7SAndroid Build Coastguard Worker# Redistributions in binary form must reproduce the above 18*90e502c7SAndroid Build Coastguard Worker# copyright notice, this list of conditions and the following 19*90e502c7SAndroid Build Coastguard Worker# disclaimer in the documentation and/or other materials provided 20*90e502c7SAndroid Build Coastguard Worker# with the distribution. 21*90e502c7SAndroid Build Coastguard Worker# 22*90e502c7SAndroid Build Coastguard Worker# Neither the name of the Cisco Systems, Inc. nor the names of its 23*90e502c7SAndroid Build Coastguard Worker# contributors may be used to endorse or promote products derived 24*90e502c7SAndroid Build Coastguard Worker# from this software without specific prior written permission. 25*90e502c7SAndroid Build Coastguard Worker# 26*90e502c7SAndroid Build Coastguard Worker# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 27*90e502c7SAndroid Build Coastguard Worker# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 28*90e502c7SAndroid Build Coastguard Worker# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS 29*90e502c7SAndroid Build Coastguard Worker# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE 30*90e502c7SAndroid Build Coastguard Worker# COPYRIGHT HOLDERS OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, 31*90e502c7SAndroid Build Coastguard Worker# INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 32*90e502c7SAndroid Build Coastguard Worker# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 33*90e502c7SAndroid Build Coastguard Worker# SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 34*90e502c7SAndroid Build Coastguard Worker# HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, 35*90e502c7SAndroid Build Coastguard Worker# STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 36*90e502c7SAndroid Build Coastguard Worker# ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED 37*90e502c7SAndroid Build Coastguard Worker# OF THE POSSIBILITY OF SUCH DAMAGE. 38*90e502c7SAndroid Build Coastguard Worker# 39*90e502c7SAndroid Build Coastguard Worker 40*90e502c7SAndroid Build Coastguard Workercase $(uname -s) in 41*90e502c7SAndroid Build Coastguard Worker *CYGWIN*|*MINGW*) 42*90e502c7SAndroid Build Coastguard Worker EXE=".exe" 43*90e502c7SAndroid Build Coastguard Worker ;; 44*90e502c7SAndroid Build Coastguard Worker *Linux*) 45*90e502c7SAndroid Build Coastguard Worker EXE="" 46*90e502c7SAndroid Build Coastguard Worker export LD_LIBRARY_PATH=$CRYPTO_LIBDIR 47*90e502c7SAndroid Build Coastguard Worker ;; 48*90e502c7SAndroid Build Coastguard Worker *Darwin*) 49*90e502c7SAndroid Build Coastguard Worker EXE="" 50*90e502c7SAndroid Build Coastguard Worker export DYLD_LIBRARY_PATH=$CRYPTO_LIBDIR 51*90e502c7SAndroid Build Coastguard Worker ;; 52*90e502c7SAndroid Build Coastguard Workeresac 53*90e502c7SAndroid Build Coastguard Worker 54*90e502c7SAndroid Build Coastguard WorkerRTPW=./rtpw$EXE 55*90e502c7SAndroid Build Coastguard WorkerDEST_PORT=9999 56*90e502c7SAndroid Build Coastguard WorkerDURATION=3 57*90e502c7SAndroid Build Coastguard Worker 58*90e502c7SAndroid Build Coastguard Workerkey=Ky7cUDT2GnI0XKWYbXv9AYmqbcLsqzL9mvdN9t/G 59*90e502c7SAndroid Build Coastguard Worker 60*90e502c7SAndroid Build Coastguard WorkerARGS="-b $key -a -e 128" 61*90e502c7SAndroid Build Coastguard Worker 62*90e502c7SAndroid Build Coastguard Worker# First, we run "killall" to get rid of all existing rtpw processes. 63*90e502c7SAndroid Build Coastguard Worker# This step also enables this script to clean up after itself; if this 64*90e502c7SAndroid Build Coastguard Worker# script is interrupted after the rtpw processes are started but before 65*90e502c7SAndroid Build Coastguard Worker# they are killed, those processes will linger. Re-running the script 66*90e502c7SAndroid Build Coastguard Worker# will get rid of them. 67*90e502c7SAndroid Build Coastguard Worker 68*90e502c7SAndroid Build Coastguard Workerkillall rtpw 2>/dev/null 69*90e502c7SAndroid Build Coastguard Worker 70*90e502c7SAndroid Build Coastguard Workerif test -x $RTPW; then 71*90e502c7SAndroid Build Coastguard Worker 72*90e502c7SAndroid Build Coastguard Workerecho $0 ": starting rtpw receiver process... " 73*90e502c7SAndroid Build Coastguard Worker 74*90e502c7SAndroid Build Coastguard Worker$RTPW $* $ARGS -r 0.0.0.0 $DEST_PORT & 75*90e502c7SAndroid Build Coastguard Worker 76*90e502c7SAndroid Build Coastguard Workerreceiver_pid=$! 77*90e502c7SAndroid Build Coastguard Worker 78*90e502c7SAndroid Build Coastguard Workerecho $0 ": receiver PID = $receiver_pid" 79*90e502c7SAndroid Build Coastguard Worker 80*90e502c7SAndroid Build Coastguard Workersleep 1 81*90e502c7SAndroid Build Coastguard Worker 82*90e502c7SAndroid Build Coastguard Worker# verify that the background job is running 83*90e502c7SAndroid Build Coastguard Workerps -e | grep -q $receiver_pid 84*90e502c7SAndroid Build Coastguard Workerretval=$? 85*90e502c7SAndroid Build Coastguard Workerecho $retval 86*90e502c7SAndroid Build Coastguard Workerif [ $retval != 0 ]; then 87*90e502c7SAndroid Build Coastguard Worker echo $0 ": error" 88*90e502c7SAndroid Build Coastguard Worker exit 254 89*90e502c7SAndroid Build Coastguard Workerfi 90*90e502c7SAndroid Build Coastguard Worker 91*90e502c7SAndroid Build Coastguard Workerecho $0 ": starting rtpw sender process..." 92*90e502c7SAndroid Build Coastguard Worker 93*90e502c7SAndroid Build Coastguard Worker$RTPW $* $ARGS -s 127.0.0.1 $DEST_PORT & 94*90e502c7SAndroid Build Coastguard Worker 95*90e502c7SAndroid Build Coastguard Workersender_pid=$! 96*90e502c7SAndroid Build Coastguard Worker 97*90e502c7SAndroid Build Coastguard Workerecho $0 ": sender PID = $sender_pid" 98*90e502c7SAndroid Build Coastguard Worker 99*90e502c7SAndroid Build Coastguard Worker# verify that the background job is running 100*90e502c7SAndroid Build Coastguard Workerps -e | grep -q $sender_pid 101*90e502c7SAndroid Build Coastguard Workerretval=$? 102*90e502c7SAndroid Build Coastguard Workerecho $retval 103*90e502c7SAndroid Build Coastguard Workerif [ $retval != 0 ]; then 104*90e502c7SAndroid Build Coastguard Worker echo $0 ": error" 105*90e502c7SAndroid Build Coastguard Worker exit 255 106*90e502c7SAndroid Build Coastguard Workerfi 107*90e502c7SAndroid Build Coastguard Worker 108*90e502c7SAndroid Build Coastguard Workersleep $DURATION 109*90e502c7SAndroid Build Coastguard Worker 110*90e502c7SAndroid Build Coastguard Workerkill $receiver_pid 111*90e502c7SAndroid Build Coastguard Workerkill $sender_pid 112*90e502c7SAndroid Build Coastguard Worker 113*90e502c7SAndroid Build Coastguard Workerwait $receiver_pid 2>/dev/null 114*90e502c7SAndroid Build Coastguard Workerwait $sender_pid 2>/dev/null 115*90e502c7SAndroid Build Coastguard Worker 116*90e502c7SAndroid Build Coastguard Worker 117*90e502c7SAndroid Build Coastguard Workerkey=033490ba9e82994fc21013395739038992b2edc5034f61a72345ca598d7bfd0189aa6dc2ecab32fd9af74df6dfc6 118*90e502c7SAndroid Build Coastguard Worker 119*90e502c7SAndroid Build Coastguard WorkerARGS="-k $key -a -e 256" 120*90e502c7SAndroid Build Coastguard Worker 121*90e502c7SAndroid Build Coastguard Workerecho $0 ": starting rtpw receiver process... " 122*90e502c7SAndroid Build Coastguard Worker 123*90e502c7SAndroid Build Coastguard Worker$RTPW $* $ARGS -r 0.0.0.0 $DEST_PORT & 124*90e502c7SAndroid Build Coastguard Worker 125*90e502c7SAndroid Build Coastguard Workerreceiver_pid=$! 126*90e502c7SAndroid Build Coastguard Worker 127*90e502c7SAndroid Build Coastguard Workerecho $0 ": receiver PID = $receiver_pid" 128*90e502c7SAndroid Build Coastguard Worker 129*90e502c7SAndroid Build Coastguard Workersleep 1 130*90e502c7SAndroid Build Coastguard Worker 131*90e502c7SAndroid Build Coastguard Worker# verify that the background job is running 132*90e502c7SAndroid Build Coastguard Workerps -e | grep -q $receiver_pid 133*90e502c7SAndroid Build Coastguard Workerretval=$? 134*90e502c7SAndroid Build Coastguard Workerecho $retval 135*90e502c7SAndroid Build Coastguard Workerif [ $retval != 0 ]; then 136*90e502c7SAndroid Build Coastguard Worker echo $0 ": error" 137*90e502c7SAndroid Build Coastguard Worker exit 254 138*90e502c7SAndroid Build Coastguard Workerfi 139*90e502c7SAndroid Build Coastguard Worker 140*90e502c7SAndroid Build Coastguard Workerecho $0 ": starting rtpw sender process..." 141*90e502c7SAndroid Build Coastguard Worker 142*90e502c7SAndroid Build Coastguard Worker$RTPW $* $ARGS -s 127.0.0.1 $DEST_PORT & 143*90e502c7SAndroid Build Coastguard Worker 144*90e502c7SAndroid Build Coastguard Workersender_pid=$! 145*90e502c7SAndroid Build Coastguard Worker 146*90e502c7SAndroid Build Coastguard Workerecho $0 ": sender PID = $sender_pid" 147*90e502c7SAndroid Build Coastguard Worker 148*90e502c7SAndroid Build Coastguard Worker# verify that the background job is running 149*90e502c7SAndroid Build Coastguard Workerps -e | grep -q $sender_pid 150*90e502c7SAndroid Build Coastguard Workerretval=$? 151*90e502c7SAndroid Build Coastguard Workerecho $retval 152*90e502c7SAndroid Build Coastguard Workerif [ $retval != 0 ]; then 153*90e502c7SAndroid Build Coastguard Worker echo $0 ": error" 154*90e502c7SAndroid Build Coastguard Worker exit 255 155*90e502c7SAndroid Build Coastguard Workerfi 156*90e502c7SAndroid Build Coastguard Worker 157*90e502c7SAndroid Build Coastguard Workersleep $DURATION 158*90e502c7SAndroid Build Coastguard Worker 159*90e502c7SAndroid Build Coastguard Workerkill $receiver_pid 160*90e502c7SAndroid Build Coastguard Workerkill $sender_pid 161*90e502c7SAndroid Build Coastguard Worker 162*90e502c7SAndroid Build Coastguard Workerwait $receiver_pid 2>/dev/null 163*90e502c7SAndroid Build Coastguard Workerwait $sender_pid 2>/dev/null 164*90e502c7SAndroid Build Coastguard Worker 165*90e502c7SAndroid Build Coastguard Workerecho $0 ": done (test passed)" 166*90e502c7SAndroid Build Coastguard Worker 167*90e502c7SAndroid Build Coastguard Workerelse 168*90e502c7SAndroid Build Coastguard Worker 169*90e502c7SAndroid Build Coastguard Workerecho "error: can't find executable" $RTPW 170*90e502c7SAndroid Build Coastguard Workerexit 1 171*90e502c7SAndroid Build Coastguard Worker 172*90e502c7SAndroid Build Coastguard Workerfi 173*90e502c7SAndroid Build Coastguard Worker 174*90e502c7SAndroid Build Coastguard Worker# EOF 175*90e502c7SAndroid Build Coastguard Worker 176*90e502c7SAndroid Build Coastguard Worker 177