aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorViresh Kumar <viresh.kumar@linaro.org>2015-01-09 16:55:36 +0530
committerViresh Kumar <viresh.kumar@linaro.org>2015-01-09 16:55:36 +0530
commit1d53a541950a2a5952f35c98562fd2539f3a3af7 (patch)
treefb8fb7f544580c2b148697a7f897172d1b0fbd32
parent5bff995467b0807fe2237cc21d4bb6b07951b6fb (diff)
pass parameters elegantly
Signed-off-by: Viresh Kumar <viresh.kumar@linaro.org>
-rwxr-xr-xrunme.sh71
-rwxr-xr-xspecial-tests.sh43
2 files changed, 99 insertions, 15 deletions
diff --git a/runme.sh b/runme.sh
index accad17..b16e552 100755
--- a/runme.sh
+++ b/runme.sh
@@ -14,9 +14,13 @@ source cpu.sh
source governor.sh
source special-tests.sh
-OUTFILE=${1-dump}
+OUTFILE=dump
+FUNC=basic # do basic tests by default
-cpufreq_test()
+# Check validity of arguments
+USAGE="Usage: $0 [-h] [-of args] [-h <help>] [-o <output-file-for-dump>] [-f <basic: cpufreq_basic_tests, sp1: governor_race, sp2: simple_lockdep, sp3: hotplug_with_updates>]"
+
+cpufreq_basic_tests()
{
echo "*** RUNNING CPUFREQ SANITY TESTS ***"
echo "===================================="
@@ -49,10 +53,61 @@ cpufreq_test()
shuffle_frequency_for_all_cpus 2
}
-# Check validity of arguments
-if [ "$1" = "-h" -o "$1" = "--help" ]; then
- echo "Usage: $0 <output-file-for-kernel-dumps>"
- exit
-fi
+# Parse arguments
+parse_arguments()
+{
+ while getopts hf:o: arguments 2>/dev/null
+ do
+ case $arguments in
+ h) # --help
+ echo "$USAGE"
+ exit 0
+ ;;
+
+ f) # --func_type (Function to perform: basic, sp1, sp2, sp3, default: basic)
+ FUNC=$OPTARG
+ ;;
+
+ o) # --output-file (Output file to store dumps)
+ OUTFILE=$OPTARG
+ ;;
+
+ \?) # getopts issues an error message
+ echo "$USAGE "
+ exit 1
+ ;;
+ esac
+ done
+}
+
+# Run isolation test for $FUNC
+run_func()
+{
+ case "$FUNC" in
+ "basic")
+ call_routine cpufreq_basic_tests $OUTFILE
+ ;;
+
+ "sp1")
+ governor_race
+ ;;
+
+ "sp2")
+ simple_lockdep
+ ;;
+
+ "sp3")
+ hotplug_with_updates
+ ;;
+
+ *)
+ echo "Invalid [-f] function type"
+ ;;
+ esac
+}
+
+# Parse isol arguments
+parse_arguments $@
-call_routine cpufreq_test $OUTFILE
+# Run requested functions
+run_func
diff --git a/special-tests.sh b/special-tests.sh
index 603db1f..69165cd 100755
--- a/special-tests.sh
+++ b/special-tests.sh
@@ -15,9 +15,9 @@ source cpu.sh
source cpufreq.sh
source governor.sh
-quick_shuffle_test1()
+quick_shuffle()
{
- # this is called concurrently from governor_race_test
+ # this is called concurrently from governor_race
for I in `seq 1000`
do
echo ondemand | sudo tee /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor &
@@ -25,7 +25,7 @@ quick_shuffle_test1()
done
}
-governor_race_test()
+governor_race()
{
echo "** Test: Running ${FUNCNAME[0]} **"
echo ""
@@ -33,7 +33,7 @@ governor_race_test()
# run 8 concurrent instances
for I in `seq 8`
do
- quick_shuffle_test1 &
+ quick_shuffle &
done
}
@@ -64,6 +64,35 @@ simple_lockdep()
for_each_cpu __simple_lockdep
}
-# Run special tests
-simple_lockdep
-governor_race_test
+# $1: cpu
+hotplug_with_updates_cpu()
+{
+ local filepath="$CPU_PATH/$1/cpufreq"
+
+ # switch to ondemand
+ __switch_governor $1 "ondemand"
+
+ for i in `seq 1 5000`
+ do
+ offline_online_cpu $1
+ done &
+
+ local freqs=$(cat $filepath/scaling_available_frequencies)
+ local oldfreq=$(cat $filepath/scaling_min_freq)
+
+ for j in `seq 1 5000`
+ do
+ # Set all frequencies one-by-one
+ for freq in $freqs; do
+ echo $freq > $filepath/scaling_min_freq
+ done
+ done
+
+ # restore old freq
+ echo $oldfreq > $filepath/scaling_min_freq
+}
+
+hotplug_with_updates()
+{
+ for_each_non_boot_cpu hotplug_with_updates_cpu
+}