X-Git-Url: https://git.teslayout.com/public/public/public/?p=anna.git;a=blobdiff_plain;f=example%2Fdiameter%2Flauncher%2Fresources%2Fscripts%2Fclone.sh;h=747e8b01b3430cbd5254e27e4e93bffcc0704917;hp=c84423d8114173d125f17e105624d15ec689c5d0;hb=1ac015cbbcd331edc3c14de26290d669d91e4e53;hpb=c23420c0590192eb25ad5344bf1d9485f789e257 diff --git a/example/diameter/launcher/resources/scripts/clone.sh b/example/diameter/launcher/resources/scripts/clone.sh index c84423d..747e8b0 100755 --- a/example/diameter/launcher/resources/scripts/clone.sh +++ b/example/diameter/launcher/resources/scripts/clone.sh @@ -1,4 +1,11 @@ #!/bin/bash +##################################################### +#### #### +## ## +# THIS SCRIPT IS NORMALLY INTENDED FOR INTERNAL USE # +## ## +#### #### +##################################################### ############# # VARIABLES # @@ -7,6 +14,7 @@ CLONE_WKDIR=$(mktemp -d) #MAX_NUMBER_GROUPS=400 MAX_NUMBER_GROUPS=200 # (depends on the machine) +CLONE_EXTRA_VARS_SCR_BN=clone-extra-vars.sh ############# # FUNCTIONS # @@ -39,19 +47,18 @@ usage() { echo " testcase variable file: path to the testcase file with parseable variables, for example '/testcase.txt.msk'." echo " xml files within this test case, must exist with aditional .msk extension in the same directory." echo - echo " Currently, 9 variables are supported to be replaced:" + echo " Currently, 4 variables are supported to be replaced:" echo echo " * __TESTID__ : sequence number. For example if you provide 1 to 20 for this script, it will be 1 .. 20" echo " * __SEQ8__ : 8-digit number corresponding to the sequence number (00000001 for 1, and so on)" echo " * __IPV4HEX__ : hexadecimal IPv4 address, for example: 00000001" echo " * __IPV4__ : IPv4 address, for example: 0.0.0.1" echo - #echo " One variant (former ones plus 1):" - #echo " __SEQ8P1__ : 8-digit number corresponding to the sequence number (00000002 for 1, and so on)" - #echo " __IPV4HEXP1__: hexadecimal IPv4 address, for example: 00000002" - #echo " __IPV4P1__ : IPv4 address, for example: 0.0.0.2" - #echo - echo " Edit the variables section to add more special values if you need them." + echo " Optionally (when exists), a user defined file '$CLONE_EXTRA_VARS_SCR_BN' is sourced to extend the parseable" + echo " variables used within the test case stuff (this script must be placed on that directory). The script" + echo " will be called with the sequence number as argument during clone procedure, and shall define the needed" + echo " variable values referenced in the parsed files. The variables must be named as '____' which ensures" + echo " that main clone script environment is not contaminated." echo echo " initial sequence: initial sequence number to parse over variables." echo " final sequence: final sequence number to parse over variables." @@ -95,32 +102,20 @@ clone() { local wkdir=$2 mkdir -p $wkdir - ############################################# SPECIAL VARIABLES SECTION ############################################# - ################################ EDIT THIS SECTION IF YOU NEED NEW SPECIAL VARIABLES ################################ + ############################################# VARIABLES SECTION ############################################# testid=$sequence seq8=$(printf "%08d" $testid) - #seq8_p1=$((seq8+1)) ipv4hex=$seq8 - #ipv4hex_p1=$seq8_p1 - #ipv4=$(for i in $(echo $seq8 | sed 's/\(..\)/0x\1 /g'); do printf "%d." $i; done | sed 's/\.$/\n/') # Numbers beginning with "0" are treated as octal (i.e. base-8): we would have 'invalid octal number with 08 and 09' # Solution: convert to base-10 in this way: $((10#$i)) ipv4=$(for i in $(echo $seq8 | sed 's/\(..\)/ \1 /g'); do printf "%d." $((10#$i)); done | sed 's/\.$/\n/') - #ipv4_p1=$(for i in $(echo $seq8_p1 | sed 's/\(..\)/ \1 /g'); do printf "%d." $((10#$i)); done | sed 's/\.$/\n/') - - local target=$wkdir/values.${1} - echo "__TESTID__=$testid" > $target - echo "__SEQ8__=$seq8" >> $target - echo "__IPV4HEX__=$ipv4hex" >> $target - echo "__IPV4__=$ipv4" >> $target - ## First variant: - #echo "__SEQ8P1__=$seq8_p1" >> $target - #echo "__IPV4HEXP1__=$ipv4hex_p1" >> $target - #echo "__IPV4P1__=$ipv4_p1" >> $target - source $target - #rm $target - ######################################### END SPECIAL VARIABLES SECTION ######################################### + __TESTID__=$testid + __SEQ8__=$seq8 + __IPV4HEX__=$ipv4hex + __IPV4__=$ipv4 + [ -n "$extra_vars" ] && source $CLONE_EXTRA_VARS_SCR_FILE $sequence + ######################################### END VARIABLES SECTION ######################################### # Parse template files: parse_file $sequence $TESTCASE_TEMPLATE $wkdir/testcase.txt.$sequence @@ -166,6 +161,9 @@ N_GROUPS=$5 POPULATION=$6 POPULATION_FILE=$TESTCASE_TEMPLATE_DIR/$POPULATION POPULATION_ALL=$TESTCASE_TEMPLATE_DIR/${POPULATION}.all +CLONE_EXTRA_VARS_SCR_FILE=$TESTCASE_TEMPLATE_DIR/$CLONE_EXTRA_VARS_SCR_BN +extra_vars= +[ -f $CLONE_EXTRA_VARS_SCR_FILE ] && extra_vars=yes [ "$4" = "" ] && usage @@ -202,6 +200,7 @@ timestamp_begin=$(echo "scale=3 ; $(date '+%s') + $(date '+%N') / 1000000000" | children_before=$(children) offset=0 $OPERATION "test|clear" +[ $? -ne 0 ] && _exit "Clone aborted: failed to clean tests !" echo "Please be patient, this may take a while ..." #echo "Temporary directory: $CLONE_WKDIR" for group in `seq 1 $((N_GROUPS+1))`