Try calmbench on bots
Bug: skia:
Change-Id: I869776e3d9d47b4a1a11089f729a0b17581eb9f7
Reviewed-on: https://skia-review.googlesource.com/57400
Reviewed-by: Eric Boren <borenet@google.com>
Commit-Queue: Yuqian Li <liyuqian@google.com>
diff --git a/tools/calmbench/calmbench.py b/tools/calmbench/calmbench.py
index 4d1319d..827bf4f 100644
--- a/tools/calmbench/calmbench.py
+++ b/tools/calmbench/calmbench.py
@@ -74,6 +74,9 @@
'(i.e., reuse previous baseline measurements)')
noinit_help = (
'whether to skip initial nanobench runs (default: %(default)s)')
+ branch_help = (
+ "the test branch to benchmark; if it's 'modified', we'll benchmark the "
+ "current modified code against 'git stash'.")
definitions = [
# argname, type, default value, help
@@ -91,7 +94,7 @@
for d in definitions:
parser.add_argument(d[0], type=d[1], default=d[2], help=d[3])
- parser.add_argument('branch', type=str, help="the test branch to benchmark")
+ parser.add_argument('branch', type=str, help=branch_help)
parser.add_argument('--no-compile', dest='no_compile', action="store_true",
help=no_compile_help)
parser.add_argument('--skip-base', dest='skipbase', action="store_true",
@@ -116,7 +119,6 @@
def compile_branch(args, branch):
print "Compiling branch %s" % args.branch
- os.chdir(args.skiadir)
commands = [
['git', 'checkout', branch],
['ninja', '-C', args.ninjadir, 'nanobench'],
@@ -126,9 +128,29 @@
subprocess.check_call(command, cwd=args.skiadir)
+def compile_modified(args):
+ print "Compiling modified code"
+ subprocess.check_call(
+ ['ninja', '-C', args.ninjadir, 'nanobench'], cwd=args.skiadir)
+ subprocess.check_call(
+ ['cp', args.ninjadir + '/nanobench', nano_path(args, args.branch)],
+ cwd=args.skiadir)
+
+ print "Compiling stashed code"
+ subprocess.check_call(['git', 'stash'], cwd=args.skiadir)
+ subprocess.check_call(
+ ['ninja', '-C', args.ninjadir, 'nanobench'], cwd=args.skiadir)
+ subprocess.check_call(
+ ['cp', args.ninjadir + '/nanobench', nano_path(args, args.baseline)],
+ cwd=args.skiadir)
+ subprocess.check_call(['git', 'stash', 'pop'], cwd=args.skiadir)
+
def compile_nanobench(args):
- compile_branch(args, args.branch)
- compile_branch(args, args.baseline)
+ if args.branch == 'modified':
+ compile_modified(args)
+ else:
+ compile_branch(args, args.branch)
+ compile_branch(args, args.baseline)
def main():