| import os, re |
| |
| from autotest_lib.client.bin import utils, test |
| |
| class dbench(test.test): |
| version = 3 |
| |
| # http://samba.org/ftp/tridge/dbench/dbench-3.04.tar.gz |
| def setup(self, tarball='dbench-3.04.tar.gz'): |
| tarball = utils.unmap_url(self.bindir, tarball, self.tmpdir) |
| utils.extract_tarball_to_dir(tarball, self.srcdir) |
| os.chdir(self.srcdir) |
| |
| utils.system('patch -p1 < ../dbench_startup.patch') |
| utils.system('patch -p1 < ../dbench_ldflags.patch') |
| utils.configure() |
| utils.make() |
| |
| |
| def initialize(self): |
| self.job.require_gcc() |
| self.results = [] |
| self.dbench = os.path.join(self.srcdir, 'dbench') |
| |
| |
| def run_once(self, dir='.', nprocs=None, seconds=600, args=''): |
| if not nprocs: |
| nprocs = self.job.cpu_count() |
| loadfile = os.path.join(self.srcdir, 'client.txt') |
| cmd = '%s %s %s -D %s -c %s -t %d' % (self.dbench, nprocs, args, |
| dir, loadfile, seconds) |
| self.results = utils.system_output(cmd, retain_output=True) |
| |
| |
| def postprocess_iteration(self): |
| pattern = re.compile(r"Throughput (.*?) MB/sec (.*?) procs") |
| (throughput, procs) = pattern.findall(self.results)[0] |
| self.write_perf_keyval({'throughput':throughput, 'procs':procs}) |