From a7e722f974e2529d3e564d8d94c86cc8bdbc40e7 Mon Sep 17 00:00:00 2001
From: Radu Patriu <radu.patriu@enea.com>
Date: Mon, 24 Mar 2014 16:33:19 +0200
Subject: [PATCH] autotest: new testsuite option to enable automake test
 result format

* lib/autotest/general.m4: added "--am-fmt | -A" command line
parameter for testsuite script to enable "RESULT: testname" output;
will be used by yocto ptest packages.

Upstream-Status: Pending

Signed-off-by: Radu Patriu <radu.patriu@enea.com>
---
 lib/autotest/general.m4 |   39 +++++++++++++++++++++++++++++----------
 1 file changed, 29 insertions(+), 10 deletions(-)

diff --git a/lib/autotest/general.m4 b/lib/autotest/general.m4
index 60c0352..c1f5a9b 100644
--- a/lib/autotest/general.m4
+++ b/lib/autotest/general.m4
@@ -412,6 +412,9 @@ at_recheck=
 # Whether a write failure occurred
 at_write_fail=0
 
+# Automake result format "result: testname"
+at_am_fmt=false
+
 # The directory we run the suite in.  Default to . if no -C option.
 at_dir=`pwd`
 # An absolute reference to this testsuite script.
@@ -530,6 +533,10 @@ do
 	at_check_filter_trace=at_fn_filter_trace
 	;;
 
+    --am-fmt | -A )
+	at_am_fmt=:
+	;;
+
     [[0-9] | [0-9][0-9] | [0-9][0-9][0-9] | [0-9][0-9][0-9][0-9]])
 	at_fn_validate_ranges at_option
 	AS_VAR_APPEND([at_groups], ["$at_option$as_nl"])
@@ -718,10 +725,10 @@ m4_divert_push([HELP_MODES])dnl
 cat <<_ATEOF || at_write_fail=1
 
 Operation modes:
-  -h, --help     print the help message, then exit
-  -V, --version  print version number, then exit
-  -c, --clean    remove all the files this test suite might create and exit
-  -l, --list     describes all the tests, or the selected TESTS
+  -h, --help      print the help message, then exit
+  -V, --version   print version number, then exit
+  -c, --clean     remove all the files this test suite might create and exit
+  -l, --list      describes all the tests, or the selected TESTS
 _ATEOF
 m4_divert_pop([HELP_MODES])dnl
 m4_wrap([m4_divert_push([HELP_TUNING_BEGIN])dnl
@@ -747,6 +754,7 @@ Execution tuning:
   -d, --debug    inhibit clean up and top-level logging
 [                 default for debugging scripts]
   -x, --trace    enable tests shell tracing
+  -A, --am-fmt   automake result format "result: testname"
 _ATEOF
 m4_divert_pop([HELP_TUNING_BEGIN])])dnl
 m4_divert_push([HELP_END])dnl
@@ -1162,7 +1170,9 @@ at_fn_group_banner ()
     [*])          at_desc_line="$[1]: "  ;;
   esac
   AS_VAR_APPEND([at_desc_line], ["$[3]$[4]"])
-  $at_quiet AS_ECHO_N(["$at_desc_line"])
+  if ! $at_am_fmt; then
+    $at_quiet AS_ECHO_N(["$at_desc_line"])
+  fi
   echo "#                             -*- compilation -*-" >> "$at_group_log"
 }
 
@@ -1188,42 +1198,51 @@ _ATEOF
   case $at_xfail:$at_status in
     yes:0)
 	at_msg="UNEXPECTED PASS"
+	at_am_msg="XPASS"
 	at_res=xpass
 	at_errexit=$at_errexit_p
 	at_color=$at_red
 	;;
     no:0)
 	at_msg="ok"
+	at_am_msg="PASS"
 	at_res=pass
 	at_errexit=false
 	at_color=$at_grn
 	;;
     *:77)
 	at_msg='skipped ('`cat "$at_check_line_file"`')'
+	at_am_msg="SKIP"
 	at_res=skip
 	at_errexit=false
 	at_color=$at_blu
 	;;
     no:* | *:99)
 	at_msg='FAILED ('`cat "$at_check_line_file"`')'
+	at_am_msg="FAIL"
 	at_res=fail
 	at_errexit=$at_errexit_p
 	at_color=$at_red
 	;;
     yes:*)
 	at_msg='expected failure ('`cat "$at_check_line_file"`')'
+	at_am_msg="XFAIL"
 	at_res=xfail
 	at_errexit=false
 	at_color=$at_lgn
 	;;
   esac
   echo "$at_res" > "$at_job_dir/$at_res"
-  # In parallel mode, output the summary line only afterwards.
-  if test $at_jobs -ne 1 && test -n "$at_verbose"; then
-    AS_ECHO(["$at_desc_line $at_color$at_msg$at_std"])
+  if $at_am_fmt; then
+      AS_ECHO(["$at_am_msg: $at_desc"])
   else
-    # Make sure there is a separator even with long titles.
-    AS_ECHO([" $at_color$at_msg$at_std"])
+    # In parallel mode, output the summary line only afterwards.
+    if test $at_jobs -ne 1 && test -n "$at_verbose"; then
+      AS_ECHO(["$at_desc_line $at_color$at_msg$at_std"])
+    else
+      # Make sure there is a separator even with long titles.
+      AS_ECHO([" $at_color$at_msg$at_std"])
+    fi
   fi
   at_log_msg="$at_group. $at_desc ($at_setup_line): $at_msg"
   case $at_status in
-- 
1.7.9.5