Blame contrib/jenkins_tests/vutil.sh

Packit Service aa3af4
#!/bin/bash
Packit Service aa3af4
Packit Service aa3af4
HOST=$(hostname)
Packit Service aa3af4
Packit Service aa3af4
server_success_msgs="'Test end', 'interrupted by', 'exit'"
Packit Service aa3af4
server_failure_msgs="'Segmentation fault', 'Assertion', 'ERROR'"
Packit Service aa3af4
Packit Service aa3af4
client_success_ul_msgs="'Test ended', 'Summary: Latency is'"
Packit Service aa3af4
client_success_pp_msgs="'Test ended', 'Summary: Latency is'"
Packit Service aa3af4
client_success_tp_msgs="'Test ended', 'Summary: Message Rate'"
Packit Service aa3af4
client_failure_msgs="'Segmentation fault', 'Assertion', 'ERROR', 'server down'"
Packit Service aa3af4
Packit Service aa3af4
dlm=~
Packit Service aa3af4
Packit Service aa3af4
############
Packit Service aa3af4
ts_tcp_pp()
Packit Service aa3af4
############
Packit Service aa3af4
{
Packit Service aa3af4
	local sperf=$1 local ipaddr=$2 local opts=$3
Packit Service aa3af4
	#1
Packit Service aa3af4
	ts_tcp_pp_tc1="#1 - ping-pong w/o arguments"${dlm}
Packit Service aa3af4
	ts_tcp_pp_tc1+="${sperf} pp -i ${ipaddr} --tcp ${opts}"${dlm}
Packit Service aa3af4
	ts_tcp_pp_tc1+=${server_success_msgs}${dlm}
Packit Service aa3af4
	ts_tcp_pp_tc1+=${server_failure_msgs}${dlm}
Packit Service aa3af4
	ts_tcp_pp_tc1+="client_success='Test ended', 'Summary: Latency is', 'Warmup stage (sending a few dummy messages)...'"${dlm}
Packit Service aa3af4
	ts_tcp_pp_tc1+=${client_failure_msgs}
Packit Service aa3af4
	#2
Packit Service aa3af4
	ts_tcp_pp_tc2="#2 - ping-pong option --dontwarmup"${dlm}
Packit Service aa3af4
	ts_tcp_pp_tc2+="${sperf} pp -i ${ipaddr} --tcp --dontwarmup ${opts}"${dlm}
Packit Service aa3af4
	ts_tcp_pp_tc2+=${server_success_msgs}${dlm}
Packit Service aa3af4
	ts_tcp_pp_tc2+=${server_failure_msgs}${dlm}
Packit Service aa3af4
	ts_tcp_pp_tc2+=${client_success_pp_msgs}${dlm}
Packit Service aa3af4
	ts_tcp_pp_tc2+="client_failure='Segmentation fault', 'Assertion', 'ERROR', 'server down', 'Warmup stage (sending a few dummy messages)...'"
Packit Service aa3af4
	#3
Packit Service aa3af4
	ts_tcp_pp_tc3="#3 - ping-pong option -b10"${dlm}
Packit Service aa3af4
	ts_tcp_pp_tc3+="${sperf} pp -i ${ipaddr} --tcp -b10 ${opts}"${dlm}
Packit Service aa3af4
	ts_tcp_pp_tc3+=${server_success_msgs}${dlm}
Packit Service aa3af4
	ts_tcp_pp_tc3+=${server_failure_msgs}${dlm}
Packit Service aa3af4
	ts_tcp_pp_tc3+="client_success='Test ended', 'Summary: Latency of burst of 10 messages'"${dlm}
Packit Service aa3af4
	ts_tcp_pp_tc3+=${client_failure_msgs}
Packit Service aa3af4
	#4
Packit Service aa3af4
	ts_tcp_pp_tc4="#4 - ping-pong option -b100"${dlm}
Packit Service aa3af4
	ts_tcp_pp_tc4+="${sperf} pp -i ${ipaddr} --tcp -b100 ${opts}"${dlm}
Packit Service aa3af4
	ts_tcp_pp_tc4+=${server_success_msgs}${dlm}
Packit Service aa3af4
	ts_tcp_pp_tc4+=${server_failure_msgs}${dlm}
Packit Service aa3af4
	ts_tcp_pp_tc4+="client_success='Test ended', 'Summary: Latency of burst of 100 messages'"${dlm}
Packit Service aa3af4
	ts_tcp_pp_tc4+=${client_failure_msgs}
Packit Service aa3af4
	#5
Packit Service aa3af4
	ts_tcp_pp_tc5="#5 - ping-pong option -b1000"${dlm}
Packit Service aa3af4
	ts_tcp_pp_tc5+="${sperf} pp -i ${ipaddr} --tcp -b1000 ${opts}"${dlm}
Packit Service aa3af4
	ts_tcp_pp_tc5+=${server_success_msgs}${dlm}
Packit Service aa3af4
	ts_tcp_pp_tc5+=${server_failure_msgs}${dlm}
Packit Service aa3af4
	ts_tcp_pp_tc5+="client_success='Test ended', 'Summary: Latency of burst of 1000 messages'"${dlm}
Packit Service aa3af4
	ts_tcp_pp_tc5+=${client_failure_msgs}
Packit Service aa3af4
	#6
Packit Service aa3af4
	ts_tcp_pp_tc6="#6 - ping-pong option -t10"${dlm}
Packit Service aa3af4
	ts_tcp_pp_tc6+="${sperf} pp -i ${ipaddr} --tcp -t10 ${opts}"${dlm}
Packit Service aa3af4
	ts_tcp_pp_tc6+=${server_success_msgs}${dlm}
Packit Service aa3af4
	ts_tcp_pp_tc6+=${server_failure_msgs}${dlm}
Packit Service aa3af4
	ts_tcp_pp_tc6+="client_success='Test ended', 'Summary: Latency is', 'RunTime=10'"${dlm}
Packit Service aa3af4
	ts_tcp_pp_tc6+=${client_failure_msgs}
Packit Service aa3af4
	#7
Packit Service aa3af4
	ts_tcp_pp_tc7="#7 - ping-pong option -t30"${dlm}
Packit Service aa3af4
	ts_tcp_pp_tc7+="${sperf} pp -i ${ipaddr} --tcp -t30 ${opts}"${dlm}
Packit Service aa3af4
	ts_tcp_pp_tc7+=${server_success_msgs}${dlm}
Packit Service aa3af4
	ts_tcp_pp_tc7+=${server_failure_msgs}${dlm}
Packit Service aa3af4
	ts_tcp_pp_tc7+="client_success='Test ended', 'Summary: Latency is', 'RunTime=30'"${dlm}
Packit Service aa3af4
	ts_tcp_pp_tc7+=${client_failure_msgs}
Packit Service aa3af4
	#8
Packit Service aa3af4
	ts_tcp_pp_tc8="#8 - ping-pong option -m32"${dlm}
Packit Service aa3af4
	ts_tcp_pp_tc8+="${sperf} pp -i ${ipaddr} --tcp -m32 ${opts}"${dlm}
Packit Service aa3af4
	ts_tcp_pp_tc8+=${server_success_mss}${dlm}
Packit Service aa3af4
	ts_tcp_pp_tc8+=${server_failure_msgs}${dlm}
Packit Service aa3af4
	ts_tcp_pp_tc8+=${client_success_pp_msgs}${dlm}
Packit Service aa3af4
	ts_tcp_pp_tc8+=${client_failure_msgs}
Packit Service aa3af4
	#9
Packit Service aa3af4
	ts_tcp_pp_tc9="#9 - ping-pong option -m4096"${dlm}
Packit Service aa3af4
	ts_tcp_pp_tc9+="${sperf} pp -i ${ipaddr} --tcp -m4096 ${opts}"${dlm}
Packit Service aa3af4
	ts_tcp_pp_tc9+=${server_success_msgs}${dlm}
Packit Service aa3af4
	ts_tcp_pp_tc9+=${server_failure_msgs}${dlm}
Packit Service aa3af4
	ts_tcp_pp_tc9+=${client_success_pp_msgs}${dlm}
Packit Service aa3af4
	ts_tcp_pp_tc9+=${client_failure_msgs}
Packit Service aa3af4
}
Packit Service aa3af4
Packit Service aa3af4
############
Packit Service aa3af4
ts_tcp_tp()
Packit Service aa3af4
############
Packit Service aa3af4
{
Packit Service aa3af4
	local sperf=$1 local ipaddr=$2 local opts=$3
Packit Service aa3af4
	#1
Packit Service aa3af4
	ts_tcp_tp_tc1="#1 - throughput w/o arguments"${dlm}
Packit Service aa3af4
	ts_tcp_tp_tc1+="${sperf} tp -i ${ipaddr} --tcp ${opts}"${dlm}
Packit Service aa3af4
	ts_tcp_tp_tc1+=${server_success_msgs}${dlm}
Packit Service aa3af4
	ts_tcp_tp_tc1+=${server_failure_msgs}${dlm}
Packit Service aa3af4
	ts_tcp_tp_tc1+="client_success='Test ended', 'Summary: Message Rate', 'Warmup stage (sending a few dummy messages)...'"${dlm}
Packit Service aa3af4
	ts_tcp_tp_tc1+=${client_failure_msgs}
Packit Service aa3af4
	#2
Packit Service aa3af4
	ts_tcp_tp_tc2="#2 - throughput option --dontwarmup"${dlm}
Packit Service aa3af4
	ts_tcp_tp_tc2+="${sperf} tp -i ${ipaddr} --tcp --dontwarmup ${opts}"${dlm}
Packit Service aa3af4
	ts_tcp_tp_tc2+=${server_success_msgs}${dlm}
Packit Service aa3af4
	ts_tcp_tp_tc2+=${server_failure_msgs}${dlm}
Packit Service aa3af4
	ts_tcp_tp_tc2+="client_success='Test ended', 'Summary: Message Rate'"${dlm}
Packit Service aa3af4
	ts_tcp_tp_tc2+="client_failure='Segmentation fault', 'Assertion', 'ERROR', 'server down', 'Warmup stage (sending a few dummy messages)...'"${dlm}
Packit Service aa3af4
	#3
Packit Service aa3af4
	ts_tcp_tp_tc3="#3 - throughput option -b10"${dlm}
Packit Service aa3af4
	ts_tcp_tp_tc3+="${sperf} tp -i ${ipaddr} --tcp -b10 ${opts}"${dlm}
Packit Service aa3af4
	ts_tcp_tp_tc3+=${server_success_msgs}${dlm}
Packit Service aa3af4
	ts_tcp_tp_tc3+=${server_failure_msgs}${dlm}
Packit Service aa3af4
	ts_tcp_tp_tc3+=${client_success_tp_msgs}${dlm}
Packit Service aa3af4
	ts_tcp_tp_tc3+=${client_failure_msgs}
Packit Service aa3af4
	#4
Packit Service aa3af4
	ts_tcp_tp_tc4="#4 - throughput option -b100"${dlm}
Packit Service aa3af4
	ts_tcp_tp_tc4+="${sperf} tp -i ${ipaddr} --tcp -b100 ${opts}"${dlm}
Packit Service aa3af4
	ts_tcp_tp_tc4+=${server_success_msgs}${dlm}
Packit Service aa3af4
	ts_tcp_tp_tc4+=${server_failure_msgs}${dlm}
Packit Service aa3af4
	ts_tcp_tp_tc4+=${client_success_tp_msgs}${dlm}
Packit Service aa3af4
	ts_tcp_tp_tc4+=${client_failure_msgs}
Packit Service aa3af4
	#5
Packit Service aa3af4
	ts_tcp_tp_tc5="#5 - throughput option -b1000"${dlm}
Packit Service aa3af4
	ts_tcp_tp_tc5+="${sperf} tp -i ${ipaddr} --tcp -b1000 ${opts}"${dlm}
Packit Service aa3af4
	ts_tcp_tp_tc5+=${server_success_msgs}${dlm}
Packit Service aa3af4
	ts_tcp_tp_tc5+=${server_failure_msgs}${dlm}
Packit Service aa3af4
	ts_tcp_tp_tc5+=${client_success_tp_msgs}${dlm}
Packit Service aa3af4
	ts_tcp_tp_tc5+=${client_failure_msgs}
Packit Service aa3af4
	#6
Packit Service aa3af4
	ts_tcp_tp_tc6="#6 - throughput option -t10"${dlm}
Packit Service aa3af4
	ts_tcp_tp_tc6+="${sperf} tp -i ${ipaddr} --tcp -t10 ${opts}"${dlm}
Packit Service aa3af4
	ts_tcp_tp_tc6+=${server_success_msgs}${dlm}
Packit Service aa3af4
	ts_tcp_tp_tc6+=${server_failure_msgs}${dlm}
Packit Service aa3af4
	ts_tcp_tp_tc6+=${client_success_tp_msgs}${dlm}
Packit Service aa3af4
	ts_tcp_tp_tc6+=${client_failure_msgs}
Packit Service aa3af4
	#7
Packit Service aa3af4
	ts_tcp_tp_tc7="#7 - throughput option -t30"${dlm}
Packit Service aa3af4
	ts_tcp_tp_tc7+="${sperf} tp -i ${ipaddr} --tcp -t30 ${opts}"${dlm}
Packit Service aa3af4
	ts_tcp_tp_tc7+=${server_success_msgs}${dlm}
Packit Service aa3af4
	ts_tcp_tp_tc7+=${server_failure_msgs}${dlm}
Packit Service aa3af4
	ts_tcp_tp_tc7+=${client_success_tp_msgs}${dlm}
Packit Service aa3af4
	ts_tcp_tp_tc7+=${client_failure_msgs}
Packit Service aa3af4
	#8
Packit Service aa3af4
	ts_tcp_tp_tc8="#8 - throughput option -m32"${dlm}
Packit Service aa3af4
	ts_tcp_tp_tc8+="${sperf} tp -i ${ipaddr} --tcp -m32 ${opts}"${dlm}
Packit Service aa3af4
	ts_tcp_tp_tc8+=${server_success_msgs}${dlm}
Packit Service aa3af4
	ts_tcp_tp_tc8+=${server_failure_msgs}${dlm}
Packit Service aa3af4
	ts_tcp_tp_tc8+=${client_success_tp_msgs}${dlm}
Packit Service aa3af4
	ts_tcp_tp_tc8+=${client_failure_msgs}
Packit Service aa3af4
	#9
Packit Service aa3af4
	ts_tcp_tp_tc9="#9 - throughput option -m4096"${dlm}
Packit Service aa3af4
	ts_tcp_tp_tc9+="${sperf} tp -i ${ipaddr} --tcp -m4096 ${opts}"${dlm}
Packit Service aa3af4
	ts_tcp_tp_tc9+=${server_success_msgs}${dlm}
Packit Service aa3af4
	ts_tcp_tp_tc9+=${server_failure_msgs}${dlm}
Packit Service aa3af4
	ts_tcp_tp_tc9+=${client_success_tp_msgs}${dlm}
Packit Service aa3af4
	ts_tcp_tp_tc9+=${client_failure_msgs}
Packit Service aa3af4
}
Packit Service aa3af4
Packit Service aa3af4
############
Packit Service aa3af4
ts_tcp_ul()
Packit Service aa3af4
############
Packit Service aa3af4
{
Packit Service aa3af4
	local sperf=$1 local ipaddr=$2 local opts=$3
Packit Service aa3af4
	#1
Packit Service aa3af4
	ts_tcp_ul_tc1="#1 - under-load w/o arguments"${dlm}
Packit Service aa3af4
	ts_tcp_ul_tc1+="${sperf} ul -i ${ipaddr} --tcp ${opts}"${dlm}
Packit Service aa3af4
	ts_tcp_ul_tc1+=${server_success_msgs}${dlm}
Packit Service aa3af4
	ts_tcp_ul_tc1+=${server_failure_msgs}${dlm}
Packit Service aa3af4
	ts_tcp_ul_tc1+="client_success='Test ended', 'Summary: Latency is', 'Warmup stage (sending a few dummy messages)...'"${dlm}
Packit Service aa3af4
	ts_tcp_ul_tc1+=${client_failure_msgs}
Packit Service aa3af4
	#2
Packit Service aa3af4
	ts_tcp_ul_tc2="#2 - under-load option --dontwarmup"${dlm}
Packit Service aa3af4
	ts_tcp_ul_tc2+="${sperf} ul -i ${ipaddr} --tcp --dontwarmup ${opts}"${dlm}
Packit Service aa3af4
	ts_tcp_ul_tc2+=${server_success_msgs}${dlm}
Packit Service aa3af4
	ts_tcp_ul_tc2+=${server_failure_msgs}${dlm}
Packit Service aa3af4
	ts_tcp_ul_tc2+=${client_success_ul_msgs}${dlm}
Packit Service aa3af4
	ts_tcp_ul_tc2+="client_failure='Segmentation fault', 'Assertion', 'ERROR', 'server down', 'Warmup stage (sending a few dummy messages)...'"${dlm}
Packit Service aa3af4
	#3
Packit Service aa3af4
	ts_tcp_ul_tc3="#3 - under-load option -b10"${dlm}
Packit Service aa3af4
	ts_tcp_ul_tc3+="${sperf} ul -i ${ipaddr} --tcp -b10 ${opts}"${dlm}
Packit Service aa3af4
	ts_tcp_ul_tc3+=${server_success_msgs}${dlm}
Packit Service aa3af4
	ts_tcp_ul_tc3+=${server_failure_msgs}${dlm}
Packit Service aa3af4
	ts_tcp_ul_tc3+="client_success='Test ended', 'Summary: Latency of burst of 10 messages'"${dlm}
Packit Service aa3af4
	ts_tcp_ul_tc3+=${client_failure_msgs}
Packit Service aa3af4
	#4
Packit Service aa3af4
	ts_tcp_ul_tc4="#4 - under-load option -b100"${dlm}
Packit Service aa3af4
	ts_tcp_ul_tc4+="${sperf} ul -i ${ipaddr} --tcp -b100 ${opts}"${dlm}
Packit Service aa3af4
	ts_tcp_ul_tc4+=${server_success_msgs}${dlm}
Packit Service aa3af4
	ts_tcp_ul_tc4+=${server_failure_msgs}${dlm}
Packit Service aa3af4
	ts_tcp_ul_tc4+="client_success='Test ended', 'Summary: Latency of burst of 100 messages'"${dlm}
Packit Service aa3af4
	ts_tcp_ul_tc4+=${client_failure_msgs}
Packit Service aa3af4
	#5
Packit Service aa3af4
	ts_tcp_ul_tc5="#5 - under-load option -b1000"${dlm}
Packit Service aa3af4
	ts_tcp_ul_tc5+="${sperf} ul -i ${ipaddr} --tcp -b1000 ${opts}"${dlm}
Packit Service aa3af4
	ts_tcp_ul_tc5+=${server_success_msgs}${dlm}
Packit Service aa3af4
	ts_tcp_ul_tc5+=${server_failure_msgs}${dlm}
Packit Service aa3af4
	ts_tcp_ul_tc5+="client_success='Test ended', 'Summary: Latency of burst of 1000 messages'"${dlm}
Packit Service aa3af4
	ts_tcp_ul_tc5+=${client_failure_msgs}
Packit Service aa3af4
	#6
Packit Service aa3af4
	ts_tcp_ul_tc6="#6 - under-load option -t10"${dlm}
Packit Service aa3af4
	ts_tcp_ul_tc6+="${sperf} ul -i ${ipaddr} --tcp -t10 ${opts}"${dlm}
Packit Service aa3af4
	ts_tcp_ul_tc6+=${server_success_msgs}${dlm}
Packit Service aa3af4
	ts_tcp_ul_tc6+=${server_failure_msgs}${dlm}
Packit Service aa3af4
	ts_tcp_ul_tc6+="client_success='Test ended', 'Summary: Latency is', 'RunTime=10'"${dlm}
Packit Service aa3af4
	ts_tcp_ul_tc6+=${client_failure_msgs}
Packit Service aa3af4
	#7
Packit Service aa3af4
	ts_tcp_ul_tc7="#7 - under-load option -t30"${dlm}
Packit Service aa3af4
	ts_tcp_ul_tc7+="${sperf} ul -i ${ipaddr} --tcp -t10 ${opts}"${dlm}
Packit Service aa3af4
	ts_tcp_ul_tc7+=${server_success_msgs}${dlm}
Packit Service aa3af4
	ts_tcp_ul_tc7+=${server_failure_msgs}${dlm}
Packit Service aa3af4
	ts_tcp_ul_tc7+="client_success='Test ended', 'Summary: Latency is', 'RunTime=30'"${dlm}
Packit Service aa3af4
	ts_tcp_ul_tc7+=${client_failure_msgs}
Packit Service aa3af4
	#8
Packit Service aa3af4
	ts_tcp_ul_tc8="#8 - under-load option -m32"${dlm}
Packit Service aa3af4
	ts_tcp_ul_tc8+="${sperf} ul -i ${ipaddr} --tcp -m32 ${opts}"${dlm}
Packit Service aa3af4
	ts_tcp_ul_tc8+=${server_success_msgs}${dlm}
Packit Service aa3af4
	ts_tcp_ul_tc8+=${server_failure_msgs}${dlm}
Packit Service aa3af4
	ts_tcp_ul_tc8+=${client_success_ul_msgs}${dlm}
Packit Service aa3af4
	ts_tcp_ul_tc8+=${client_failure_msgs}
Packit Service aa3af4
	#9
Packit Service aa3af4
	ts_tcp_ul_tc9="#9 - under-load option -m4096"${dlm}
Packit Service aa3af4
	ts_tcp_ul_tc9+="${sperf} ul -i ${ipaddr} --tcp -m4096 ${opts}"${dlm}
Packit Service aa3af4
	ts_tcp_ul_tc9+=${server_success_msgs}${dlm}
Packit Service aa3af4
	ts_tcp_ul_tc9+=${server_failure_msgs}${dlm}
Packit Service aa3af4
	ts_tcp_ul_tc9+=${client_success_ul_msgs}${dlm}
Packit Service aa3af4
	ts_tcp_ul_tc9+=${client_failure_msgs}
Packit Service aa3af4
}
Packit Service aa3af4
Packit Service aa3af4
server_pid=""
Packit Service aa3af4
Packit Service aa3af4
check_message()
Packit Service aa3af4
{
Packit Service aa3af4
	oifs="${IFS}"
Packit Service aa3af4
	IFS=',' read -r -a array <<< $(echo ${1##*=})
Packit Service aa3af4
	IFS="${oifs}"
Packit Service aa3af4
	for im in "${array[@]}" ; do
Packit Service aa3af4
		im=$(echo ${im} | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//' -e 's/^'\''*//' -e 's/'\''*$//')
Packit Service aa3af4
		[[ "${2}" =~ .*"${im}".* ]] && echo "${im}"
Packit Service aa3af4
	done
Packit Service aa3af4
}
Packit Service aa3af4
Packit Service aa3af4
start_server()
Packit Service aa3af4
{
Packit Service aa3af4
	local env=$1 local ipaddr=$2 local port=$3 local proto=$4 local log_file=$5 local tsnv=$6
Packit Service aa3af4
Packit Service aa3af4
	server_cmd="env ${env} ${SERVER_DIR}/sockperf sr -i ${ipaddr} -p ${port} --tcp --load-vma=${SERVER_DIR}/libvma.so"
Packit Service aa3af4
Packit Service aa3af4
	server_pid=$(ssh root@${ipaddr} ps -ax | grep -i sockperf | grep ${port} | awk '{print $1}')
Packit Service aa3af4
	[ ! -z "${server_pid}" ] && ssh root@${ipaddr} kill -9 ${server_pid}
Packit Service aa3af4
Packit Service aa3af4
	tmp=$(mktemp)
Packit Service aa3af4
	ssh root@${ipaddr} "${server_cmd}" >> ${tmp} 2>&1 >> ${tmp} & 
Packit Service aa3af4
	sleep 5
Packit Service aa3af4
	res=$(cat ${tmp})
Packit Service aa3af4
	rm -f ${tmp}
Packit Service aa3af4
	echo "${res}"
Packit Service aa3af4
	echo "${res}" >> "${log_file}"
Packit Service aa3af4
	server_fail=$(echo ${tsnv} | awk -F${dlm} '{ print $4 }')
Packit Service aa3af4
	local chk_res=$(check_message "${server_fail}" "${res}")
Packit Service aa3af4
	if [ ! -z "${chk_res}" ] ; then
Packit Service aa3af4
		echo ">> FAIL ${server_cmd}"
Packit Service aa3af4
	else
Packit Service aa3af4
		server_success=$(echo ${tsnv} | awk -F${dlm} '{ print $3 }')
Packit Service aa3af4
		check_message "${server_success}" "${res}"
Packit Service aa3af4
		echo ">> PASS ${server_cmd}"
Packit Service aa3af4
	fi
Packit Service aa3af4
	server_pid=$(tac ${log_file} | grep -m 1 -oP '(?<=Pid: ).*')
Packit Service aa3af4
}
Packit Service aa3af4
Packit Service aa3af4
stop_server()
Packit Service aa3af4
{
Packit Service aa3af4
	local ipaddr=$1 local pid=$2 local log_file=$3
Packit Service aa3af4
	res=$(ssh root@${ipaddr} kill -9 ${pid} >> ${log_file} 2>&1)
Packit Service aa3af4
	echo ">> Server process ${pid} has finished" >> "${log_file}"
Packit Service aa3af4
}
Packit Service aa3af4
Packit Service aa3af4
log_st()
Packit Service aa3af4
{
Packit Service aa3af4
	echo "${2}" >> "${1}"
Packit Service aa3af4
}
Packit Service aa3af4
Packit Service aa3af4
perform_ts()
Packit Service aa3af4
{
Packit Service aa3af4
	ts=$1 ns=$2 ne=$3 app_env=$4 sperf=$5 ipaddr=$6 port=$7 opts=$8 log_file=$9
Packit Service aa3af4
	log_st_file="${log_file%.*}.dump"
Packit Service aa3af4
	log_st_file=${log_st_file##*/}
Packit Service aa3af4
	# init ts with params
Packit Service aa3af4
	ts_${ts} ${sperf} ${ipaddr} ${opts}
Packit Service aa3af4
Packit Service aa3af4
	log_st "${log_st_file}" "***********"
Packit Service aa3af4
	for ((i = ${ns}; i <= ${ne}; i++)); do
Packit Service aa3af4
		tsn="ts_${ts}_tc${i}"
Packit Service aa3af4
		if [ ! -z  "${!tsn}" ] ; then
Packit Service aa3af4
			tsnv=${!tsn}
Packit Service aa3af4
			start_server "${app_env}" "${ipaddr}" ${port} "--tcp" "${log_file}" "${tsnv}"    
Packit Service aa3af4
Packit Service aa3af4
			if [ -z "${dbg_srv}" ] ; then
Packit Service aa3af4
				name=$(echo ${tsnv} | awk -F${dlm} '{ print $1 }') 
Packit Service aa3af4
				echo ${name}
Packit Service aa3af4
				st=$(echo ${tsnv} | awk -F${dlm} '{ print $2 }') 
Packit Service aa3af4
				cmd_test="env ${app_env} ${st} -p ${port}"
Packit Service aa3af4
				local res=$(${cmd_test} 2>&1)
Packit Service aa3af4
				echo "${res}" 
Packit Service aa3af4
				echo "${res}" >> "${log_file}"
Packit Service aa3af4
				client_fail=$(echo ${tsnv} | awk -F${dlm} '{ print $6 }')
Packit Service aa3af4
				chk_res=$(check_message "${client_fail}" "${res}")
Packit Service aa3af4
				if [ ! -z "${chk_res}" ] ; then
Packit Service aa3af4
					test_st="FAIL"
Packit Service aa3af4
				else
Packit Service aa3af4
					client_success=$(echo ${tcnv} | awk -F${dlm} '{ print $5 }')
Packit Service aa3af4
					check_message "${client_success}" "${chk_res}"
Packit Service aa3af4
					test_st="PASS"
Packit Service aa3af4
				fi
Packit Service aa3af4
				echo ">> ${test_st} ${cmd_test}"
Packit Service aa3af4
				log_st "${log_st_file}" "${test_st}    ${ts}    tc${i}        ${name}"
Packit Service aa3af4
			fi
Packit Service aa3af4
			stop_server "${ipaddr}" "${server_pid}" "${log_file}"
Packit Service aa3af4
		else
Packit Service aa3af4
			break
Packit Service aa3af4
		fi 
Packit Service aa3af4
	done
Packit Service aa3af4
	log_st "${log_st_file}" "***********"
Packit Service aa3af4
}
Packit Service aa3af4
Packit Service aa3af4
prepare_perform_ts()
Packit Service aa3af4
{
Packit Service aa3af4
	app_env=$1 app=$2 app_args=$3 task=$4 target=$5 port=$6 log_file=$7
Packit Service aa3af4
	ts=${task%:*} ; ts=${ts//-/_}
Packit Service aa3af4
	num_tests=${TASK#*[} ; num_tests=${num_tests%]*}
Packit Service aa3af4
	start_num=${num_tests%-*}
Packit Service aa3af4
	end_num=${num_tests#*-}
Packit Service aa3af4
Packit Service aa3af4
	HOST=${HOST%%.*}
Packit Service aa3af4
	[ -z "${SERVER_DIR}" ] && SERVER_DIR="/tmp/sockperf_exec_${HOST}" 
Packit Service aa3af4
Packit Service aa3af4
	if [ ! -z "${SRV_OPS}" ] ; then
Packit Service aa3af4
	if [ "${SRV_OPS}" == "start" ] ; then 
Packit Service aa3af4
		start_server "${app_env}" ${target} ${port} "--tcp" "${log_file}"
Packit Service aa3af4
		stop_server ${target} "${server_pid}" "${log_file}"
Packit Service aa3af4
	fi
Packit Service aa3af4
	[ "${SRV_OPS}" == "stop" ]  && stop_server "${target}" "${server_pid}" "${log_file}"
Packit Service aa3af4
	return
Packit Service aa3af4
	fi
Packit Service aa3af4
	perform_ts ${ts} ${start_num} ${end_num} "${app_env}" "${app}" ${target} ${port} "${app_args}" "${log_file}"
Packit Service aa3af4
}
Packit Service aa3af4
Packit Service aa3af4
usage()
Packit Service aa3af4
{
Packit Service aa3af4
cat << eOm
Packit Service aa3af4
	usage:$0 -a app [-x|--app-arg 'args'] [-e|--app-env 'vars'] [-t|--task test] [-s|--target address] [-p|--port N] 
Packit Service aa3af4
			[-l|--log fname] [--server-dir dir] [--dr] [-h]
Packit Service aa3af4
eOm
Packit Service aa3af4
	exit 0
Packit Service aa3af4
}
Packit Service aa3af4
Packit Service aa3af4
[ $# -eq 0 ] && usage
Packit Service aa3af4
Packit Service aa3af4
OPTS=$(getopt -o ha:x:e:t:s:p:l: -l app:,app-arg:,app-env:,task:,target:,port:,log:,server-dir:,srv-start,srv-stop,help -- "$@")
Packit Service aa3af4
[[ $? -ne 0 ]] && usage
Packit Service aa3af4
eval set -- "${OPTS}"
Packit Service aa3af4
Packit Service aa3af4
while true ; do
Packit Service aa3af4
	case "$1" in
Packit Service aa3af4
	-a|--app)
Packit Service aa3af4
		APP="$2"
Packit Service aa3af4
		shift 2
Packit Service aa3af4
		;;
Packit Service aa3af4
	-x|--app-arg)
Packit Service aa3af4
		APP_ARGS="$2"
Packit Service aa3af4
		shift 2
Packit Service aa3af4
		;;
Packit Service aa3af4
	-e|--app-env)
Packit Service aa3af4
		APP_ENV="$2"
Packit Service aa3af4
		shift 2
Packit Service aa3af4
		;;
Packit Service aa3af4
	-t|--task)
Packit Service aa3af4
		TASK="$2"
Packit Service aa3af4
		shift 2
Packit Service aa3af4
		;;
Packit Service aa3af4
	-s|--target)
Packit Service aa3af4
		[[ "$2" =~ ^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$ ]] && TARGET="$2"
Packit Service aa3af4
		shift 2
Packit Service aa3af4
		;;
Packit Service aa3af4
	-p|--port)
Packit Service aa3af4
		[[ "$2" =~ ^-?[0-9]+$ ]] && PORT="$2"
Packit Service aa3af4
		shift 2
Packit Service aa3af4
		;;
Packit Service aa3af4
	-l|--log)
Packit Service aa3af4
		LOG_FILE="$2"
Packit Service aa3af4
		shift 2
Packit Service aa3af4
		;;
Packit Service aa3af4
	--srv-start|--srv-stop)
