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/
Once 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.nguyen@linaro.org --- Changes from v1 to v2: - Rewrite test_status_show() function - Add description and log_skip() function in thermal_05 - Moved skip/fail/pass counts to log_end() function
cpufreq/cpufreq_07.sh | 2 +- include/functions.sh | 35 ++++++++++++++++++++++++++++++----- thermal/thermal_05.sh | 1 + thermal/thermal_06.sh | 2 +- 4 files changed, 33 insertions(+), 7 deletions(-)
diff --git a/cpufreq/cpufreq_07.sh b/cpufreq/cpufreq_07.sh index f8f9e8e..b65d212 100755 --- a/cpufreq/cpufreq_07.sh +++ b/cpufreq/cpufreq_07.sh @@ -74,7 +74,7 @@ check_ondemand() { supported=$(cat $CPU_PATH/cpu0/cpufreq/scaling_available_governors | grep "ondemand") if [ -z "$supported" ]; then log_skip "ondemand not supported" - exit 0 + return 0 fi
save_governors diff --git a/include/functions.sh b/include/functions.sh index 417c725..d06fb4e 100644 --- a/include/functions.sh +++ b/include/functions.sh @@ -32,14 +32,31 @@ INC=0 CPU= pass_count=0 fail_count=0 +skip_count=0 +test_script_status="pass"
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" + if [ "$fail_count" -ne "0" ]; then + test_script_status="fail" + else + if [ "$skip_count" -ne "0" ]; then + if [ "$pass_count" -ne "0"]; then + test_script_status="pass" + else + test_script_status="skip" + fi + fi + fi + + echo " " + if [[ "$test_script_status" == "fail" ]]; then + echo "$TEST_NAME: fail" + elif [[ "$test_script_status" == "skip" ]]; then + echo "$TEST_NAME: skip" + else + echo "$TEST_NAME: pass" fi + echo " " }
log_begin() { @@ -49,6 +66,14 @@ log_begin() {
log_end() { printf "$*\n" + + if [[ "$*" == "Err" ]]; then + fail_count=$(($fail_count + 1)) + elif [[ "$*" == "skip" ]]; then + skip_count=$(($fail_count + 1)) + else + pass_count=$(($pass_count + 1)) + fi }
log_skip() { diff --git a/thermal/thermal_05.sh b/thermal/thermal_05.sh index 05f83d1..c621b49 100755 --- a/thermal/thermal_05.sh +++ b/thermal/thermal_05.sh @@ -36,6 +36,7 @@ verify_cpufreq_cooling_device_action() { local cpufreq_cdev=$(cat $dirpath/type) cat $dirpath/type | grep cpufreq if [ $? -ne 0 ] ; then + log_skip "Cannot find cpufreq in $cdev_name..." 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