Hello,

there is a problem with error reporting in power_management tests. 
Particularly, it wouldn't report failure to pan when one of the tests failed. 
This patch does the following:

  - make it actually fail when one of the tests fails

  - assume return values other than 1 (except 0, of course) are
    errors, too

  - write PASS messages for successful tests

Regards
    Jiri Palecek

Signed-off-by: Jiri Palecek <[email protected]>
---
 testcases/kernel/power_management/pm_include.sh |    1 +
 testcases/kernel/power_management/runpwtests.sh |   84 ++++++++++++++---------
 2 files changed, 52 insertions(+), 33 deletions(-)

diff --git a/testcases/kernel/power_management/pm_include.sh 
b/testcases/kernel/power_management/pm_include.sh
index 389387c..acbd476 100755
--- a/testcases/kernel/power_management/pm_include.sh
+++ b/testcases/kernel/power_management/pm_include.sh
@@ -81,6 +81,7 @@ function check_input() {
                PASS="Testcase PASS"
                FAIL="Testcase FAIL"
        fi
+       RC=0
        for input in ${1}
        do
                echo ${input} > ${test_file} 2>/dev/null
diff --git a/testcases/kernel/power_management/runpwtests.sh 
b/testcases/kernel/power_management/runpwtests.sh
index 32fb59c..e9be303 100755
--- a/testcases/kernel/power_management/runpwtests.sh
+++ b/testcases/kernel/power_management/runpwtests.sh
@@ -60,8 +60,10 @@ fi
 # Checking sched_mc sysfs interface
 #check_config.sh config_sched_mc || RC=$?
 if [ -f /sys/devices/system/cpu/sched_mc_power_savings ] ; then
-       test_sched_mc.sh; RC=$?
-       if [ $RC -eq 1 ] ; then
+       if test_sched_mc.sh ; then
+               tst_resm TPASS "SCHED_MC sysfs tests passed"
+       else
+               RC=$?
                tst_resm TFAIL "SCHED_MC sysfs tests failed"
        fi
        # Test CPU consolidation for corresponding sched_mc
@@ -78,26 +80,26 @@ if [ -f /sys/devices/system/cpu/sched_mc_power_savings ] ; 
then
                                        if [ $sched_smt -eq 0 -a $sched_mc -eq 
0 ]; then 
                                                continue
                                        fi
-                                       cpu_consolidation.py -c $sched_mc -t 
$sched_smt; RC=$?
-                                       if [ $RC -eq 1 ] ; then
-                                               tst_resm TFAIL "cpu 
consolidation \
- sched_mc=$sched_mc, sched_smt=$sched_smt"
-                                       else
+                                       if cpu_consolidation.py -c $sched_mc -t 
$sched_smt ; then
                                                tst_resm TPASS "cpu 
consolidation sched_mc=$sched_mc,\
  sched_smt=$sched_smt"
+                                       else
+                                               RC=$?
+                                               tst_resm TFAIL "cpu 
consolidation \
+ sched_mc=$sched_mc, sched_smt=$sched_smt"
                                        fi
                                done
                        done
                else
                        # Test CPU consolidation for sched_mc=1 & 2
                        for sched_mc in `seq 1 2`; do
-                               cpu_consolidation.py -c $sched_mc; RC=$?
-                               if [ $RC -eq 1 ] ; then
-                                       tst_resm TFAIL "cpu consolidation test\
- sched_mc_power set to $sched_mc"
-                               else
+                               if cpu_consolidation.py -c $sched_mc ; then
                                        tst_resm TPASS "cpu consolidation test 
for \
 sched_mc_power set to $sched_mc"
+                               else
+                                       RC=$?
+                                       tst_resm TFAIL "cpu consolidation test\
+ sched_mc_power set to $sched_mc"
                                fi
                        done
                fi
@@ -110,24 +112,24 @@ sched_mc_power set to $sched_mc"
                         continue
                     fi
 
-                                       sched_domain.py -c $sched_mc -t 
$sched_smt; RC=$?
-                                       if [ $RC -eq 1 ] ; then
-                                               tst_resm TFAIL "sched domain 
test sched_mc=$sched_mc,\
-sched_smt=$sched_smt "
-                                       else    
+                                       if sched_domain.py -c $sched_mc -t 
$sched_smt; then
                                                tst_resm TPASS "sched domain 
test sched_mc=$sched_mc,\
 sched_smt=$sched_smt "
+                                       else
+                                               RC=$?
+                                               tst_resm TFAIL "sched domain 
test sched_mc=$sched_mc,\
+sched_smt=$sched_smt "
                                        fi
                                done
                        done
                else
                        # Validate CPU level sched domain topology validation
                        for sched_mc in `seq 1 2`; do
-                               sched_domain.py -c $sched_mc; RC=$?
-                               if [ $RC -eq 1 ] ; then
-                                       tst_resm TFAIL "sched domain test for 
sched_mc=$sched_mc "
-                               else
+                               if sched_domain.py -c $sched_mc ; then
                                        tst_resm TPASS "sched domain test for 
sched_mc=$sched_mc "
+                               else
+                                       RC=$?
+                                       tst_resm TFAIL "sched domain test for 
sched_mc=$sched_mc "
                                fi
                        done
                        
@@ -139,26 +141,35 @@ fi
 # Checking cpufreq sysfs interface files
 #check_config.sh config_cpu_freq || RC=$?
 if [ -d /sys/devices/system/cpu/cpu0/cpufreq ] ; then
-       check_cpufreq_sysfs_files.sh; RC=$?
-       if [ $RC -eq 1 ] ; then
+       if check_cpufreq_sysfs_files.sh ; then
+               tst_resm TPASS "CPUFREQ sysfs tests "
+       else
+               RC=$?
                tst_resm TFAIL "CPUFREQ sysfs tests "
        fi
 
        # Changing governors
-       change_govr.sh; RC=$?
-       if [ $RC -eq 1 ] ; then
+       if change_govr.sh ; then
+               tst_resm TPASS "Changing governors "
+       else
+               RC=$?
                tst_resm TFAIL "Changing governors "
        fi
 
        # Changing frequencies
-       change_freq.sh; RC=$?
-       if [ $RC -eq 1 ] ; then
+       if change_freq.sh ; then
+               tst_resm TPASS "Changing frequncies "
+       else
+               RC=$?
                tst_resm TFAIL "Changing frequncies "
        fi
 
        # Loading and Unloading governor related kernel modules
-       pwkm_load_unload.sh; RC=$?
-       if [ $RC -eq 1 ] ; then
+       if pwkm_load_unload.sh ; then
+               tst_resm TPASS "Loading and Unloading of governor kernel \
+               modules got failed"
+       else
+               RC=$?
                tst_resm TFAIL "Loading and Unloading of governor kernel \
                modules got failed"
        fi
@@ -167,23 +178,30 @@ else
 fi
 
 # Checking cpuidle sysfs interface files
-check_cpuidle_sysfs_files.sh; RC=$?
-if [ $RC -eq 1 ] ; then
+if check_cpuidle_sysfs_files.sh ; then
+       tst_resm TPASS "CPUIDLE sysfs tests failed"
+else
+       RC=$?
        tst_resm TFAIL "CPUIDLE sysfs tests failed"
 fi
 
 # Test sched_smt_power_savings interface on HT machines
 if [ -f /sys/devices/system/cpu/sched_smt_power_savings ] ; then
-       test_sched_smt.sh; RC=$?
-       if [ $RC -eq 1 ] ; then
+       if test_sched_smt.sh ; then
+               tst_resm TPASS "SCHED_MC sysfs tests failed"
+       else
+               RC=$?
                tst_resm TFAIL "SCHED_MC sysfs tests failed"
        fi
 else
        hyper_threaded=$(is_hyper_threaded)
        if [ $hyper_threaded -eq 1 ]; then
                tst_resm TFAIL "Required kernel configuration for SCHED_SMT NOT 
set"
+               RC=1
        else
                tst_resm TCONF "Required Hyper Threading support in the\
 system under test"
        fi
 fi
+
+exit $RC
\ No newline at end of file
-- 
1.6.2.4


------------------------------------------------------------------------------
OpenSolaris 2009.06 is a cutting edge operating system for enterprises 
looking to deploy the next generation of Solaris that includes the latest 
innovations from Sun and the OpenSource community. Download a copy and 
enjoy capabilities such as Networking, Storage and Virtualization. 
Go to: http://p.sf.net/sfu/opensolaris-get
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list

Reply via email to