Added ddtest benchmark.
BUG=12445
TEST=ran  control.kernel_fs_performance on cr48

Change-Id: I70ba3f386e5415c2fa92477daea4dcd782b7084c

Review URL: http://codereview.chromium.org/6657034
diff --git a/client/tests/ddtest/ddtest.py b/client/tests/ddtest/ddtest.py
new file mode 100755
index 0000000..41a48e2
--- /dev/null
+++ b/client/tests/ddtest/ddtest.py
@@ -0,0 +1,42 @@
+
+# Copyright (c) 2010 The Chromium OS Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+import os, shutil, re
+from autotest_lib.client.bin import utils, test
+
+class ddtest(test.test):
+    version = 2
+
+
+    def setup(self, tarball='ddtest.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('make build')
+
+
+    def initialize(self):
+        self.job.require_gcc()
+        self.results = []
+        self.job.drop_caches_between_iterations = True
+
+
+    def run_once(self, dir=None, blocksize=1024, blocknum=262144, threads=20):
+        if not dir:
+           dir = os.path.join(self.srcdir, 'rdir')
+           shutil.rmtree(dir, True)
+           os.mkdir(dir)
+        args = '-D ' + dir
+        args += ' -b %d' % blocksize
+        args += ' -n %d' % blocknum
+        args += ' -t %d' % threads
+        self.results.append(utils.system_output(os.path.join(self.srcdir,
+                            'ddtest') + ' ' + args))
+
+
+    def postprocess(self):
+        pattern = re.compile(r"throughput is (.*?) MB/sec")
+        for throughput in pattern.findall("\n".join(self.results)):
+            self.write_perf_keyval({'throughput':throughput})