Packit Service aa3af4
		SRV_OPS=${1##*-}
Packit Service aa3af4
		shift 1
Packit Service aa3af4
		;;
Packit Service aa3af4
	--dr)
Packit Service aa3af4
		DRY_RUN=1
Packit Service aa3af4
		shift 1
Packit Service aa3af4
		;;
Packit Service aa3af4
	--srv-ops)
Packit Service aa3af4
		SRV_OPS="$2"
Packit Service aa3af4
		shift 2
Packit Service aa3af4
		;;
Packit Service aa3af4
	-h|--help)
Packit Service aa3af4
		shift 1
Packit Service aa3af4
		;;
Packit Service aa3af4
	--)
Packit Service aa3af4
		shift
Packit Service aa3af4
		break
Packit Service aa3af4
		;;
Packit Service aa3af4
	*)
Packit Service aa3af4
		usage
Packit Service aa3af4
		;;
Packit Service aa3af4
	esac
Packit Service aa3af4
done
Packit Service aa3af4
Packit Service aa3af4
if [ ! -z "${APP}" ] ; then
Packit Service aa3af4
	prepare_perform_ts "${APP_ENV}" "${APP}" "${APP_ARGS}" "${TASK}" "${TARGET}" "${PORT}" "${LOG_FILE}"
Packit Service aa3af4
else
Packit Service aa3af4
	usage
Packit Service aa3af4
fi
Packit Service aa3af4
Packit Service aa3af4
#</vutil.sh>
Packit Service aa3af4