Loading scripts/basop_check_for_changes_in_testcases.py +31 −15 Original line number Diff line number Diff line Loading @@ -53,6 +53,10 @@ OUTFILE_SCORES = "changes_{}.csv" PATTERN_ENC = r"... encoder command:\s*(.*)\s*... encoder stdout:" PATTERN_DEC = r"... decoder command:\s*(.*)\s*... decoder stdout:" PATTERN_EID = r"eid-xor command:\s*(.*)\s*" PATTERN_NETSIM = r"netsim command:\s*(.*)\s*" PATTERNS = [PATTERN_ENC, PATTERN_DEC, PATTERN_EID, PATTERN_NETSIM] def main(args): Loading Loading @@ -180,35 +184,47 @@ def get_command_lines_for_testcases( if e.tag == "testcase" and e.attrib["name"] in testcases.values ] cmdlines = {"testcase": [], "enc_cmd": [], "dec_cmd": []} cmdlines = { "testcase": [], "enc_cmd": [], "dec_cmd": [], "eid-xor_cmd": [], "netsim_cmd": [], } for elem in testcase_elems: testcase_name = elem.attrib["name"] enc_cmd = "" dec_cmd = "" eid_cmd = "" netsim_cmd = "" if (system_out := elem.find("system-out")) is not None: enc_cmd, dec_cmd = extract_cmdlines(system_out.text, cwd) ( enc_cmd, dec_cmd, eid_cmd, netsim_cmd, ) = extract_cmdlines(system_out.text, cwd) cmdlines["testcase"].append(testcase_name) cmdlines["enc_cmd"].append(enc_cmd) cmdlines["dec_cmd"].append(dec_cmd) cmdlines["eid-xor_cmd"].append(eid_cmd) cmdlines["netsim_cmd"].append(netsim_cmd) return pd.DataFrame(cmdlines) def extract_cmdlines(text: str, cwd: pathlib.Path) -> Tuple[str, str]: enc_cmdline = "<not found>" dec_cmdline = "<not found>" match_enc = re.search(PATTERN_ENC, text) match_dec = re.search(PATTERN_DEC, text) if match_enc is not None and match_dec is not None: enc_cmdline = match_enc.group(1) dec_cmdline = match_dec.group(1) enc_cmdline = postprocess_cmdline(enc_cmdline, cwd) dec_cmdline = postprocess_cmdline(dec_cmdline, cwd) def extract_cmdlines(text: str, cwd: pathlib.Path) -> list[str]: cmdlines = [] for p in PATTERNS: m = re.search(p, text) if m is not None: cmdline = postprocess_cmdline(m.group(1), cwd) cmdlines.append(cmdline) else: cmdlines.append("") return enc_cmdline, dec_cmdline return cmdlines def postprocess_cmdline(cmdline: str, cwd: pathlib.Path) -> str: Loading Loading
scripts/basop_check_for_changes_in_testcases.py +31 −15 Original line number Diff line number Diff line Loading @@ -53,6 +53,10 @@ OUTFILE_SCORES = "changes_{}.csv" PATTERN_ENC = r"... encoder command:\s*(.*)\s*... encoder stdout:" PATTERN_DEC = r"... decoder command:\s*(.*)\s*... decoder stdout:" PATTERN_EID = r"eid-xor command:\s*(.*)\s*" PATTERN_NETSIM = r"netsim command:\s*(.*)\s*" PATTERNS = [PATTERN_ENC, PATTERN_DEC, PATTERN_EID, PATTERN_NETSIM] def main(args): Loading Loading @@ -180,35 +184,47 @@ def get_command_lines_for_testcases( if e.tag == "testcase" and e.attrib["name"] in testcases.values ] cmdlines = {"testcase": [], "enc_cmd": [], "dec_cmd": []} cmdlines = { "testcase": [], "enc_cmd": [], "dec_cmd": [], "eid-xor_cmd": [], "netsim_cmd": [], } for elem in testcase_elems: testcase_name = elem.attrib["name"] enc_cmd = "" dec_cmd = "" eid_cmd = "" netsim_cmd = "" if (system_out := elem.find("system-out")) is not None: enc_cmd, dec_cmd = extract_cmdlines(system_out.text, cwd) ( enc_cmd, dec_cmd, eid_cmd, netsim_cmd, ) = extract_cmdlines(system_out.text, cwd) cmdlines["testcase"].append(testcase_name) cmdlines["enc_cmd"].append(enc_cmd) cmdlines["dec_cmd"].append(dec_cmd) cmdlines["eid-xor_cmd"].append(eid_cmd) cmdlines["netsim_cmd"].append(netsim_cmd) return pd.DataFrame(cmdlines) def extract_cmdlines(text: str, cwd: pathlib.Path) -> Tuple[str, str]: enc_cmdline = "<not found>" dec_cmdline = "<not found>" match_enc = re.search(PATTERN_ENC, text) match_dec = re.search(PATTERN_DEC, text) if match_enc is not None and match_dec is not None: enc_cmdline = match_enc.group(1) dec_cmdline = match_dec.group(1) enc_cmdline = postprocess_cmdline(enc_cmdline, cwd) dec_cmdline = postprocess_cmdline(dec_cmdline, cwd) def extract_cmdlines(text: str, cwd: pathlib.Path) -> list[str]: cmdlines = [] for p in PATTERNS: m = re.search(p, text) if m is not None: cmdline = postprocess_cmdline(m.group(1), cwd) cmdlines.append(cmdline) else: cmdlines.append("") return enc_cmdline, dec_cmdline return cmdlines def postprocess_cmdline(cmdline: str, cwd: pathlib.Path) -> str: Loading