X-Git-Url: https://gerrit.fd.io/r/gitweb?p=csit.git;a=blobdiff_plain;f=resources%2Ftools%2Fpresentation%2Fgenerator_tables.py;h=20779dde25f5e2bbde724482e320e07adcef6150;hp=f04495c4a1dd18741527da8fbd0baa812f158c5b;hb=d75974b805248dd484876b7e196fdc7475e5999b;hpb=73c71f744a239090d8de45f7f8a72bcda0a7eed0 diff --git a/resources/tools/presentation/generator_tables.py b/resources/tools/presentation/generator_tables.py index f04495c4a1..20779dde25 100644 --- a/resources/tools/presentation/generator_tables.py +++ b/resources/tools/presentation/generator_tables.py @@ -210,9 +210,9 @@ def table_performance_comparison(table, input_data): header = ["Test case", ] if table["include-tests"] == "MRR": - hdr_param = "Receive Rate" + hdr_param = "Rec Rate" else: - hdr_param = "Throughput" + hdr_param = "Thput" history = table.get("history", None) if history: @@ -235,6 +235,7 @@ def table_performance_comparison(table, input_data): # Prepare data to the table: tbl_dict = dict() for job, builds in table["reference"]["data"].items(): + topo = "2n-skx" if "2n-skx" in job else "" for build in builds: for tst_name, tst_data in data[job][str(build)].iteritems(): tst_name_mod = tst_name.replace("-ndrpdrdisc", "").\ @@ -296,6 +297,20 @@ def table_performance_comparison(table, input_data): replace("4t4c", "4c").replace("8t4c", "4c") if "across topologies" in table["title"].lower(): tst_name_mod = tst_name_mod.replace("2n1l-", "") + 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])) + if "across testbeds" in table["title"].lower() or \ + "across topologies" in table["title"].lower(): + name = name.\ + replace("1t1c", "1c").replace("2t1c", "1c").\ + replace("2t2c", "2c").replace("4t2c", "2c").\ + replace("4t4c", "4c").replace("8t4c", "4c") + tbl_dict[tst_name_mod] = {"name": name, + "ref-data": list(), + "cmp-data": list()} try: # TODO: Re-work when NDRPDRDISC tests are not used if table["include-tests"] == "MRR": @@ -317,10 +332,8 @@ def table_performance_comparison(table, input_data): tst_data["throughput"]["NDR"]["LOWER"]) else: continue - except KeyError: + except (KeyError, TypeError): pass - except TypeError: - tbl_dict.pop(tst_name_mod, None) if history: for item in history: for job, builds in item["data"].items(): @@ -373,6 +386,7 @@ def table_performance_comparison(table, input_data): pass tbl_lst = list() + footnote = False for tst_name in tbl_dict.keys(): item = [tbl_dict[tst_name]["name"], ] if history: @@ -382,24 +396,31 @@ def table_performance_comparison(table, input_data): item.append(round(mean(hist_data) / 1000000, 2)) item.append(round(stdev(hist_data) / 1000000, 2)) else: - item.extend([None, None]) + item.extend(["Not tested", "Not tested"]) else: - item.extend([None, None]) + item.extend(["Not tested", "Not tested"]) 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)) else: - item.extend([None, None]) + item.extend(["Not tested", "Not tested"]) 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)) else: - item.extend([None, None]) - if item[-4] is not None and item[-2] is not None and item[-4] != 0: + item.extend(["Not tested", "Not tested"]) + if item[-2] == "Not tested": + pass + elif item[-4] == "Not tested": + item.append("New in CSIT-1908") + elif topo == "2n-skx" and "dot1q" in tbl_dict[tst_name]["name"]: + item.append("See footnote [1]") + footnote = True + elif item[-4] != 0: item.append(int(relative_change(float(item[-4]), float(item[-2])))) - if len(item) == len(header): + if (len(item) == len(header)) and (item[-3] != "Not tested"): tbl_lst.append(item) # Sort the table according to the relative change @@ -412,7 +433,22 @@ def table_performance_comparison(table, input_data): for test in tbl_lst: file_handler.write(",".join([str(item) for item in test]) + "\n") - convert_csv_to_pretty_txt(csv_file, "{0}.txt".format(table["output-file"])) + txt_file_name = "{0}.txt".format(table["output-file"]) + convert_csv_to_pretty_txt(csv_file, txt_file_name) + + if footnote: + with open(txt_file_name, 'a') as txt_file: + txt_file.writelines([ + "\nFootnotes:\n", + "[1] CSIT-1908 changed test methodology of dot1q tests in " + "2n-skx testbeds, dot1q encapsulation is now used on both " + "links of SUT.\n", + " Previously dot1q was used only on a single link with the " + "other link carrying untagged Ethernet frames. This change " + "results\n", + " in slightly lower throughput in CSIT-1908 for these " + "tests. See release notes." + ]) def table_performance_comparison_nic(table, input_data): @@ -438,9 +474,9 @@ def table_performance_comparison_nic(table, input_data): header = ["Test case", ] if table["include-tests"] == "MRR": - hdr_param = "Receive Rate" + hdr_param = "Rec Rate" else: - hdr_param = "Throughput" + hdr_param = "Thput" history = table.get("history", None) if history: @@ -463,6 +499,7 @@ def table_performance_comparison_nic(table, input_data): # Prepare data to the table: tbl_dict = dict() for job, builds in table["reference"]["data"].items(): + topo = "2n-skx" if "2n-skx" in job else "" for build in builds: for tst_name, tst_data in data[job][str(build)].iteritems(): if table["reference"]["nic"] not in tst_data["tags"]: @@ -528,6 +565,18 @@ def table_performance_comparison_nic(table, input_data): tst_name_mod = re.sub(REGEX_NIC, "", tst_name_mod) if "across topologies" in table["title"].lower(): tst_name_mod = tst_name_mod.replace("2n1l-", "") + if tbl_dict.get(tst_name_mod, None) is None: + name = "{0}".format("-".join(tst_data["name"]. + split("-")[:-1])) + if "across testbeds" in table["title"].lower() or \ + "across topologies" in table["title"].lower(): + name = name.\ + replace("1t1c", "1c").replace("2t1c", "1c").\ + replace("2t2c", "2c").replace("4t2c", "2c").\ + replace("4t4c", "4c").replace("8t4c", "4c") + tbl_dict[tst_name_mod] = {"name": name, + "ref-data": list(), + "cmp-data": list()} try: # TODO: Re-work when NDRPDRDISC tests are not used if table["include-tests"] == "MRR": @@ -549,10 +598,9 @@ def table_performance_comparison_nic(table, input_data): tst_data["throughput"]["NDR"]["LOWER"]) else: continue - except KeyError: + except (KeyError, TypeError): pass - except TypeError: - tbl_dict.pop(tst_name_mod, None) + if history: for item in history: for job, builds in item["data"].items(): @@ -608,6 +656,7 @@ def table_performance_comparison_nic(table, input_data): pass tbl_lst = list() + footnote = False for tst_name in tbl_dict.keys(): item = [tbl_dict[tst_name]["name"], ] if history: @@ -617,24 +666,31 @@ def table_performance_comparison_nic(table, input_data): item.append(round(mean(hist_data) / 1000000, 2)) item.append(round(stdev(hist_data) / 1000000, 2)) else: - item.extend([None, None]) + item.extend(["Not tested", "Not tested"]) else: - item.extend([None, None]) + item.extend(["Not tested", "Not tested"]) 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)) else: - item.extend([None, None]) + item.extend(["Not tested", "Not tested"]) 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)) else: - item.extend([None, None]) - if item[-4] is not None and item[-2] is not None and item[-4] != 0: + item.extend(["Not tested", "Not tested"]) + if item[-2] == "Not tested": + pass + elif item[-4] == "Not tested": + item.append("New in CSIT-1908") + elif topo == "2n-skx" and "dot1q" in tbl_dict[tst_name]["name"]: + item.append("See footnote [1]") + footnote = True + elif item[-4] != 0: item.append(int(relative_change(float(item[-4]), float(item[-2])))) - if len(item) == len(header): + if (len(item) == len(header)) and (item[-3] != "Not tested"): tbl_lst.append(item) # Sort the table according to the relative change @@ -647,7 +703,22 @@ def table_performance_comparison_nic(table, input_data): for test in tbl_lst: file_handler.write(",".join([str(item) for item in test]) + "\n") - convert_csv_to_pretty_txt(csv_file, "{0}.txt".format(table["output-file"])) + txt_file_name = "{0}.txt".format(table["output-file"]) + convert_csv_to_pretty_txt(csv_file, txt_file_name) + + if footnote: + with open(txt_file_name, 'a') as txt_file: + txt_file.writelines([ + "\nFootnotes:\n", + "[1] CSIT-1908 changed test methodology of dot1q tests in " + "2n-skx testbeds, dot1q encapsulation is now used on both " + "links of SUT.\n", + " Previously dot1q was used only on a single link with the " + "other link carrying untagged Ethernet frames. This change " + "results\n", + " in slightly lower throughput in CSIT-1908 for these " + "tests. See release notes." + ]) def table_nics_comparison(table, input_data): @@ -673,9 +744,9 @@ def table_nics_comparison(table, input_data): header = ["Test case", ] if table["include-tests"] == "MRR": - hdr_param = "Receive Rate" + hdr_param = "Rec Rate" else: - hdr_param = "Throughput" + hdr_param = "Thput" header.extend( ["{0} {1} [Mpps]".format(table["reference"]["title"], hdr_param), @@ -782,9 +853,9 @@ def table_soak_vs_ndr(table, input_data): try: header = [ "Test case", - "{0} Throughput [Mpps]".format(table["reference"]["title"]), + "{0} Thput [Mpps]".format(table["reference"]["title"]), "{0} Stdev [Mpps]".format(table["reference"]["title"]), - "{0} Throughput [Mpps]".format(table["compare"]["title"]), + "{0} Thput [Mpps]".format(table["compare"]["title"]), "{0} Stdev [Mpps]".format(table["compare"]["title"]), "Delta [%]", "Stdev of delta [%]"] header_str = ",".join(header) + "\n"