Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b03eaf8d authored by Viresh Kumar's avatar Viresh Kumar Committed by Shuah Khan
Browse files

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: default avatarViresh Kumar <viresh.kumar@linaro.org>
Signed-off-by: default avatarShuah Khan <shuahkh@osg.samsung.com>
parent e66d5b67
Loading
Loading
Loading
Loading
+40 −0
Original line number Diff line number Diff line
@@ -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
}
+12 −2
Original line number Diff line number Diff line
@@ -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