+# $1: hex formatted file to send to the server
+send_xml () {
+ ../operation.sh "sendxml|$1"
+}
+
+send_hex () {
+ sleep 1
+ ../operation.sh "sendxml|$1"
+}
+
+# $1: pattern; $2: file
+check_pattern () {
+ echo "Matching pattern '$1' ..."
+ cat $2 | tr '\n' ' ' | egrep "$1" >/dev/null
+ res=${PIPESTATUS[2]}
+ [ $? -ne 0 ] && _exit "Test failed: miss pattern !!"
+}
+
+test_ok () {
+ echo
+ echo $1
+ echo "Test OK !"
+ echo
+ exit 0
+}
+
+test_failed () {
+ echo
+ echo $1
+ echo "Test FAILED !"
+ echo
+ exit 1
+}
+
+
+# $1: traffic log to monitor
+# $2: timeout (request expiration) in seconds
+# Result: cats the message when completed
+monitor_4_message () {
+ 0>$1
+ rm -f .msg_received
+
+ [ -z "$2" ] && _exit "ERROR: must provide '$FUNCNAME' timeout (second argument)"
+ sleep $2 &
+ local timerPid=$!
+
+ # Monitor for incoming message:
+ tail -n0 -F --pid=$timerPid $1 | while read line
+ do
+ if echo $line | grep "^</message>" >/dev/null; then
+ echo "Message received"
+ # stop the timer
+ kill -13 $timerPid
+ touch .msg_received
+ fi
+ done
+
+ if [ ! -f .msg_received ]; then
+ echo "Timeout expired"
+ return 1
+ fi
+
+ return 0
+}
+