diff options
author | Naresh Kamboju <naresh.kamboju@linaro.org> | 2014-10-15 12:29:03 +0530 |
---|---|---|
committer | Milosz Wasilewski <milosz.wasilewski@linaro.org> | 2014-11-25 10:16:12 +0000 |
commit | bec2d2b13f6cc42e7dc969d43af5bafb14588df1 (patch) | |
tree | 764f688725164eee50e37be82fd355b7803bad68 /common/scripts | |
parent | b0ee708e294e3092bc0bd75cc86c0ad691fec221 (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-x | common/scripts/iks-smoke-test.sh | 105 |
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 |