From fee490f781ad135eb39ecbff44f67f6358e27361 Mon Sep 17 00:00:00 2001 From: Pavol Vaskovic Date: Tue, 25 Apr 2017 02:04:55 +0200 Subject: [PATCH] Fix SR-4590 compare_perf_tests.py fails when new benchmarks are added MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Also fix phantom “number” test result parsed from Totals. --- benchmark/scripts/compare_perf_tests.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/benchmark/scripts/compare_perf_tests.py b/benchmark/scripts/compare_perf_tests.py index 755d05498c58c..c8a72559462c9 100755 --- a/benchmark/scripts/compare_perf_tests.py +++ b/benchmark/scripts/compare_perf_tests.py @@ -128,7 +128,7 @@ def main(): RATIO_MAX = 1 + float(args.delta_threshold) for row in old_data: - if (len(row) > 7 and row[MIN].isdigit()): + if (len(row) > 8): # skip Totals row if row[TESTNAME] in old_results: if old_results[row[TESTNAME]] > int(row[MIN]): old_results[row[TESTNAME]] = int(row[MIN]) @@ -139,7 +139,7 @@ def main(): old_max_results[row[TESTNAME]] = int(row[MAX]) for row in new_data: - if (len(row) > 7 and row[MIN].isdigit()): + if (len(row) > 8): # skip Totals row if row[TESTNAME] in new_results: if int(new_results[row[TESTNAME]]) > int(row[MIN]): new_results[row[TESTNAME]] = int(row[MIN]) @@ -150,7 +150,12 @@ def main(): new_max_results[row[TESTNAME]] = int(row[MAX]) ratio_total = 0 - for key in new_results.keys(): + + new_tests = set(new_results.keys()) + old_tests = set(old_results.keys()) + comparable_tests = new_tests.intersection(old_tests) + + for key in comparable_tests: ratio = (old_results[key] + 0.001) / (new_results[key] + 0.001) ratio_list[key] = round(ratio, 2) ratio_total *= ratio