summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorViresh Kumar <viresh.kumar@linaro.org>2017-01-13 09:36:46 +0300
committerShuah Khan <shuahkh@osg.samsung.com>2017-01-19 20:32:15 +0300
commitb03eaf8dbac5534590ec52612f789d8fb292af9c (patch)
tree8f12fccdaffa56790b0f7aa9aeeee3663c75bf72
parente66d5b673741cf6b7da250da9f84a165b1e4342d (diff)
downloadlinux-b03eaf8dbac5534590ec52612f789d8fb292af9c.tar.xz
selftest: cpufreq: Add suspend/resume/hibernate support
This patch adds support to test basic suspend/resume and hibernation to the cpufreq selftests. Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org> Signed-off-by: Shuah Khan <shuahkh@osg.samsung.com>
-rwxr-xr-xtools/testing/selftests/cpufreq/cpufreq.sh40
-rwxr-xr-xtools/testing/selftests/cpufreq/main.sh14
2 files changed, 52 insertions, 2 deletions
diff --git a/tools/testing/selftests/cpufreq/cpufreq.sh b/tools/testing/selftests/cpufreq/cpufreq.sh
index 2b8b05aaa874..1ed3832030b4 100755
--- a/tools/testing/selftests/cpufreq/cpufreq.sh
+++ b/tools/testing/selftests/cpufreq/cpufreq.sh
@@ -199,3 +199,43 @@ cpufreq_basic_tests()
# Test all governors
shuffle_governors_for_all_cpus 1
}
+
+# Suspend/resume
+# $1: "suspend" or "hibernate", $2: loop count
+do_suspend()
+{
+ printf "** Test: Running ${FUNCNAME[0]}: Trying $1 for $2 loops **\n\n"
+
+ # Is the directory available
+ if [ ! -d $SYSFS/power/ -o ! -f $SYSFS/power/state ]; then
+ printf "$SYSFS/power/state not available\n"
+ return 1
+ fi
+
+ if [ $1 = "suspend" ]; then
+ filename="mem"
+ elif [ $1 = "hibernate" ]; then
+ filename="disk"
+ else
+ printf "$1 is not a valid option\n"
+ return 1
+ fi
+
+ if [ -n $filename ]; then
+ present=$(cat $SYSFS/power/state | grep $filename)
+
+ if [ -z "$present" ]; then
+ printf "Tried to $1 but $filename isn't present in $SYSFS/power/state\n"
+ return 1;
+ fi
+
+ for i in `seq 1 $2`; do
+ printf "Starting $1\n"
+ echo $filename > $SYSFS/power/state
+ printf "Came out of $1\n"
+
+ printf "Do basic tests after finishing $1 to verify cpufreq state\n\n"
+ cpufreq_basic_tests
+ done
+ fi
+}
diff --git a/tools/testing/selftests/cpufreq/main.sh b/tools/testing/selftests/cpufreq/main.sh
index 3224652ccbd4..9ff662f67ea4 100755
--- a/tools/testing/selftests/cpufreq/main.sh
+++ b/tools/testing/selftests/cpufreq/main.sh
@@ -15,7 +15,9 @@ helpme()
printf "Usage: $0 [-h] [-to args]
[-h <help>]
[-o <output-file-for-dump>]
- [-t <basic: Basic cpufreq testing>]
+ [-t <basic: Basic cpufreq testing
+ suspend: suspend/resume,
+ hibernate: hibernate/resume>]
\n"
exit 2
}
@@ -61,7 +63,7 @@ parse_arguments()
helpme
;;
- t) # --func_type (Function to perform: basic (default: basic))
+ t) # --func_type (Function to perform: basic, suspend, hibernate (default: basic))
FUNC=$OPTARG
;;
@@ -91,6 +93,14 @@ do_test()
cpufreq_basic_tests
;;
+ "suspend")
+ do_suspend "suspend" 1
+ ;;
+
+ "hibernate")
+ do_suspend "hibernate" 1
+ ;;
+
*)
echo "Invalid [-f] function type"
helpme