Just a nit below.

On 11 Jul 26, Daniel Lezcano wrote:
> Add a common directory for all the functions we will use later in the test 
> scripts.
> 
> Signed-off-by: Daniel Lezcano <daniel.lezc...@linaro.org>
> ---
>  include/functions.sh |  251 
> ++++++++++++++++++++++++++++++++++++++++++++++++++
>  1 files changed, 251 insertions(+), 0 deletions(-)
>  create mode 100644 include/functions.sh
> 
> diff --git a/include/functions.sh b/include/functions.sh
> new file mode 100644
> index 0000000..67c356a
> --- /dev/null
> +++ b/include/functions.sh
> @@ -0,0 +1,251 @@
> +#!/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.lezc...@linaro.org> (IBM Corporation)
> +#       - initial API and implementation
> +#
> +
> +CPU_PATH="/sys/devices/system/cpu"
> +TEST_NAME=$(basename ${0%.sh})
> +PREFIX=$TEST_NAME
> +BLOCK=$(basename $(pwd))
> +
> +setprefix_cpu() {
> +    PREFIX=$BLOCK:$TEST_NAME/$1
> +}
> +
> +log_begin() {
> +    printf "%-75s" "$PREFIX $@ ... "
> +}
> +
> +log_end() {
> +    printf "$*\n"
> +}
> +
> +log_skip() {
> +    log_begin "$@"
> +    log_end "SKIP"
> +}
> +
> +for_each_cpu() {
> +
> +    local func=$1
> +    shift 1
> +
> +    cpus=$(ls $CPU_PATH | grep "cpu[0-9].*")
> +
> +    for cpu in $cpus; do
> +     setprefix_cpu $cpu
> +     $func $cpu $@
> +    done
> +
> +    return 0
> +}
> +
> +for_each_governor() {
> +
> +    local cpu=$1
> +    local func=$2
> +    local dirpath=$CPU_PATH/$cpu/cpufreq
> +    local governors=$(cat $dirpath/scaling_available_governors)
> +    shift 2
> +
> +    for governor in $governors; do
> +     $func $cpu $governor $@
> +    done
> +
> +    return 0
> +}
> +
> +for_each_frequency() {
> +
> +    local cpu=$1
> +    local func=$2
> +    local dirpath=$CPU_PATH/$cpu/cpufreq
> +    local frequencies=$(cat $dirpath/scaling_available_frequencies)
> +    shift 2
> +
> +    for frequency in $frequencies; do
> +     $func $cpu $frequency $@
> +    done
> +
> +    return 0
> +}
> +
> +set_governor() {
> +
> +    local cpu=$1
> +    local dirpath=$CPU_PATH/$cpu/cpufreq/scaling_governor
> +    local newgov=$2
> +
> +    echo $newgov > $dirpath
> +}
> +
> +get_governor() {
> +
> +    local cpu=$1
> +    local dirpath=$CPU_PATH/$cpu/cpufreq/scaling_governor
> +
> +    cat $dirpath
> +}
> +
> +wait_latency() {
> +    local cpu=$1
> +    local dirpath=$CPU_PATH/$cpu/cpufreq
> +    local latency=$(cat $dirpath/cpuinfo_transition_latency)
> +    local nrfreq=$(cat $dirpath/scaling_available_frequencies | wc -w)
> +
> +    nrfreq=$((nrfreq + 1))
> +    ../utils/nanosleep $(($nrfreq * $latency))
> +}
> +
> +frequnit() {
> +    local freq=$1
> +    local ghz=$(echo "scale=1;($freq / 1000000)" | bc -l)
> +    local mhz=$(echo "scale=1;($freq / 1000)" | bc -l)
> +
> +    res=$(echo "($ghz > 1.0)" | bc -l)
> +    if [ "$res" = "1" ]; then
> +     echo $ghz GHz
> +     return 0
> +    fi
> +
> +    res=$(echo "($mhz > 1.0)" | bc -l)
> +    if [ "$res" = "1" ];then
> +     echo $mhz MHz
> +     return 0
> +    fi
> +
> +    echo $freq KHz
> +}
> +
> +set_frequency() {
> +
> +    local cpu=$1
> +    local dirpath=$CPU_PATH/$cpu/cpufreq
> +    local newfreq=$2
> +    local setfreqpath=$dirpath/scaling_setspeed
> +
> +    echo $newfreq > $setfreqpath
> +    wait_latency $cpu
> +}
> +
> +get_frequency() {
> +    local cpu=$1
> +    local dirpath=$CPU_PATH/$cpu/cpufreq/scaling_cur_freq
> +    cat $dirpath
> +}
> +
> +get_max_frequency() {
> +    local cpu=$1
> +    local dirpath=$CPU_PATH/$cpu/cpufreq/scaling_max_freq
> +    cat $dirpath
> +}
> +
> +get_min_frequency() {
> +    local cpu=$1
> +    local dirpath=$CPU_PATH/$cpu/cpufreq/scaling_min_freq
> +    cat $dirpath
> +}
> +
> +check() {
> +
> +    local descr=$1
> +    local func=$2
> +    shift 2;
> +
> +    log_begin "checking $descr"
> +
> +    $func $@
> +    if [ $? != 0 ]; then
> +     log_end "FAIL"
> +     return 1
> +    fi
> +
> +    log_end "PASS"
> +
> +    return 0
> +}
> +
> +check_cpufreq_files() {
> +
> +    local dirpath=$CPU_PATH/$1/cpufreq
> +    shift 1
> +
> +    for i in $@; do
> +     check "$i exists" "test -f" $dirpath/$i  || return 1
> +    done
> +
> +    return 0
> +}
> +
> +save_governors() {
> +
> +    governors_backup=
> +    local index=0
> +
> +    for i in $(ls $CPU_PATH | grep "cpu[0-9].*"); do
> +     governors_backup[$index]=$(cat $CPU_PATH/$i/cpufreq/scaling_governor)
> +     index=$((index + 1))
> +    done
> +}
> +
> +restore_governors() {
> +
> +    local index=0
> +    local oldgov=
> +
> +    for i in $(ls $CPU_PATH | grep "cpu[0-9].*"); do
> +     oldgov=${governors_backup[$index]}
> +     echo $oldgov > $CPU_PATH/$i/cpufreq/scaling_governor
> +     index=$((index + 1))
> +    done
> +}
> +
> +save_frequencies() {
> +
> +    frequencies_backup=
> +    local index=0
> +    local cpus=$(ls $CPU_PATH | grep "cpu[0-9].*")
> +    local cpu=
> +
> +    for cpu in $cpus; do
> +     frequencies_backup[$index]=$(cat 
> $CPU_PATH/$cpu/cpufreq/scaling_cur_freq)
> +     index=$((index + 1))
> +    done
> +}
> +
> +restore_frequencies() {
> +
> +    local index=0
> +    local oldfreq=
> +    local cpus=$(ls $CPU_PATH | grep "cpu[0-9].*")
> +
> +    for cpu in $cpus; do
> +     oldfreq=${frequencies_backup[$index]}
> +     echo $oldfreq > $CPU_PATH/$cpu/cpufreq/scaling_setspeed
> +     index=$((index + 1))
> +    done
> +}
> +
> +sigtrap() {
> +    exit 255
> +}
> \ No newline at end of file

^^^

> -- 
> 1.7.4.1
> 

_______________________________________________
linaro-dev mailing list
linaro-dev@lists.linaro.org
http://lists.linaro.org/mailman/listinfo/linaro-dev

Reply via email to