aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAmit Daniel Kachhap <amit.kachhap@linaro.org>2012-03-26 17:06:54 +0530
committerzhanghongbo <hongbo.zhang@stericsson.com>2012-05-09 15:30:56 +0800
commitd57a91c86cd5df7d280e7db5daba2ba93636a066 (patch)
treebacb02fdb84c9ed45b1ccb148cdbe27aeb05f2d6
parentaa119586f05a11fe837601e58806f3bff86be113 (diff)
Verify that different trip points are crossed when load is maximum
Signed-off-by: Amit Daniel Kachhap <amit.kachhap@linaro.org>
-rw-r--r--include/thermal_functions.sh13
-rwxr-xr-xthermal/thermal_06.sh99
-rw-r--r--thermal/thermal_06.txt1
3 files changed, 113 insertions, 0 deletions
diff --git a/include/thermal_functions.sh b/include/thermal_functions.sh
index 40a87ff..0fe5bd7 100644
--- a/include/thermal_functions.sh
+++ b/include/thermal_functions.sh
@@ -196,3 +196,16 @@ store_scaling_maxfreq() {
done
return 0
}
+
+get_trip_id() {
+
+ local trip_name=$1
+ shift 1
+
+ local id1=$(echo $trip_name|cut -c12)
+ local id2=$(echo $trip_name|cut -c13)
+ if [ $id2 != "_" ]; then
+ id1=$(($id2 + 10*$id1))
+ fi
+ return $id1
+}
diff --git a/thermal/thermal_06.sh b/thermal/thermal_06.sh
new file mode 100755
index 0000000..49c4d80
--- /dev/null
+++ b/thermal/thermal_06.sh
@@ -0,0 +1,99 @@
+#!/bin/bash
+#
+# PM-QA validation test suite for the power management on Linux
+#
+# Copyright (C) 2011, Linaro Limited.
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
+#
+# Contributors:
+# Amit Daniel <amit.kachhap@linaro.org> (Samsung Electronics)
+# - initial API and implementation
+#
+
+# URL : https://wiki.linaro.org/WorkingGroups/PowerManagement/Doc/QA/Scripts#thermal_06
+
+source ../include/functions.sh
+source ../include/thermal_functions.sh
+
+CPU_HEAT_BIN=../utils/heat_cpu
+GPU_HEAT_BIN=glmark2
+TEST_LOOP=100
+TRIP_CROSSED_COUNT=
+
+check_trip_point_change() {
+ local dirpath=$THERMAL_PATH/$1
+ local zone_name=$1
+ shift 1
+
+ local count=0
+ local cur_temp=0
+ local trip_temp=0
+ local trip_cross=
+ local trip_id=
+ local cpu_pid=0
+ local gpu_pid=0
+ local trip_type=0
+ local trip_type_path=0
+ $CPU_HEAT_BIN &
+ cpu_pid=$(ps | grep heat_cpu| awk '{print $1}')
+ check "start cpu heat binary" "test $cpu_pid -ne 0"
+
+ $GPU_HEAT_BIN &
+ gpu_pid=$(ps | grep $GPU_HEAT_BIN| awk '{print $1}')
+ check "start gpu heat binary" "test $gpu_pid -ne 0"
+
+ local index=0
+ for trip in $(ls $dirpath | grep "trip_point_['$MAX_ZONE']_temp"); do
+ trip_cross[$index]=0
+ index=$((index + 1))
+ done
+ while (test $count -lt $TEST_LOOP); do
+ index=0
+ sleep 1
+ for trip in $(ls $dirpath | grep "trip_point_['$MAX_ZONE']_temp"); do
+ cur_temp=$(cat $dirpath/temp)
+ trip_temp=$(cat $dirpath/$trip)
+ if [ $cur_temp -gt $trip_temp ]; then
+ trip_cross[$index]=$((${trip_cross[$index]} + 1))
+ fi
+ index=$((index + 1))
+
+ done
+ count=$((count + 1))
+ done
+ index=0
+ for trip in $(ls $dirpath | grep "trip_point_['$MAX_ZONE']_temp"); do
+ get_trip_id $trip
+ trip_id=$?
+ trip_type=$(cat $dirpath/trip_point_$((trip_id))_type)
+ trip_temp=$(cat $dirpath/$trip)
+
+ if [ $trip_type != "critical" ]; then
+ count=${trip_cross[$index]}
+ check "$trip:$trip_temp crossed" "test $count -gt 0"
+ fi
+ index=$((index + 1))
+ done
+
+ if [ $cpu_pid -ne 0 ]; then
+ kill -9 $cpu_pid
+ fi
+ if [ $gpu_pid -ne 0 ]; then
+ kill -9 $gpu_pid
+ fi
+}
+
+for_each_thermal_zone check_trip_point_change
diff --git a/thermal/thermal_06.txt b/thermal/thermal_06.txt
new file mode 100644
index 0000000..4983557
--- /dev/null
+++ b/thermal/thermal_06.txt
@@ -0,0 +1 @@
+test/verify that different trip points are crossed when load is maximum