On Fri, 2011-01-14 at 19:25 -0800, Dale Curtis wrote: > Apologies, I sent the wrong patch earlier. v2 below.
Hi Dale, thanks for your patch. Some comments below: > Signed-off-by: Dale Curtis <[email protected]> > --- > client/tests/unixbench5/Makefile.patch | 11 ++ > client/tests/unixbench5/control | 26 +++ > client/tests/unixbench5/unixbench-5.1.3.tgz | Bin 0 -> 140695 bytes > client/tests/unixbench5/unixbench5.py | 226 > +++++++++++++++++++++++++++ > 4 files changed, 263 insertions(+), 0 deletions(-) > create mode 100644 client/tests/unixbench5/Makefile.patch > create mode 100644 client/tests/unixbench5/control > create mode 100644 client/tests/unixbench5/unixbench-5.1.3.tgz > create mode 100644 client/tests/unixbench5/unixbench5.py > > diff --git a/client/tests/unixbench5/Makefile.patch > b/client/tests/unixbench5/Makefile.patch > new file mode 100644 > index 0000000..f38438c > --- /dev/null > +++ b/client/tests/unixbench5/Makefile.patch > @@ -0,0 +1,11 @@ > +--- Makefile.bak 2011-01-14 10:45:12.000000000 -0800 > ++++ Makefile 2011-01-14 10:46:54.000000000 -0800 > +@@ -52,7 +52,7 @@ > + # COMPILER CONFIGURATION: Set "CC" to the name of the compiler to use > + # to build the binary benchmarks. You should also set "$cCompiler" in the > + # Run script to the name of the compiler you want to test. > +-CC=gcc > ++CC?=gcc > + > + # OPTIMISATION SETTINGS: > + > diff --git a/client/tests/unixbench5/control b/client/tests/unixbench5/control > new file mode 100644 > index 0000000..862a521 > --- /dev/null > +++ b/client/tests/unixbench5/control > @@ -0,0 +1,26 @@ > +NAME = 'Unix Bench 5' > +AUTHOR = '[email protected]' > +TIME = 'MEDIUM' > +PURPOSE = 'Measure system level performance.' > +CRITERIA = 'This test is a benchmark.' > +TEST_CLASS = 'Kernel' > +TEST_CATEGORY = 'Benchmark' > +TEST_TYPE = 'client' > +DOC = """ > +This test measure system wide performance by running the following tests: > + - Dhrystone - focuses on string handling. > + - Whetstone - measure floating point operations. > + - Execl Throughput - measure the number of execl calls per second. > + - File Copy > + - Pipe throughput > + - Pipe-based context switching > + - Process creation - number of times a process can fork and reap > + - Shell Scripts - number of times a process can start and reap a script > + - System Call Overhead - estimates the cost of entering and leaving the > + kernel. > + > +For more information visit: > +http://code.google.com/p/byte-unixbench/ > +""" > + About the tarball, you don't need to include this particular one because I can download it from the google code page. Also, git seemed unable to reconstruct the tarball from the binary diff somehow. > > diff --git a/client/tests/unixbench5/unixbench5.py > b/client/tests/unixbench5/unixbench5.py > new file mode 100644 > index 0000000..95f1057 > --- /dev/null > +++ b/client/tests/unixbench5/unixbench5.py > @@ -0,0 +1,226 @@ > +import os, re > +from autotest_lib.client.bin import test, utils > +from autotest_lib.client.common_lib import error > + > + > +class unixbench5(test.test): > + version = 1 > + > + def initialize(self): > + self.job.require_gcc() > + self.err = None ^ Isn't it better to initialize self.err with an empty string? This way you can simplify the code that looks for errors an appends them to self.err. > + > + > + # > http://code.google.com/p/byte-unixbench/downloads/detail?name=unixbench-5.1.3.tgz&can=2&q= ^ http://byte-unixbench.googlecode.com/files/unixbench-5.1.3.tgz > + def setup(self, tarball = 'unixbench-5.1.3.tgz'): > + tarball = utils.unmap_url(self.bindir, tarball, self.tmpdir) > + utils.extract_tarball_to_dir(tarball, self.srcdir) > + os.chdir(self.srcdir) > + > + utils.system('patch -p0 < ../Makefile.patch') > + utils.make() > + > + > + def run_once(self, args=''): > + vars = 'UB_TMPDIR="%s" UB_RESULTDIR="%s"' % (self.tmpdir, > + self.resultsdir) > + os.chdir(self.srcdir) > + self.report_data = utils.system_output(vars + ' ./Run ' + args) ^ People might want to use the raw output produced by the benchmark to run their own analysis/postprocess scripts, so I'd write a raw_output_[iteration] file on the results dir like this: self.results_path = os.path.join(self.resultsdir, 'raw_output_%s' % self.iteration) utils.open_write_close(self.results_path, self.report_data) I thought we could also pass retain_output=True to the utils.system_output() call, because that'd allow the results to be written to the test DEBUG logs, but on a second thought, better to make the test less space intensive. If you think it's OK to change the URL and write the raw results to a file, please let me know, I can make the changes and commit unixbench5. Cheers, Lucas _______________________________________________ Autotest mailing list [email protected] http://test.kernel.org/cgi-bin/mailman/listinfo/autotest
