From b9744428d6dfb1cba7b6e3fdbf0613977914b12f Mon Sep 17 00:00:00 2001 From: Dengke Du Date: Fri, 29 Apr 2016 03:25:58 -0400 Subject: [PATCH] lttng-tools: filter random filename of tests output Show the failed tests, filter the random filename when the test passed, add up the result. Upstream-Status: Pending Signed-off-by: Dengke Du --- tests/run.sh | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/tests/run.sh b/tests/run.sh index 6455359..9080afc 100755 --- a/tests/run.sh +++ b/tests/run.sh @@ -17,9 +17,30 @@ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # +# Define two variable to store the passed and failed result +pass_count=0 +fail_count=0 + [ -z "$1" ] && echo "Error: No testlist. Please specify a testlist to run." && exit 1 -prove --merge -v --exec '' - < $1 | sed \ +# Using a while loop to add up the passed and failed result, we use Here Strings +# "<<<" in bash in order to redirect the test output to the while loop. If put the +# test output as a pipeline, the while loop will run in subshell, we can't get the +# pass_count and fail_count when the subshell exit. +while read line +do + if [[ $line == "FAIL"* ]]; then + echo $line;((fail_count=fail_count+1)) + fi + if [[ $line == "PASS"* ]]; then + ((pass_count=pass_count+1)) + fi +done <<< "$(prove --merge -v --exec '' - < $1 | sed \ -e 's|^ok \(.*\)|PASS: \1|' \ -e 's|^not ok \(.*\)|FAIL: \1|' \ - | egrep -h 'PASS|FAIL' + | egrep -h 'PASS|FAIL')" + +# Add up the result and output the passed and failed tests +echo "$1 statistics" +echo "total pass: $pass_count tests passed!" +echo "total fail: $fail_count tests failed!" -- 2.8.1