(args)
| 398 | |
| 399 | |
| 400 | def Render(args): |
| 401 | benchmark_suites = {} |
| 402 | run_names = OrderedDict() |
| 403 | |
| 404 | for json_file_list in args.json_file_list: |
| 405 | run_name = json_file_list[0] |
| 406 | if run_name.endswith(".json"): |
| 407 | # The first item in the list is also a file name |
| 408 | run_name = os.path.splitext(run_name)[0] |
| 409 | filenames = json_file_list |
| 410 | else: |
| 411 | filenames = json_file_list[1:] |
| 412 | |
| 413 | for filename in filenames: |
| 414 | print ("Processing result set \"%s\", file: %s" % (run_name, filename)) |
| 415 | with open(filename) as json_data: |
| 416 | data = json.load(json_data) |
| 417 | |
| 418 | run_names[run_name] = 0 |
| 419 | |
| 420 | for error in data["errors"]: |
| 421 | print("Error:", error) |
| 422 | |
| 423 | for trace in data["traces"]: |
| 424 | suite_name = trace["graphs"][0] |
| 425 | benchmark_name = "/".join(trace["graphs"][1:]) |
| 426 | |
| 427 | benchmark_suite_object = benchmark_suites.get(suite_name) |
| 428 | if benchmark_suite_object is None: |
| 429 | benchmark_suite_object = BenchmarkSuite(suite_name) |
| 430 | benchmark_suites[suite_name] = benchmark_suite_object |
| 431 | |
| 432 | benchmark_object = benchmark_suite_object.getBenchmark(benchmark_name) |
| 433 | benchmark_object.appendResult(run_name, trace); |
| 434 | |
| 435 | |
| 436 | renderer = ResultTableRenderer(args.output) |
| 437 | renderer.PrintHeader() |
| 438 | |
| 439 | title = args.title or "Benchmark results" |
| 440 | renderer.StartTOC(title) |
| 441 | for suite_name, benchmark_suite_object in sorted(benchmark_suites.iteritems()): |
| 442 | renderer.PrintBenchmarkLink(suite_name) |
| 443 | renderer.FinishTOC() |
| 444 | |
| 445 | for suite_name, benchmark_suite_object in sorted(benchmark_suites.iteritems()): |
| 446 | renderer.StartSuite(suite_name, run_names) |
| 447 | for benchmark_name in benchmark_suite_object.SortedTestKeys(): |
| 448 | benchmark_object = benchmark_suite_object.getBenchmark(benchmark_name) |
| 449 | # print suite_name, benchmark_object.name() |
| 450 | |
| 451 | renderer.StartBenchmark(benchmark_name) |
| 452 | main_run = None |
| 453 | main_result = None |
| 454 | for run_name in run_names: |
| 455 | result = benchmark_object.getResult(run_name) |
| 456 | renderer.PrintResult(result) |
| 457 | if main_run is None: |
no test coverage detected
searching dependent graphs…