X-Git-Url: https://gerrit.fd.io/r/gitweb?p=csit.git;a=blobdiff_plain;f=resources%2Ftools%2Fpresentation%2Fgenerator_tables.py;h=3ab887070f063a96774f18c5a0fbf7fbdcdc48b2;hp=1a15605618d74bcd24c82d40d377479e441cacd2;hb=95a6f931ea80e2f6cb68a04cccb7ff1016902765;hpb=db2fcb13bab0085abaaa704e87e345d43734ac86 diff --git a/resources/tools/presentation/generator_tables.py b/resources/tools/presentation/generator_tables.py index 1a15605618..3ab887070f 100644 --- a/resources/tools/presentation/generator_tables.py +++ b/resources/tools/presentation/generator_tables.py @@ -27,7 +27,7 @@ from datetime import datetime as dt from datetime import timedelta from utils import mean, stdev, relative_change, classify_anomalies, \ - convert_csv_to_pretty_txt + convert_csv_to_pretty_txt, relative_change_stdev REGEX_NIC = re.compile(r'\d*ge\dp\d\D*\d*') @@ -551,7 +551,7 @@ def table_soak_vs_ndr(table, input_data): "{0} Stdev [Mpps]".format(table["reference"]["title"]), "{0} Throughput [Mpps]".format(table["compare"]["title"]), "{0} Stdev [Mpps]".format(table["compare"]["title"]), - "Delta [%]"] + "Delta [%]", "Stdev of delta [%]"] header_str = ",".join(header) + "\n" except (AttributeError, KeyError) as err: logging.error("The model is invalid, missing parameter: {0}". @@ -566,8 +566,12 @@ def table_soak_vs_ndr(table, input_data): if tst_data["type"] == "SOAK": tst_name_mod = tst_name.replace("-soak", "") if tbl_dict.get(tst_name_mod, None) is None: + groups = re.search(REGEX_NIC, tst_data["parent"]) + nic = groups.group(0) if groups else "" + name = "{0}-{1}".format(nic, "-".join(tst_data["name"]. + split("-")[:-1])) tbl_dict[tst_name_mod] = { - "name": tst_name_mod, + "name": name, "ref-data": list(), "cmp-data": list() } @@ -604,21 +608,31 @@ def table_soak_vs_ndr(table, input_data): tbl_lst = list() for tst_name in tbl_dict.keys(): item = [tbl_dict[tst_name]["name"], ] - data_t = tbl_dict[tst_name]["ref-data"] - if data_t: - item.append(round(mean(data_t) / 1000000, 2)) - item.append(round(stdev(data_t) / 1000000, 2)) + data_r = tbl_dict[tst_name]["ref-data"] + if data_r: + data_r_mean = mean(data_r) + item.append(round(data_r_mean / 1000000, 2)) + data_r_stdev = stdev(data_r) + item.append(round(data_r_stdev / 1000000, 2)) else: + data_r_mean = None + data_r_stdev = None item.extend([None, None]) - data_t = tbl_dict[tst_name]["cmp-data"] - if data_t: - item.append(round(mean(data_t) / 1000000, 2)) - item.append(round(stdev(data_t) / 1000000, 2)) + data_c = tbl_dict[tst_name]["cmp-data"] + if data_c: + data_c_mean = mean(data_c) + item.append(round(data_c_mean / 1000000, 2)) + data_c_stdev = stdev(data_c) + item.append(round(data_c_stdev / 1000000, 2)) else: + data_c_mean = None + data_c_stdev = None item.extend([None, None]) - if item[-4] is not None and item[-2] is not None and item[-4] != 0: - item.append(int(relative_change(float(item[-4]), float(item[-2])))) - if len(item) == len(header): + if data_r_mean and data_c_mean: + delta, d_stdev = relative_change_stdev( + data_r_mean, data_c_mean, data_r_stdev, data_c_stdev) + item.append(round(delta, 2)) + item.append(round(d_stdev, 2)) tbl_lst.append(item) # Sort the table according to the relative change @@ -668,7 +682,7 @@ def table_performance_trending_dashboard(table, input_data): for job, builds in table["data"].items(): for build in builds: for tst_name, tst_data in data[job][str(build)].iteritems(): - if tst_name.lower() in table["ignore-list"]: + if tst_name.lower() in table.get("ignore-list", list()): continue if tbl_dict.get(tst_name, None) is None: groups = re.search(REGEX_NIC, tst_data["parent"]) @@ -804,6 +818,10 @@ def _generate_url(base, testbed, test_name): file_name = "vm_vhost_ip4" feature = "-base" + elif "ipsecbasetnlsw" in test_name: + file_name = "ipsecsw" + feature = "-base-scale" + elif "ipsec" in test_name: file_name = "ipsec" feature = "-base-scale" @@ -1056,7 +1074,7 @@ def table_failed_tests(table, input_data): for build in builds: build = str(build) for tst_name, tst_data in data[job][build].iteritems(): - if tst_name.lower() in table["ignore-list"]: + if tst_name.lower() in table.get("ignore-list", list()): continue if tbl_dict.get(tst_name, None) is None: groups = re.search(REGEX_NIC, tst_data["parent"])