This repository has been archived on 2025-07-20. You can view files and clone it, but you cannot make any changes to it's state, such as pushing and creating new issues, pull requests or comments.
ossp/firewall-server/test.sh

122 lines
2.2 KiB
Bash

#!/bin/bash
#globals
ret=0
server="server"
client="client"
serverOut=testServerOutput.txt
clientOut=testClientOutput.txt
successFile=testSuccess.txt
IPADDRESS=localhost
PORT=2200
# --- helper function ---
function run(){
echo -e "$1:"
$1 #execute
#check errors
tmp=$?
if [ $tmp -ne 0 ]; then
ret=$tmp
fi
echo "" #newline
return $tmp
}
function checkConnection() {
sleep 0.1
case `netstat -a -n -p 2>/dev/null| grep $PORT ` in
*":::2200"*)
return 1;;
esac
sleep 0.2
case `netstat -a -n -p 2>/dev/null| grep $PORT` in
*":::2200"*)
return 1;;
esac
sleep 0.2
case `netstat -a -n -p 2>/dev/null| grep $PORT` in
*":::2200"*)
return 1;;
esac
sleep 0.2
case `netstat -a -n -p 2>/dev/null| grep $PORT` in
*":::2200"*)
return 1;;
esac
sleep 0.2
case `netstat -a -n -p 2>/dev/null| grep $PORT` in
*":::2200"*)
return 1;;
esac
return 0
}
# --- TESTCASES ---
function basic_testcase(){
t="testcase 1"
#cleanup
rm -f $serverOut
rm -f $clientOut
rm -f $successFile
echo "Rule added" > $successFile
killall $server > /dev/null 2> /dev/null
# start server
echo -en "starting server: \t"
./$server $PORT > $serverOut 2>&1 &
checkConnection
if [ $? -ne 1 ]
then
echo -e "ERROR: could not start server"
return -1
else
echo "OK"
fi
# start client
command="A 147.188.192.41 443"
echo -en "executing client: \t"
./$client $IPADDRESS $PORT $command > $clientOut 2>/dev/null
if [ $? -ne 0 ]
then
echo -e "Error: Could not execute client"
killall $server > /dev/null 2> /dev/null
return -1
else
echo "OK"
fi
killall $server > /dev/null 2> /dev/null
if [ ! -r $clientOut ]
then
echo "Error: Client produced no output"
return -1
fi
echo -en "server result: \t"
res=`diff $clientOut $successFile 2>&1`
if [ " $res" != " " ]
then
echo "Error: Server returned invalid result"
return -1
else
echo "OK"
fi
return 0
}
# --- execution ---
#reset
rmmod $executable 2>/dev/null
run basic_testcase
#cleanup
if [ $ret != 0 ]
then
echo Basic test failed
else
echo Basic test succeeded
fi
exit $ret