Focus on returning the results of each test script rather
than the results of each subtest. This will help to keep the
number of pm-qa test results consistent across multiple boards
regardless of number of frequencies, cores, etc.

Examples before the refactoring:

https://validation.linaro.org/dashboard/streams
/anonymous/lisatn/bundles/331786fb33a49b060adccf51bb509d5f286422e7/

Examples after the refactoring:

https://validation.linaro.org/dashboard/streams/anonymous
/lisatn/bundles/3451b80ed9ba8a813b109dac1c41b09f0445f819/

Questions and comments are highly encouraged as it's possible that
the logic can be improved, or my explanation can be clearer. Also, 
once the final version of this patch is accepted and merged, then 
there will be a follow up patch to update the pwrmgmt test 
definition, so LAVA can record PM-QA results accurately.

Signed-off-by: Lisa Nguyen <lisa.ngu...@linaro.org>
---
 cpufreq/cpufreq_09.sh        |    2 +-
 include/functions.sh         |   22 +++++++++++++++++++---
 include/thermal_functions.sh |    6 +++++-
 thermal/thermal_06.sh        |    2 +-
 4 files changed, 26 insertions(+), 6 deletions(-)

diff --git a/cpufreq/cpufreq_09.sh b/cpufreq/cpufreq_09.sh
index 7b65eec..62c953d 100755
--- a/cpufreq/cpufreq_09.sh
+++ b/cpufreq/cpufreq_09.sh
@@ -65,7 +65,7 @@ save_governors
 supported=$(cat $CPU_PATH/cpu0/cpufreq/scaling_available_governors | grep 
"powersave")
 if [ -z "$supported" ]; then
     log_skip "powersave not supported"
-    exit 0
+    return 0
 fi
 
 trap "restore_governors; sigtrap" SIGHUP SIGINT SIGTERM
diff --git a/include/functions.sh b/include/functions.sh
index 417c725..a4625ad 100644
--- a/include/functions.sh
+++ b/include/functions.sh
@@ -32,14 +32,29 @@ INC=0
 CPU=
 pass_count=0
 fail_count=0
+skip_count=0
+test_script_status="true"
 
 test_status_show() {
-    echo "-------- total = $(($pass_count + $fail_count))"
-    echo "-------- pass = $pass_count"
     # report failure only if it is there
     if [ $fail_count -ne 0 ] ; then
-      echo "-------- fail = $fail_count"
+       test_script_status="false"
+    elif [[ $skip_count -ne 0 && $fail_count -eq 0 ]] ; then
+       test_script_status="skip"
+    elif [[ $pass_count -ne 0 && $skip_count -ne 0 ]] ; then
+       test_script_status="pass"
     fi
+
+    #print test script result
+    echo " "
+    if [[ $test_script_status == "true" ]]; then
+       echo $TEST_NAME: "pass"
+    elif [[ $test_script_status == "skip" ]]; then
+       echo $TEST_NAME: "skip"
+    else
+       echo $TEST_NAME: "fail"
+    fi
+    echo " "
 }
 
 log_begin() {
@@ -54,6 +69,7 @@ log_end() {
 log_skip() {
     log_begin "$@"
     log_end "skip"
+    skip_count=$(($skip_count + 1))
 }
 
 for_each_cpu() {
diff --git a/include/thermal_functions.sh b/include/thermal_functions.sh
index a51240b..a719487 100644
--- a/include/thermal_functions.sh
+++ b/include/thermal_functions.sh
@@ -44,11 +44,12 @@ check_valid_temp() {
 
     if [ $temp_val -gt 0 ]; then
         log_end "Ok"
+       pass_count=$(($pass_count + 1))
         return 0
     fi
 
     log_end "Err"
-
+    fail_count=$(($fail_count + 1))
     return 1
 }
 
@@ -126,10 +127,12 @@ check_valid_binding() {
     log_begin "checking $descr"
     if [ $trip_point_val -ge $trip_point_max ]; then
         log_end "Err"
+       fail_count=$(($fail_count + 1))
         return 1
     fi
 
     log_end "Ok"
+    pass_count=$(($pass_count + 1))
     return 0
 }
 
@@ -165,6 +168,7 @@ for_each_cooling_device() {
     devices=$(ls $THERMAL_PATH | grep "cooling_device['$MAX_CDEV']")
     if [ "$devices" == "" ]; then
        log_skip "no cooling devices"
+       skip_count=$(($skip_count + 1))
        return 0
     fi
 
diff --git a/thermal/thermal_06.sh b/thermal/thermal_06.sh
index 92c987a..d8877f0 100755
--- a/thermal/thermal_06.sh
+++ b/thermal/thermal_06.sh
@@ -30,7 +30,7 @@ source ../include/thermal_functions.sh
 
 if [ "$thermal_try_max" -eq 0 ]; then
     log_skip "test of trip points being crossed"
-    exit 0
+    return 0
 fi
 
 TEST_LOOP=100
-- 
1.7.9.5


_______________________________________________
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev

Reply via email to