From bec2d2b13f6cc42e7dc969d43af5bafb14588df1 Mon Sep 17 00:00:00 2001 From: Naresh Kamboju Date: Wed, 15 Oct 2014 12:29:03 +0530 Subject: 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 --- common/iks-smoke-test.yaml | 24 +++++++++ common/scripts/iks-smoke-test.sh | 105 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 129 insertions(+) create mode 100644 common/iks-smoke-test.yaml create mode 100755 common/scripts/iks-smoke-test.sh (limited to 'common') diff --git a/common/iks-smoke-test.yaml b/common/iks-smoke-test.yaml new file mode 100644 index 0000000..5791068 --- /dev/null +++ b/common/iks-smoke-test.yaml @@ -0,0 +1,24 @@ +metadata: + format: "Lava-Test Test Definition 1.0" + name: iks-smoke-test + description: "IKS-smoke-test + This test is to enable and disable big.LITTLE IKS switcher 100 times" + maintainer: + - naresh.kamboju@linaro.org + os: + - android + - ubuntu + scope: + - functional + devices: + - vexpress-tc2 + environment: + - lava-test-shell + timeout: 1800 + +run: + steps: + - './common/scripts/iks-smoke-test.sh' + +parse: + pattern: "^(?P[a-zA-Z0-9_ \\-]+):\\s+(?PPASS|FAIL|SKIP)" 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 +# +# "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 -- cgit v1.2.3