diff mbox

pm-qa: run sanity check before running test cases

Message ID 1340816104-10167-1-git-send-email-rajagopal.venkat@linaro.org
State New
Headers show

Commit Message

rajagopal.venkat@linaro.org June 27, 2012, 4:55 p.m. UTC
From: root <root@linaro-ubuntu-desktop.(none)>

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 <rajagopal.venkat@linaro.org>
---
 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

Comments

Paul Larson June 27, 2012, 5:18 p.m. UTC | #1
> +#!/bin/bash
>
I suspect that stuff like this is going to be unfriendly to the
androidification work that is going on for pmqa.  Hongbo, do all the
scripts need to be converted over to run under the minimal shell that
android supports?

Thanks,
Paul Larson
Amit Kucheria June 28, 2012, 5:21 a.m. UTC | #2
On Wed, Jun 27, 2012 at 10:48 PM, Paul Larson <paul.larson@linaro.org> wrote:
>
>> +#!/bin/bash
>
> I suspect that stuff like this is going to be unfriendly to the
> androidification work that is going on for pmqa.  Hongbo, do all the scripts
> need to be converted over to run under the minimal shell that android
> supports?

Agreed.

The scripts themselves don't need wholesale conversions, but we need
to ensure that they work in non-bash shells. IOW, we need to use the
subset of POSIX that will work on most shells including the busybox
shell in the Android LEBs.

Adding Kejun from the Android team who has been looking into this.

/Amit
Hongbo Zhang June 28, 2012, 5:40 a.m. UTC | #3
In fact, this patten "shell_name script_file" works.
for example on Android, "/bin/sh ***.sh" can run the scrips.
"#!/bin/bash" at the beginning just points the default shell.

On 28 June 2012 01:18, Paul Larson <paul.larson@linaro.org> wrote:

>
> +#!/bin/bash
>>
> I suspect that stuff like this is going to be unfriendly to the
> androidification work that is going on for pmqa.  Hongbo, do all the
> scripts need to be converted over to run under the minimal shell that
> android supports?
>
> Thanks,
> Paul Larson
>
Hongbo Zhang July 2, 2012, 7:50 a.m. UTC | #4
On 28 June 2012 00:55, Rajagopal Venkat <rajagopal.venkat@linaro.org> wrote:

> From: root <root@linaro-ubuntu-desktop.(none)>
>
It seems that you did this work on the snowball.
the git is not completely configed?

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 <rajagopal.venkat@linaro.org>
> ---
>  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 <daniel.lezcano@linaro.org> (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 <rajagopal.venkat@linaro.org>
> +#       - 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 <daniel.lezcano@linaro.org> (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...
> --
> 1.7.9.5
>
>
> _______________________________________________
> linaro-dev mailing list
> linaro-dev@lists.linaro.org
> http://lists.linaro.org/mailman/listinfo/linaro-dev
>
rajagopal.venkat@linaro.org July 2, 2012, 8:28 a.m. UTC | #5
On 2 July 2012 13:20, Hongbo Zhang <hongbo.zhang@linaro.org> wrote:

>
>
> On 28 June 2012 00:55, Rajagopal Venkat <rajagopal.venkat@linaro.org>wrote:
>
>> From: root <root@linaro-ubuntu-desktop.(none)>
>>
> It seems that you did this work on the snowball.
> the git is not completely configed?
>
> Yes. Thanks for pointing this out. I will submit the new patch.


> 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 <rajagopal.venkat@linaro.org>
>> ---
>>  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 <daniel.lezcano@linaro.org> (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 <rajagopal.venkat@linaro.org>
>> +#       - 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 <daniel.lezcano@linaro.org> (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...
>> --
>> 1.7.9.5
>>
>>
>> _______________________________________________
>> linaro-dev mailing list
>> linaro-dev@lists.linaro.org
>> http://lists.linaro.org/mailman/listinfo/linaro-dev
>>
>
>
Daniel Lezcano July 2, 2012, 1:12 p.m. UTC | #6
On 06/27/2012 06:55 PM, Rajagopal Venkat wrote:
> From: root <root@linaro-ubuntu-desktop.(none)>

Please, check your git configuration.

[user]
        name = Rajagopal Venkat
        email = rajagopal.venkat@linaro.org
[sendemail]
        smtpencryption = tls
        smtpserver = smtp.gmail.com
        smtpuser = rajagopal.venkat@linaro.org
        smtppass = xxxxxxxxx
        smtpserverport = 587

Thanks
  -- Daniel
diff mbox

Patch

diff --git a/Test.mk b/Test.mk
index 1d69d7a..76f79b5 100644
--- a/Test.mk
+++ b/Test.mk
@@ -21,15 +21,22 @@ 
 #     Daniel Lezcano <daniel.lezcano@linaro.org> (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 <rajagopal.venkat@linaro.org>
+#       - 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 <daniel.lezcano@linaro.org> (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...