From a206193ee42984daa5b6badd2e39d8f49d8ba17b Mon Sep 17 00:00:00 2001 From: Rajagopal Venkat Date: Mon, 2 Jul 2012 19:38:40 +0530 Subject: pm-qa: run sanity check before running test cases run sanity test for each functionality if present. If functionality enabled, then run all respective test cases. This patch also adds sanity checks for cpuidle and sched_mc. Signed-off-by: Rajagopal Venkat --- Test.mk | 17 ++++++++++++++--- cpuidle/cpuidle_sanity.sh | 35 +++++++++++++++++++++++++++++++++++ cpuidle/cpuidle_sanity.txt | 1 + sched_mc/sched_sanity.sh | 35 +++++++++++++++++++++++++++++++++++ sched_mc/sched_sanity.txt | 1 + 5 files changed, 86 insertions(+), 3 deletions(-) create mode 100755 cpuidle/cpuidle_sanity.sh create mode 100644 cpuidle/cpuidle_sanity.txt create mode 100755 sched_mc/sched_sanity.sh create mode 100644 sched_mc/sched_sanity.txt diff --git a/Test.mk b/Test.mk index 1d69d7a..76f79b5 100644 --- a/Test.mk +++ b/Test.mk @@ -21,15 +21,22 @@ # Daniel Lezcano (IBM Corporation) # - initial API and implementation # - -TST=$(wildcard *.sh) +SNT=$(wildcard *sanity.sh) +TST=$(wildcard *[^(sanity)].sh) LOG=$(TST:.sh=.log) CFLAGS?=-g -Wall -pthread CC?=gcc SRC=$(wildcard *.c) EXEC=$(SRC:%.c=%) -check: uncheck $(EXEC) $(LOG) +check: run_tests + +SANITY_STATUS:= $(shell if test $(SNT) && test -f $(SNT); then \ + ./$(SNT); if test "$$?" -eq 0; then echo 0; else \ + echo 1; fi; else echo 1; fi) + +ifeq "$(SANITY_STATUS)" "1" +run_tests: uncheck $(EXEC) $(LOG) %.log: %.sh @echo "###" @@ -38,6 +45,10 @@ check: uncheck $(EXEC) $(LOG) @echo -n "### "; grep "URL :" ./$< | awk '/http/{print $$NF}' @echo "###" @./$< 2> $@ +else +run_tests: $(SNT) + @cat $(<:.sh=.txt) +endif clean: rm -f *.o $(EXEC) diff --git a/cpuidle/cpuidle_sanity.sh b/cpuidle/cpuidle_sanity.sh new file mode 100755 index 0000000..a8336fa --- /dev/null +++ b/cpuidle/cpuidle_sanity.sh @@ -0,0 +1,35 @@ +#!/bin/bash +# +# PM-QA validation test suite for the power management on Linux +# +# 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: +# Rajagopal Venkat +# - initial API and implementation +# + +source ../include/functions.sh + +check_cpuidle_sysfs_entry() { + + local dirpath=$CPU_PATH/cpuidle + + test -d $dirpath && return 1 || return 0 +} + +check_cpuidle_sysfs_entry diff --git a/cpuidle/cpuidle_sanity.txt b/cpuidle/cpuidle_sanity.txt new file mode 100644 index 0000000..03d3f7c --- /dev/null +++ b/cpuidle/cpuidle_sanity.txt @@ -0,0 +1 @@ +cpuidle is not enabled. Skipping all cpudile tests... diff --git a/sched_mc/sched_sanity.sh b/sched_mc/sched_sanity.sh new file mode 100755 index 0000000..1b1b58b --- /dev/null +++ b/sched_mc/sched_sanity.sh @@ -0,0 +1,35 @@ +#!/bin/bash +# +# PM-QA validation test suite for the power management on Linux +# +# 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 (IBM Corporation) +# - initial API and implementation +# + +source ../include/functions.sh + +check_sched_mc_sysfs_entry() { + + local filepath=$CPU_PATH/sched_mc_power_savings + + test -f $filepath && return 1 || return 0 +} + +check_sched_mc_sysfs_entry diff --git a/sched_mc/sched_sanity.txt b/sched_mc/sched_sanity.txt new file mode 100644 index 0000000..c79c23e --- /dev/null +++ b/sched_mc/sched_sanity.txt @@ -0,0 +1 @@ +sched_mc is not enabled. Skipping all sched_mc tests... -- cgit v1.2.3