Signed-off-by: Daniel Lezcano daniel.lezcano@linaro.org --- cpufreq/test_05.sh | 73 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 73 insertions(+), 0 deletions(-) create mode 100644 cpufreq/test_05.sh
diff --git a/cpufreq/test_05.sh b/cpufreq/test_05.sh new file mode 100644 index 0000000..7064c13 --- /dev/null +++ b/cpufreq/test_05.sh @@ -0,0 +1,73 @@ +#!/bin/bash +# +# PM-QA validation test suite for the power management on ARM +# +# 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: +# Daniel Lezcano daniel.lezcano@linaro.org (IBM Corporation) +# - initial API and implementation +# + +# URL : https://wiki.linaro.org/WorkingGroups/PowerManagement/Doc/QA/Scripts#test_05 + +source ../include/functions.sh + +if [ $(id -u) != 0 ]; then + log_skip "run as non-root" + exit 0 +fi + +save_governors + +trap restore_governors SIGHUP SIGINT SIGTERM + +switch_ondemand() { + local cpu=$1 + set_governor $cpu 'ondemand' +} + +switch_conservative() { + local cpu=$1 + set_governor $cpu 'conservative' +} + +switch_userspace() { + local cpu=$1 + set_governor $cpu 'userspace' +} + +for_each_cpu switch_ondemand +check "'ondemand' directory exists" "test -d $CPU_PATH/cpufreq/ondemand" + +for_each_cpu switch_conservative +check "'conservative' directory exists" "test -d $CPU_PATH/cpufreq/conservative" + +for_each_cpu switch_userspace +check "'ondemand' directory is not there" "test ! -d $CPU_PATH/cpufreq/ondemand" +check "'conservative' directory is not there" "test ! -d $CPU_PATH/cpufreq/conservative" + +# if more than one cpu, combine governors +nrcpus=$(ls $CPU_PATH | grep "cpu[0-9].*" | wc -l) +if [ $nrcpus > 0 ]; then + switch_ondemand cpu0 + switch_conservative cpu1 + check "'ondemand' directory exists" "test -d $CPU_PATH/cpufreq/ondemand" + check "'conservative' directory exists" "test -d $CPU_PATH/cpufreq/conservative" +fi + +restore_governors