[perfcompare] Add a placeholder "compare_perf" command for the recipe to invoke
This a placeholder entry point for the fuchsia_perfcompare.py recipe
to invoke. I will add the actual perf results comparison logic in a
later change.
Bug: IN-646
Test: tested via 'led' with recipe change
Change-Id: Ieb18a9a2f9c9121a8a16f8fd0089589cd8f94d3b
diff --git a/garnet/bin/perfcompare/perfcompare.py b/garnet/bin/perfcompare/perfcompare.py
index 9133eb8..71ff44d 100644
--- a/garnet/bin/perfcompare/perfcompare.py
+++ b/garnet/bin/perfcompare/perfcompare.py
@@ -8,25 +8,27 @@
import argparse
import json
+import os
import sys
+def ComparePerf(args):
+ # This code is just a placeholder to allow the infra recipe to be
+ # tested easily. It does not compare the performance test results yet.
+ # It just prints the filenames of the perf test result files.
+ for dir_path in [args.results_dir_before, args.results_dir_after]:
+ print '\n-- in directory %r:' % dir_path
+ for filename in sorted(os.listdir(dir_path)):
+ print filename
+
+
def TotalSize(snapshot_file):
with open(snapshot_file) as fh:
data = json.load(fh)
return sum(info['size'] for info in data['blobs'].itervalues())
-def Main(argv):
- parser = argparse.ArgumentParser()
- subparsers = parser.add_subparsers()
- parser_compare = subparsers.add_parser(
- 'compare_sizes',
- help='Compare file sizes specified by two system.snapshot files')
- parser_compare.add_argument('snapshot_before')
- parser_compare.add_argument('snapshot_after')
- args = parser.parse_args(argv)
-
+def CompareSizes(args):
filenames = [args.snapshot_before, args.snapshot_after]
sizes = [TotalSize(filename) for filename in filenames]
print 'Size before: %d bytes' % sizes[0]
@@ -36,5 +38,27 @@
print 'Factor of: %f' % (float(sizes[1]) / sizes[0])
+def Main(argv):
+ parser = argparse.ArgumentParser()
+ subparsers = parser.add_subparsers()
+
+ parser_compare_perf = subparsers.add_parser(
+ 'compare_perf',
+ help='Compare two sets of perf test results')
+ parser_compare_perf.add_argument('results_dir_before')
+ parser_compare_perf.add_argument('results_dir_after')
+ parser_compare_perf.set_defaults(func=ComparePerf)
+
+ parser_compare_sizes = subparsers.add_parser(
+ 'compare_sizes',
+ help='Compare file sizes specified by two system.snapshot files')
+ parser_compare_sizes.add_argument('snapshot_before')
+ parser_compare_sizes.add_argument('snapshot_after')
+ parser_compare_sizes.set_defaults(func=CompareSizes)
+
+ args = parser.parse_args(argv)
+ args.func(args)
+
+
if __name__ == '__main__':
Main(sys.argv[1:])