| OLD | NEW | 
|---|
| 1 import time, os, signal, re | 1 import time, os, signal, re | 
| 2 from autotest_lib.client.bin import test, utils | 2 from autotest_lib.client.bin import test, utils | 
| 3 | 3 | 
| 4 | 4 | 
| 5 class tbench(test.test): | 5 class tbench(test.test): | 
| 6     version = 2 | 6     version = 2 | 
| 7 | 7 | 
| 8     def initialize(self): | 8     def initialize(self): | 
| 9         self.job.require_gcc() | 9         self.job.require_gcc() | 
| 10 | 10 | 
| 11 | 11 | 
| 12     # http://samba.org/ftp/tridge/dbench/dbench-3.04.tar.gz | 12     # http://samba.org/ftp/tridge/dbench/dbench-3.04.tar.gz | 
| 13     def setup(self, tarball = 'dbench-3.04.tar.gz'): | 13     def setup(self, tarball = 'dbench-3.04.tar.gz'): | 
| 14         tarball = utils.unmap_url(self.bindir, tarball, self.tmpdir) | 14         tarball = utils.unmap_url(self.bindir, tarball, self.tmpdir) | 
| 15         utils.extract_tarball_to_dir(tarball, self.srcdir) | 15         utils.extract_tarball_to_dir(tarball, self.srcdir) | 
| 16         os.chdir(self.srcdir) | 16         os.chdir(self.srcdir) | 
| 17 | 17 | 
| 18         utils.system('./configure') | 18         utils.configure() | 
| 19         utils.system('make') | 19         utils.make() | 
| 20 | 20 | 
| 21 | 21 | 
| 22     def run_once(self, nprocs = None, args = ''): | 22     def run_once(self, nprocs = None, args = ''): | 
| 23         # only supports combined server+client model at the moment | 23         # only supports combined server+client model at the moment | 
| 24         # should support separate I suppose, but nobody uses it | 24         # should support separate I suppose, but nobody uses it | 
| 25         if not nprocs: | 25         if not nprocs: | 
| 26             nprocs = self.job.cpu_count() | 26             nprocs = self.job.cpu_count() | 
| 27         args = args + ' %s' % nprocs | 27         args = args + ' %s' % nprocs | 
| 28 | 28 | 
| 29         pid = os.fork() | 29         pid = os.fork() | 
| 30         if pid:                         # parent | 30         if pid:                         # parent | 
| 31             time.sleep(1) | 31             time.sleep(1) | 
| 32             client = self.srcdir + '/client.txt' | 32             client = self.srcdir + '/client.txt' | 
| 33             args = '-c ' + client + ' ' + '%s' % args | 33             args = '-c ' + client + ' ' + '%s' % args | 
| 34             cmd = os.path.join(self.srcdir, "tbench") + " " + args | 34             cmd = os.path.join(self.srcdir, "tbench") + " " + args | 
| 35             self.results = utils.system_output(cmd, retain_output=True) | 35             self.results = utils.system_output(cmd, retain_output=True) | 
| 36             os.kill(pid, signal.SIGTERM)    # clean up the server | 36             os.kill(pid, signal.SIGTERM)    # clean up the server | 
| 37         else:                           # child | 37         else:                           # child | 
| 38             server = self.srcdir + '/tbench_srv' | 38             server = self.srcdir + '/tbench_srv' | 
| 39             os.execlp(server, server) | 39             os.execlp(server, server) | 
| 40 | 40 | 
| 41 | 41 | 
| 42     def postprocess_iteration(self): | 42     def postprocess_iteration(self): | 
| 43         pattern = re.compile(r"Throughput (.*?) MB/sec (.*?) procs") | 43         pattern = re.compile(r"Throughput (.*?) MB/sec (.*?) procs") | 
| 44         (throughput, procs) = pattern.findall(self.results)[0] | 44         (throughput, procs) = pattern.findall(self.results)[0] | 
| 45         self.write_perf_keyval({'throughput':throughput, 'procs':procs}) | 45         self.write_perf_keyval({'throughput':throughput, 'procs':procs}) | 
| OLD | NEW | 
|---|