summaryrefslogtreecommitdiff
path: root/common/scripts
diff options
context:
space:
mode:
authorNaresh Kamboju <naresh.kamboju@linaro.org>2014-10-15 12:29:03 +0530
committerMilosz Wasilewski <milosz.wasilewski@linaro.org>2014-11-25 10:16:12 +0000
commitbec2d2b13f6cc42e7dc969d43af5bafb14588df1 (patch)
tree764f688725164eee50e37be82fd355b7803bad68 /common/scripts
parentb0ee708e294e3092bc0bd75cc86c0ad691fec221 (diff)
iks-smoke-test: Adding new test definition for big.LITTLE IKS
This test is to enable and disable big.LITTLE IKS switcher 100 times and ensure kernel not crashed while running this test. Change-Id: I2755bdd3724b4096af165ecb64579f038d124203 Signed-off-by: Naresh Kamboju <naresh.kamboju@linaro.org>
Diffstat (limited to 'common/scripts')
-rwxr-xr-xcommon/scripts/iks-smoke-test.sh105
1 files changed, 105 insertions, 0 deletions
diff --git a/common/scripts/iks-smoke-test.sh b/common/scripts/iks-smoke-test.sh
new file mode 100755
index 0000000..6c1c8cc
--- /dev/null
+++ b/common/scripts/iks-smoke-test.sh
@@ -0,0 +1,105 @@
+# IKS smoke test
+#
+# Copyright (C) 2014, 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.
+#
+# Author: Naresh Kamboju <naresh.kamboju@linaro.org>
+#
+# "CONFIG_BL_SWITCHER=y" is required in kernel config.
+# Enable and disable big.LITTLE switcher can be done in run time by using
+# userspace entry "/sys/kernel/bL_switcher/active"
+# This test is to enable and disable big.LITTLE IKS switcher 100 times.
+
+ERR_CODE=0
+switcher_disable ()
+{
+ echo 0 > /sys/kernel/bL_switcher/active
+ ERR_CODE=$?
+ if [ $ERR_CODE -ne 0 ]; then
+ echo "not able to disable switcher"
+ return 1
+ fi
+ return 0
+}
+
+switcher_enable ()
+{
+ echo 1 > /sys/kernel/bL_switcher/active
+ ERR_CODE=$?
+ if [ $ERR_CODE -ne 0 ]; then
+ echo "not able to enable switcher"
+ return 1
+ fi
+ return 0
+}
+
+check_iks()
+{
+ if [ -e /sys/kernel/bL_switcher/active ]; then
+ echo "******************************"
+ echo "IKS Implemented on this device"
+ echo "******************************"
+ else
+ echo "IKS not implemented on this device"
+ echo "skipping IKS tests"
+ echo "enable-and-disable-switcher-100-times: SKIP"
+ echo "IKS-smoke-test: SKIP"
+ exit 0
+ fi
+}
+
+check_kernel_oops()
+{
+ KERNEL_ERR=`dmesg | grep "Unable to handle kernel"`
+ if [ -n "$KERNEL_ERR" ]; then
+ echo "Kernel OOPS. Abort!!"
+ return 1
+ fi
+ return 0
+}
+
+enable_and_disable_switcher_100_times()
+{
+ i=0
+ while [ $i -lt 100 ]; do
+ switcher_enable
+ if [ $? -ne 0 ]; then
+ return $?
+ fi
+ sleep 1
+ switcher_disable
+ if [ $? -ne 0 ]; then
+ return $?
+ fi
+ i=$(($i + 1))
+ echo "enable/disable IKS loop $i"
+ done
+}
+
+check_iks
+enable_and_disable_switcher_100_times
+if [ $? -eq 0 ]; then
+ echo "enable-and-disable-switcher-100-times: PASS"
+else
+ echo "enable-and-disable-switcher-100-times: FAIL"
+fi
+check_kernel_oops
+if [ $? -eq 0 ]; then
+ echo "IKS-smoke-test: PASS"
+else
+ echo "IKS-smoke-test: FAIL"
+fi
+exit 0