echo "Args: remote|remote-remove docker|kube --env-file <environment-filename> [release] [auto-clean] [--stop-at-error] "
echo " [--ricsim-prefix <prefix> ] [--use-local-image <app-nam>+] [--use-snapshot-image <app-nam>+]"
echo " [--use-staging-image <app-nam>+] [--use-release-image <app-nam>+] [--image-repo <repo-address]"
- echo " [--repo-policy local|remote] [--cluster-timeout <timeout-in seconds>]"
+ echo " [--repo-policy local|remote] [--cluster-timeout <timeout-in seconds>] [--print-stats]"
}
if [ $# -eq 1 ] && [ "$1" == "help" ]; then
echo "--image-repo - Url to optional image repo. Only locally built images will be re-tagged and pushed to this repo"
echo "--repo-policy - Policy controlling which images to re-tag and push if param --image-repo is set. Default is 'local'"
echo "--cluster-timeout - Optional timeout for cluster where it takes time to obtain external ip/host-name. Timeout in seconds. "
+ echo "--print-stats - Print current test stats after each test."
+
echo ""
echo "List of app short names supported: "$APP_SHORT_NAMES
exit 0
RES_CONF_FAIL=0
RES_DEVIATION=0
+#Var to control if current stats shall be printed
+PRINT_CURRENT_STATS=0
+
#File to keep deviation messages
DEVIATION_FILE=".tmp_deviations"
rm $DEVIATION_FILE &> /dev/null
if [ $? -eq 127 ]; then
echo -e $RED"Function not found, setting script to FAIL"$ERED
((RES_CONF_FAIL++))
+ __print_current_stats
fi
}
trap trap_fnc ERR
((TEST_SEQUENCE_NR++))
}
+# Function to print current statistics
+__print_current_stats() {
+ if [ $PRINT_CURRENT_STATS -ne 0 ]; then
+ echo " Current stats - exe-time, tests, passes, fails, conf fails, deviations: $(($SECONDS-$TCTEST_START)), $RES_TEST, $RES_PASS, $RES_FAIL, $RES_CONF_FAIL, $RES_DEVIATION"
+ fi
+}
+
# General function to log a failed test case
__log_test_fail_general() {
echo -e $RED" FAIL."$1 $ERED
((RES_FAIL++))
+ __print_current_stats
__check_stop_at_error
}
__log_test_fail_status_code() {
echo -e $RED" FAIL. Exepected status "$1", got "$2 $3 $ERED
((RES_FAIL++))
+ __print_current_stats
__check_stop_at_error
}
__log_test_fail_body() {
echo -e $RED" FAIL, returned body not correct"$ERED
((RES_FAIL++))
+ __print_current_stats
__check_stop_at_error
}
__log_test_fail_not_supported() {
echo -e $RED" FAIL, function not supported"$ERED
((RES_FAIL++))
+ __print_current_stats
__check_stop_at_error
}
fi
((RES_PASS++))
echo -e $GREEN" PASS"$EGREEN
+ __print_current_stats
}
#Counter for configurations
__log_conf_fail_general() {
echo -e $RED" FAIL."$1 $ERED
((RES_CONF_FAIL++))
+ __print_current_stats
__check_stop_at_error
}
__log_conf_fail_status_code() {
echo -e $RED" FAIL. Exepected status "$1", got "$2 $3 $ERED
((RES_CONF_FAIL++))
+ __print_current_stats
__check_stop_at_error
}
__log_conf_fail_body() {
echo -e $RED" FAIL, returned body not correct"$ERED
((RES_CONF_FAIL++))
+ __print_current_stats
__check_stop_at_error
}
echo $@
fi
echo -e $GREEN" OK"$EGREEN
+ __print_current_stats
}
#Var for measuring execution time
fi
fi
fi
+ if [ $paramerror -eq 0 ]; then
+ if [ "$1" == "--print-stats" ]; then
+ PRINT_CURRENT_STATS=1
+ echo "Option set - Print stats"
+ shift;
+ foundparm=0
+ fi
+ fi
done
echo ""
echo -e $RED"One or more images could not be pulled or containers using the images could not be stopped/removed"$ERED
echo -e $RED"Or local image, overriding remote image, does not exist"$ERED
if [ $IMAGE_CATEGORY == "DEV" ]; then
- echo -e $RED"Note that SNAPSHOT images may be purged from nexus after a certain period."$ERED
- echo -e $RED"In that case, switch to use a released image instead."$ERED
+ echo ""
+ echo -e $RED"Note that SNAPSHOT and staging images may be purged from nexus after a certain period."$ERED
+ echo -e $RED"In addition, the image may not have been updated in the current release so no SNAPSHOT or staging image exists"$ERED
+ echo -e $RED"In these cases, switch to use a released image instead, use the flag '--use-release-image <App-short-name>'"$ERED
+ echo -e $RED"Use the 'App-short-name' for the applicable image from the above table: 'Images configured for start arg'."$ERED
fi
echo "#################################################################################################"
echo ""
((RES_DEVIATION++))
echo -e $BOLD$YELLOW" Test case deviation: ${@:1}"$EYELLOW$EBOLD
echo "Line: ${BASH_LINENO[0]} - ${@:1}" >> $DEVIATION_FILE
+ __print_current_stats
echo ""
}
__var_test() {
checkjsonarraycount=0
-
+ TIMESTAMP=$(date "+%Y-%m-%d %H:%M:%S")
if [ $# -eq 6 ]; then
if [[ $3 == "json:"* ]]; then
checkjsonarraycount=1
fi
echo -e $BOLD"TEST $TEST_SEQUENCE_NR (${BASH_LINENO[1]}): ${1}, ${3} ${4} ${5} within ${6} seconds"$EBOLD
+ echo "TEST $TEST_SEQUENCE_NR - ${TIMESTAMP}: (${BASH_LINENO[1]}): ${1}, ${3} ${4} ${5} within ${6} seconds" >> $HTTPLOG
+
((RES_TEST++))
((TEST_SEQUENCE_NR++))
start=$SECONDS
if [ $duration -gt $6 ]; then
((RES_FAIL++))
echo -e $RED" FAIL${ERED} - ${3} ${4} ${5} not reached in ${6} seconds, result = ${result}"
+ __print_current_stats
__check_stop_at_error
return
fi
((RES_PASS++))
echo -e " Result=${result} after ${duration} seconds${SAMELINE}"
echo -e $GREEN" PASS${EGREEN} - Result=${result} after ${duration} seconds"
+ __print_current_stats
return
elif [ $4 = ">" ] && [ "$result" -gt $5 ]; then
((RES_PASS++))
echo -e " Result=${result} after ${duration} seconds${SAMELINE}"
echo -e $GREEN" PASS${EGREEN} - Result=${result} after ${duration} seconds"
+ __print_current_stats
return
elif [ $4 = "<" ] && [ "$result" -lt $5 ]; then
((RES_PASS++))
echo -e " Result=${result} after ${duration} seconds${SAMELINE}"
echo -e $GREEN" PASS${EGREEN} - Result=${result} after ${duration} seconds"
+ __print_current_stats
return
elif [ $4 = "contain_str" ] && [[ $result =~ $5 ]]; then
((RES_PASS++))
echo -e " Result=${result} after ${duration} seconds${SAMELINE}"
echo -e $GREEN" PASS${EGREEN} - Result=${result} after ${duration} seconds"
+ __print_current_stats
return
else
if [ $duration -gt $6 ]; then
((RES_FAIL++))
echo -e $RED" FAIL${ERED} - ${3} ${4} ${5} not reached in ${6} seconds, result = ${result}"
+ __print_current_stats
__check_stop_at_error
return
fi
fi
echo -e $BOLD"TEST $TEST_SEQUENCE_NR (${BASH_LINENO[1]}): ${1}, ${3} ${4} ${5}"$EBOLD
+ echo "TEST $TEST_SEQUENCE_NR - ${TIMESTAMP}: (${BASH_LINENO[1]}): ${1}, ${3} ${4} ${5}" >> $HTTPLOG
((RES_TEST++))
((TEST_SEQUENCE_NR++))
if [ $checkjsonarraycount -eq 0 ]; then
if [ $retcode -ne 0 ]; then
((RES_FAIL++))
echo -e $RED" FAIL ${ERED}- ${3} ${4} ${5} not reached, result = ${result}"
+ __print_current_stats
__check_stop_at_error
elif [ $4 = "=" ] && [ "$result" -eq $5 ]; then
((RES_PASS++))
echo -e $GREEN" PASS${EGREEN} - Result=${result}"
+ __print_current_stats
elif [ $4 = ">" ] && [ "$result" -gt $5 ]; then
((RES_PASS++))
echo -e $GREEN" PASS${EGREEN} - Result=${result}"
+ __print_current_stats
elif [ $4 = "<" ] && [ "$result" -lt $5 ]; then
((RES_PASS++))
echo -e $GREEN" PASS${EGREEN} - Result=${result}"
+ __print_current_stats
elif [ $4 = "contain_str" ] && [[ $result =~ $5 ]]; then
((RES_PASS++))
echo -e $GREEN" PASS${EGREEN} - Result=${result}"
+ __print_current_stats
else
((RES_FAIL++))
echo -e $RED" FAIL${ERED} - ${3} ${4} ${5} not reached, result = ${result}"
+ __print_current_stats
__check_stop_at_error
fi
else