Message ID | 1341243836-3127-1-git-send-email-rajagopal.venkat@linaro.org |
---|---|
State | New |
Headers | show |
On Mon, Jul 2, 2012 at 9:13 PM, Rajagopal Venkat <rajagopal.venkat@linaro.org> wrote: > add powertop test cases into pm-qa. Run the powertop sanity > test to check if tool is available. If yes, then run > powertop in report generation mode and validate the output. > > Signed-off-by: Rajagopal Venkat <rajagopal.venkat@linaro.org> > --- > Makefile | 1 + > powertop/Makefile | 25 ++++++++++++++++++ > powertop/powertop_01.sh | 58 ++++++++++++++++++++++++++++++++++++++++++ > powertop/powertop_01.txt | 1 + > powertop/powertop_sanity.sh | 35 +++++++++++++++++++++++++ > powertop/powertop_sanity.txt | 1 + > 6 files changed, 121 insertions(+) > create mode 100644 powertop/Makefile > create mode 100755 powertop/powertop_01.sh > create mode 100644 powertop/powertop_01.txt > create mode 100755 powertop/powertop_sanity.sh > create mode 100644 powertop/powertop_sanity.txt > > diff --git a/Makefile b/Makefile > index f85e5ac..1e73608 100644 > --- a/Makefile > +++ b/Makefile > @@ -33,6 +33,7 @@ check: > @(cd sched_mc; $(MAKE) check) > # @(cd suspend; $(MAKE) check) > # @(cd thermal; $(MAKE) check) > +# @(cd powertop; $(MAKE) check) > > uncheck: > @(cd cpufreq; $(MAKE) uncheck) > diff --git a/powertop/Makefile b/powertop/Makefile > new file mode 100644 > index 0000000..412edb5 > --- /dev/null > +++ b/powertop/Makefile > @@ -0,0 +1,25 @@ > +# > +# 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 > +# > + > +include ../Test.mk > diff --git a/powertop/powertop_01.sh b/powertop/powertop_01.sh > new file mode 100755 > index 0000000..3427899 > --- /dev/null > +++ b/powertop/powertop_01.sh > @@ -0,0 +1,58 @@ > +#!/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 > +# > + > +# URL : https://wiki.linaro.org/WorkingGroups/PowerManagement/Doc/QA/Scripts#powertop_01 > + > +source ../include/functions.sh > + > +run_powertop() { > + > + local bin_name=powertop Is is safe to assume that powertop is always in the PATH? Even on Android? > + local report=csv > + local seconds=10 > + local iterations=2 > + local report_name=PowerTOP*.csv > + > + # remove old reports if exists > + rm -f $report_name > + > + # run powertop for $(iterations) in report generation mode > + start_time=`date +%s` > + sudo $bin_name --$report --time=$seconds --iteration=$iterations > + end_time=`date +%s` > + > + # check if powertop run for desired time > + let expected_time="$iterations * $seconds" > + let actual_time="$end_time - $start_time" > + > + check "if powertop run for $expected_time sec" "test $actual_time -ge $expected_time" > + > + # check if $(iterations) number of reports are generated > + check "if reports are generated" "test $(ls $report_name | wc -l) -eq $iterations" ^^^^^^ Isn't 'ls -1' required for this to succeed? In general, I'd use mktemp -d and put the logs in a random temporary directory each time, but I guess that won't work on Android? > + > + return 0 > +} > + > +run_powertop > diff --git a/powertop/powertop_01.txt b/powertop/powertop_01.txt > new file mode 100644 empty file? > index 0000000..0caa6f0 > --- /dev/null > +++ b/powertop/powertop_01.txt > @@ -0,0 +1 @@ > +run powertop for 2 iterations of 10sec each > diff --git a/powertop/powertop_sanity.sh b/powertop/powertop_sanity.sh > new file mode 100755 > index 0000000..3ae3065 > --- /dev/null > +++ b/powertop/powertop_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_powertop() { > + > + local bin_name=powertop > + > + command -v $bin_name >/dev/null 2>&1 && return 1 || return 0 > +} > + > +check_powertop > diff --git a/powertop/powertop_sanity.txt b/powertop/powertop_sanity.txt > new file mode 100644 empty file? > index 0000000..1a182ae > --- /dev/null > +++ b/powertop/powertop_sanity.txt > @@ -0,0 +1 @@ > +powertop is not available. Skipping all tests... > -- > 1.7.9.5 > > > _______________________________________________ > linaro-dev mailing list > linaro-dev@lists.linaro.org > http://lists.linaro.org/mailman/listinfo/linaro-dev
On 2 July 2012 23:40, Amit Kucheria <amit.kucheria@linaro.org> wrote: > On Mon, Jul 2, 2012 at 9:13 PM, Rajagopal Venkat > <rajagopal.venkat@linaro.org> wrote: > > add powertop test cases into pm-qa. Run the powertop sanity > > test to check if tool is available. If yes, then run > > powertop in report generation mode and validate the output. > > > > Signed-off-by: Rajagopal Venkat <rajagopal.venkat@linaro.org> > > --- > > Makefile | 1 + > > powertop/Makefile | 25 ++++++++++++++++++ > > powertop/powertop_01.sh | 58 > ++++++++++++++++++++++++++++++++++++++++++ > > powertop/powertop_01.txt | 1 + > > powertop/powertop_sanity.sh | 35 +++++++++++++++++++++++++ > > powertop/powertop_sanity.txt | 1 + > > 6 files changed, 121 insertions(+) > > create mode 100644 powertop/Makefile > > create mode 100755 powertop/powertop_01.sh > > create mode 100644 powertop/powertop_01.txt > > create mode 100755 powertop/powertop_sanity.sh > > create mode 100644 powertop/powertop_sanity.txt > > > > diff --git a/Makefile b/Makefile > > index f85e5ac..1e73608 100644 > > --- a/Makefile > > +++ b/Makefile > > @@ -33,6 +33,7 @@ check: > > @(cd sched_mc; $(MAKE) check) > > # @(cd suspend; $(MAKE) check) > > # @(cd thermal; $(MAKE) check) > > +# @(cd powertop; $(MAKE) check) > > > > uncheck: > > @(cd cpufreq; $(MAKE) uncheck) > > diff --git a/powertop/Makefile b/powertop/Makefile > > new file mode 100644 > > index 0000000..412edb5 > > --- /dev/null > > +++ b/powertop/Makefile > > @@ -0,0 +1,25 @@ > > +# > > +# 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 > > +# > > + > > +include ../Test.mk > > diff --git a/powertop/powertop_01.sh b/powertop/powertop_01.sh > > new file mode 100755 > > index 0000000..3427899 > > --- /dev/null > > +++ b/powertop/powertop_01.sh > > @@ -0,0 +1,58 @@ > > +#!/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 > > +# > > + > > +# URL : > https://wiki.linaro.org/WorkingGroups/PowerManagement/Doc/QA/Scripts#powertop_01 > > + > > +source ../include/functions.sh > > + > > +run_powertop() { > > + > > + local bin_name=powertop > > Is is safe to assume that powertop is always in the PATH? Even on Android? > > Though powertop is available in the PATH on ubuntu and Android, it is not safe to assume. This will be fixed. > > + local report=csv > > + local seconds=10 > > + local iterations=2 > > + local report_name=PowerTOP*.csv > > + > > + # remove old reports if exists > > + rm -f $report_name > > + > > + # run powertop for $(iterations) in report generation mode > > + start_time=`date +%s` > > + sudo $bin_name --$report --time=$seconds --iteration=$iterations > > + end_time=`date +%s` > > + > > + # check if powertop run for desired time > > + let expected_time="$iterations * $seconds" > > + let actual_time="$end_time - $start_time" > > + > > + check "if powertop run for $expected_time sec" "test $actual_time > -ge $expected_time" > > + > > + # check if $(iterations) number of reports are generated > > + check "if reports are generated" "test $(ls $report_name | wc -l) > -eq $iterations" > > > ^^^^^^ Isn't 'ls -1' required for this to succeed? > > When ls is piped, output is listed one per line. Hence the above check is working. Good to add -1 to it. It will be fixed. > In general, I'd use mktemp -d and put the logs in a random temporary > directory each time, but I guess that won't work on Android? > > The powertop generates report files in current directory and doesn't provide option to pass directory name as an argument. > > + > > + return 0 > > +} > > + > > +run_powertop > > diff --git a/powertop/powertop_01.txt b/powertop/powertop_01.txt > > new file mode 100644 > > empty file? > > > index 0000000..0caa6f0 > > --- /dev/null > > +++ b/powertop/powertop_01.txt > > @@ -0,0 +1 @@ > > +run powertop for 2 iterations of 10sec each > contents of powertop_01.txt > > diff --git a/powertop/powertop_sanity.sh b/powertop/powertop_sanity.sh > > new file mode 100755 > > index 0000000..3ae3065 > > --- /dev/null > > +++ b/powertop/powertop_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_powertop() { > > + > > + local bin_name=powertop > > + > > + command -v $bin_name >/dev/null 2>&1 && return 1 || return 0 > > +} > > + > > +check_powertop > > diff --git a/powertop/powertop_sanity.txt b/powertop/powertop_sanity.txt > > new file mode 100644 > > empty file? > > > index 0000000..1a182ae > > --- /dev/null > > +++ b/powertop/powertop_sanity.txt > > @@ -0,0 +1 @@ > > +powertop is not available. Skipping all tests... > contents of powertop_sanity.txt > > -- > > 1.7.9.5 > > > > > > _______________________________________________ > > linaro-dev mailing list > > linaro-dev@lists.linaro.org > > http://lists.linaro.org/mailman/listinfo/linaro-dev > Thanks for the review.
diff --git a/Makefile b/Makefile index f85e5ac..1e73608 100644 --- a/Makefile +++ b/Makefile @@ -33,6 +33,7 @@ check: @(cd sched_mc; $(MAKE) check) # @(cd suspend; $(MAKE) check) # @(cd thermal; $(MAKE) check) +# @(cd powertop; $(MAKE) check) uncheck: @(cd cpufreq; $(MAKE) uncheck) diff --git a/powertop/Makefile b/powertop/Makefile new file mode 100644 index 0000000..412edb5 --- /dev/null +++ b/powertop/Makefile @@ -0,0 +1,25 @@ +# +# 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 +# + +include ../Test.mk diff --git a/powertop/powertop_01.sh b/powertop/powertop_01.sh new file mode 100755 index 0000000..3427899 --- /dev/null +++ b/powertop/powertop_01.sh @@ -0,0 +1,58 @@ +#!/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 +# + +# URL : https://wiki.linaro.org/WorkingGroups/PowerManagement/Doc/QA/Scripts#powertop_01 + +source ../include/functions.sh + +run_powertop() { + + local bin_name=powertop + local report=csv + local seconds=10 + local iterations=2 + local report_name=PowerTOP*.csv + + # remove old reports if exists + rm -f $report_name + + # run powertop for $(iterations) in report generation mode + start_time=`date +%s` + sudo $bin_name --$report --time=$seconds --iteration=$iterations + end_time=`date +%s` + + # check if powertop run for desired time + let expected_time="$iterations * $seconds" + let actual_time="$end_time - $start_time" + + check "if powertop run for $expected_time sec" "test $actual_time -ge $expected_time" + + # check if $(iterations) number of reports are generated + check "if reports are generated" "test $(ls $report_name | wc -l) -eq $iterations" + + return 0 +} + +run_powertop diff --git a/powertop/powertop_01.txt b/powertop/powertop_01.txt new file mode 100644 index 0000000..0caa6f0 --- /dev/null +++ b/powertop/powertop_01.txt @@ -0,0 +1 @@ +run powertop for 2 iterations of 10sec each diff --git a/powertop/powertop_sanity.sh b/powertop/powertop_sanity.sh new file mode 100755 index 0000000..3ae3065 --- /dev/null +++ b/powertop/powertop_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_powertop() { + + local bin_name=powertop + + command -v $bin_name >/dev/null 2>&1 && return 1 || return 0 +} + +check_powertop diff --git a/powertop/powertop_sanity.txt b/powertop/powertop_sanity.txt new file mode 100644 index 0000000..1a182ae --- /dev/null +++ b/powertop/powertop_sanity.txt @@ -0,0 +1 @@ +powertop is not available. Skipping all tests...
add powertop test cases into pm-qa. Run the powertop sanity test to check if tool is available. If yes, then run powertop in report generation mode and validate the output. Signed-off-by: Rajagopal Venkat <rajagopal.venkat@linaro.org> --- Makefile | 1 + powertop/Makefile | 25 ++++++++++++++++++ powertop/powertop_01.sh | 58 ++++++++++++++++++++++++++++++++++++++++++ powertop/powertop_01.txt | 1 + powertop/powertop_sanity.sh | 35 +++++++++++++++++++++++++ powertop/powertop_sanity.txt | 1 + 6 files changed, 121 insertions(+) create mode 100644 powertop/Makefile create mode 100755 powertop/powertop_01.sh create mode 100644 powertop/powertop_01.txt create mode 100755 powertop/powertop_sanity.sh create mode 100644 powertop/powertop_sanity.txt