[Asterisk-code-review] pretty print: Adjust for usage of the runtests --number= op... (testsuite[master])

George Joseph asteriskteam at digium.com
Thu May 4 15:21:04 CDT 2017


George Joseph has uploaded a new change for review. ( https://gerrit.asterisk.org/5577 )

Change subject: pretty_print:  Adjust for usage of the runtests --number= option
......................................................................

pretty_print:  Adjust for usage of the runtests --number= option

Teaked runtests.py a bit so it spits out the number of test
iterations (--number) at the beginning so pretty_print knows
how many total tests to expect.

Change-Id: Ib604888c9c2175135faf1b8f3eb42736aeba53ad
---
M contrib/scripts/pretty_print
M runtests.py
2 files changed, 49 insertions(+), 38 deletions(-)


  git pull ssh://gerrit.asterisk.org:29418/testsuite refs/changes/77/5577/1

diff --git a/contrib/scripts/pretty_print b/contrib/scripts/pretty_print
index 7dc5686..051f6ea 100755
--- a/contrib/scripts/pretty_print
+++ b/contrib/scripts/pretty_print
@@ -19,7 +19,7 @@
 RED='\033[01;31m'
 NORM='\033[m'
 
-col=$(( $(tput cols) - 36 ))
+status_string="[nnnn of nnnn][Status][Pass][Fail]"
 
 counter() {
 	status=Running
@@ -35,40 +35,50 @@
 		else
 			printf "[%12s %3ss ]" "Running for" $et
 		fi
-		tput cub 20
+		tput cub 19
 	done
 }
 
 echo -e -n "Calculating...\r"
+declare -i run=0
+declare -i runs=0
+declare -ix runnable=0
+declare -ix total=0
+declare -ix passed=0
+declare -ix failed=0
+declare -ix timedout=0
+declare -ix tests=0
+declare -ix maxelapsed=0
+declare -a failures
+declare -a timeouts
+declare testname=""
+starttime=$SECONDS
 
 trap 'kill $countpid &>/dev/null' INT ERR
 while read line ; do
-	if [[ $line =~ ^Running.tests.for.(Asterisk.*) ]] ; then
-		declare -ix runnable=0
-		declare -ix total=0
-		declare -ix passed=0
-		declare -ix failed=0
-		declare -ix timedout=0
-		declare -ix tests=0
-		declare -ix maxelapsed=0
-		declare -a failures
-		declare -a timeouts
-
+	if [[ $line =~ ^Running.tests.for.(Asterisk[^\s]+)[\ ]+\(run[\ ]+([0-9]+)[\ ]+of[\ ]+([0-9]+)\)\.\.\. ]] ; then
+		run=${BASH_REMATCH[2]}
+		runs=${BASH_REMATCH[3]}
 		version=${BASH_REMATCH[1]}
-		starttime=$SECONDS
 	fi
 
-	if [[ $line =~ ^Tests.to.run:.([0-9]+),[\ ]+Maximum.test.inactivity.time:.([0-9-]+) ]] ; then
-		runnable=${BASH_REMATCH[1]}
-		export test_timeout=${BASH_REMATCH[2]}
-		echo =============================================================
-		echo ${line/-1/unlimited}
-		printf "[%-*.*s ][%-11s][%s][${GREEN}%4s${NORM}][${RED}%4s${NORM}]\n" $col $col "Test" "   Test" "Status" "Pass" "Fail"
+	if [[ $run -eq 1 && $line =~ ^Tests.to.run:[\ ]+([0-9]+)[\ ]+.[\ ]+([0-9]+)[\ ]+time\(s\)[\ ]+=[\ ]+([0-9]+)[\ ]+Maximum.test.inactivity.time:.([0-9-]+) ]] ; then
+		runnable=$(( ${BASH_REMATCH[1]} * $runs ))
+		export test_timeout=${BASH_REMATCH[4]}
+		echo ===========================================================================================
+		echo "${line/-1/unlimited}"
+		col=$(( $(tput cols) - ${#status_string} ))
+		printf "%-*.*s[%-12s][%s][${GREEN}%4s${NORM}][${RED}%4s${NORM}]\n" $col $col "Test" "  Test" "Status" "Pass" "Fail"
 	fi
 
 	if [[ $line =~ ^--\>.Running.test.\'(.+)\'.\.\.\. ]] ; then
 		(( tests++ ))
-		printf "[%-*.*s ][%4d of %3d]" $col $col ${BASH_REMATCH[1]#*/} $tests $runnable
+		col=$(( $(tput cols) - ${#status_string} -1 ))
+		testname=${BASH_REMATCH[1]#*/}
+		tnl=$(( ${#testname} - $col ))
+		[ $tnl -le 0 ] && tnl=0
+		testname=${testname:$tnl}
+		printf "%-*.*s [%4d of %4d]" $col $col ${testname} $tests $runnable
 		st=$SECONDS
 		counter &
 		disown $!
@@ -78,7 +88,7 @@
 	if [[ $line =~ ^Test.*tests/([^\']+)\',.*(passed|failed|timed\ out)$ ]] ; then
 		test=${BASH_REMATCH[1]}
 		status=${BASH_REMATCH[2]}
-		col=$(( $(tput cols) - 36 ))
+		col=$(( $(tput cols) - ${#status_string} ))
 		et=$(( $SECONDS - $st ))
 		kill $countpid
 
@@ -105,20 +115,21 @@
 		printf "[${COLOR}%s${NORM}][${GREEN}%4d${NORM}][${RED}%4d${NORM}]\n" $label $passed $failed
 	fi
 
-	if [[ $line =~ (TEST\ RESULTS) ]] ; then
-		for fail in "${failures[@]}" ; do
-			echo -e "${RED}$fail${NORM}"
-		done
-		for to in "${timeouts[@]}" ; do
-			echo -e "${YELLOW}$to${NORM}"
-		done
-
-		elapsed=$(( $SECONDS - $starttime ))
-		time="$(( $elapsed / 60 ))m $(( $elapsed % 60 ))s"
-		echo -e "Tests: $runnable   ${GREEN}Passed: $passed   ${RED}Failed: $failed   TimedOut: $timedout${NORM}   Time: $time\tLongest test: ${maxelapsed}s"
-	fi
 done
 
+for fail in "${failures[@]}" ; do
+	echo -e "${RED}$fail${NORM}"
+done
+for to in "${timeouts[@]}" ; do
+	echo -e "${YELLOW}$to${NORM}"
+done
+
+elapsed=$(( $SECONDS - $starttime ))
+time="$(( $elapsed / 60 ))m $(( $elapsed % 60 ))s"
+echo -------------------------------------------------------------------------------------------
+echo -e "Tests: $runnable   ${GREEN}Passed: $passed   ${RED}Failed: $failed   TimedOut: $timedout${NORM}   Time: $time\tLongest test: ${maxelapsed}s"
+echo ===========================================================================================
+
 trap - INT ERR
 
 kill $countpid &>/dev/null
diff --git a/runtests.py b/runtests.py
index c6f5b3a..c8c225e 100755
--- a/runtests.py
+++ b/runtests.py
@@ -557,8 +557,8 @@
                     if excluded in t.test_name:
                         continue
             i += 1
-        print "Tests to run: %d,  Maximum test inactivity time: %d sec." % \
-            (i, (self.options.timeout / 1000))
+        print "Tests to run: %d * %d time(s) = %d  Maximum test inactivity time: %d sec." % \
+            (i, self.options.number, i * self.options.number, (self.options.timeout / 1000))
 
         for t in self.tests:
             if abandon_test_suite:
@@ -843,8 +843,8 @@
 
         test_suite = TestSuite(ast_version, options)
 
-        running_str = "Running tests for Asterisk {0} (run {1})...\n".format(
-            str(ast_version).strip('\n'), iteration + 1)
+        running_str = "Running tests for Asterisk {0} (run {1} of {2})...\n".format(
+            str(ast_version).strip('\n'), iteration + 1, options.number)
         print running_str
         if options.syslog:
             syslog.syslog(running_str)

-- 
To view, visit https://gerrit.asterisk.org/5577
To unsubscribe, visit https://gerrit.asterisk.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ib604888c9c2175135faf1b8f3eb42736aeba53ad
Gerrit-PatchSet: 1
Gerrit-Project: testsuite
Gerrit-Branch: master
Gerrit-Owner: George Joseph <gjoseph at digium.com>



More information about the asterisk-code-review mailing list