From b313b5840c8e1319c5d967bd0d38ef911b66df96 Mon Sep 17 00:00:00 2001 From: Eduardo Ramos Testillano Date: Thu, 21 Jan 2016 22:02:51 +0100 Subject: [PATCH] Improvements on script. Check for real result code. SymLink CER files. --- .../resources/scripts/tinyTestcase.sh | 74 +++++++++++++------ 1 file changed, 51 insertions(+), 23 deletions(-) diff --git a/example/diameter/launcher/resources/scripts/tinyTestcase.sh b/example/diameter/launcher/resources/scripts/tinyTestcase.sh index 7536e62..dad68ed 100755 --- a/example/diameter/launcher/resources/scripts/tinyTestcase.sh +++ b/example/diameter/launcher/resources/scripts/tinyTestcase.sh @@ -49,8 +49,8 @@ usage() { echo echo " This script will create a basic testcase based on frames timeline (11, 13, 15, etc.), from the desired" echo " end-point list. For example, from the 'gentraf' point of view, outgoing requests will be translated as" - echo " sendxml operations with corresponding waits for answers and successful result code (2001). CER/A are" - echo " detected creating a symbolic link to better reference them, and DPR/A are ignored." + echo " sendxml operations with corresponding waits for answers and corresponding result codes (normally 2001)." + echo " CER/A are detected creating a symbolic link to better reference them, and DPR/A are ignored." echo echo " The provided test end point list shall match metadata 'src' field in order to filter the valid testcase" echo " messages. In case of nothing provided (empty string) a list with the possible values from the source" @@ -74,8 +74,19 @@ usage() { echo " will be detected and symbolically linked with the name 'cer..xml'." _exit } + +# $1: xml file +getOriginHost () { + grep "/dev/null` ) - [ ${#xml[@]} -ne 1 ] && _exit "There must be one xml message file corresponding to '$mtd' !!" - resultcode=$2 + local mtd=$1 + local xml=$2 + local resultcode=$3 # Ignore disconnect peer messages on testcase format (they have no session-id): grep "^code=282$" $mtd > /dev/null [ $? -eq 0 ] && return - code=$(grep ^code $mtd | cut -d= -f2) - isrequest=$(grep ^isrequest $mtd | cut -d= -f2) - sessionid=$(grep Session-Id $xml | cut -d\" -f4) - lines=$(wc -l $TESTCASE_BN | awk '{ print $1 }') + local code=$(grep ^code $mtd | cut -d= -f2) + local isrequest=$(grep ^isrequest $mtd | cut -d= -f2) + local sessionid=$(grep Session-Id $xml | cut -d\" -f4) + local lines=$(wc -l $TESTCASE_BN | awk '{ print $1 }') - s_waitfe="test|1|waitfe|$code|$((1-isrequest))" + local s_waitfe="test|1|waitfe|$code|$((1-isrequest))" [ -n "$sessionid" ] && s_waitfe="${s_waitfe}|||${sessionid}" if [ $isrequest -eq 1 ] then echo "test|1|sendxml2e|$xml" >> $TESTCASE_BN - [ -n "$resultcode" ] && s_waitfe="${s_waitfe}|2001" + if [ -n "$resultcode" ] + then + local rc=$(getResultCode $xml) + [ -z "$rc" ] && rc=2001 + s_waitfe="${s_waitfe}|${rc}" + fi echo "$s_waitfe" >> $TESTCASE_BN else echo "$s_waitfe" >> $TESTCASE_BN @@ -156,6 +171,7 @@ ls *.needed >/dev/null 2>/dev/null # Messages classification: 0> cers_4_starting +0> cers_4_starting_origin_hosts 0> requests_4_sending 0> answers_4_programming 0> $TESTCASE_BN @@ -167,26 +183,36 @@ TIMEOUT_SEC=$3 # Process frames: for frame in `ls *.needed | cut -d\. -f1 | sort -n` do - file=( `ls ${frame}.*metadata 2>/dev/null` ) - [ ${#file[@]} -ne 1 ] && _exit "There must be one metadata file corresponding to frame '$frame' !!" - + mtd=( `ls ${frame}.*metadata 2>/dev/null` ) + [ ${#mtd[@]} -ne 1 ] && _exit "There must be one metadata file corresponding to frame '$frame' !!" + xml=( `ls ${frame}.*xml 2>/dev/null` ) + [ ${#xml[@]} -ne 1 ] && _exit "There must be one xml message file corresponding to '$mtd' (frame '$frame') !!" + # Ignore keep alives: - grep -q "^code=280$" $file + grep -q "^code=280$" $mtd [ $? -eq 0 ] && continue - grep -q "^isrequest=1$" $file + grep -q "^isrequest=1$" $mtd if [ $? -eq 0 ] then - grep -q "^code=257$" $file - [ $? -eq 0 ] && { echo $frame >> cers_4_starting ; continue ; } + grep -q "^code=257$" $mtd + if [ $? -eq 0 ] + then + echo $frame >> cers_4_starting + originHost=$(getOriginHost $xml) + [ -z "$originHost" ] && _exit "Missing Origin-Host (frame $frame, CER message) !!" + echo "$originHost" >> cers_4_starting_origin_hosts + ln -sf $xml cer.${originHost}.xml + continue + fi echo $frame >> requests_4_sending - update_testcase $frame check_result_code + update_testcase $mtd $xml check_result_code else # Ignore CEA's: - grep -q "^code=257$" $file + grep -q "^code=257$" $mtd [ $? -eq 0 ] && continue echo $frame >> answers_4_programming - update_testcase $frame + update_testcase $mtd $xml fi done rm -f *.needed @@ -212,3 +238,5 @@ do count=$((count+1)) done +exit 0 + -- 2.20.1