diff options
Diffstat (limited to 'prettier.py')
| -rw-r--r-- | prettier.py | 63 |
1 files changed, 24 insertions, 39 deletions
diff --git a/prettier.py b/prettier.py index ce8a839..1b8ad0a 100644 --- a/prettier.py +++ b/prettier.py @@ -11,29 +11,6 @@ def green(*strings): def red(*strings): return "".join([f"\033[31m{s}\033[0m" for s in strings]) - -def parse_args(): - parser = argparse.ArgumentParser( prog="ft_printf test", description="A ~quicker tester for ft_printf") - parser.add_argument("-v", "--verbose", - help="increase verbosity", action="store_true") - parser.add_argument("-q", "--quiet", - help="decrease vebosity", action="store_true") - parser.add_argument("-l", "--no-log", - help="disable result log", action="store_true") - parser.add_argument("-c", "--no-clear", help="disable terminal clear before output") - parser.add_argument("-i", "--interactive", help="print fail as them come", - action="store_true") - parser.add_argument("-f", "--output-file", help="output file name") - return vars(parser.parse_args(sys.argv[1:])) - - -def print_log_ko(ko, options): - print(f"- [{red(ko['type'])}] ft_printf({ko['args']})") - if options["verbose"]: - print(" expected: ", ko["expected"]) - print(" actual: ", ko["actual"]) - print() - def create_logs_entry(logs, key): logs[key] = {} logs[key]["ok_counter"] = 0 @@ -50,28 +27,36 @@ def parse(): print("\n\n", line[4:], ": ", sep="", end="") create_logs_entry(logs, line[4:]) logs[line[4:]]["ok_counter"] += 1 - if (logs[line[4:]]["ok_counter"] + logs[line[4:]]["ko_counter"]) % 10 == 0: + if (logs[line[4:]]["ok_counter"] + logs[line[4:]]["ko_counter"]) % 15 == 0: print("\n", ''.join([" " for _ in range(1 + len(line[4:]))]), end="") print(green("[OK] "), end="") continue - m = re.search("^KO: \[(SEGFAULT|COMPARE)\]: (.*): expected: (.*) got: (.*)$", line) - if m is None: - print(line) - print("PARSING ERROR") - continue - l = logs.get(m.group(2)) + if line.find("SEGFAULT") != -1: + name = line[4:] + else: + m = re.search("^KO: \[COMPARE\]: (.*): expected: (.*) got: (.*) (with: .*)?$", line) + if m is None: + print(line) + print("PARSING ERROR") + continue + name = m.group(1) + + l = logs.get(name) if l is None: - print("\n") - create_logs_entry(logs, m.group(2)) + create_logs_entry(logs, name) + print("\n\n", name, ": ", sep="", end="") + l = logs.get(name) l["ko_counter"] += 1 l["ko_info"].append({ - "type": m.group(1), - "expected": m.group(3), - "actual": m.group(4), + "type": "COMPARE", + "expected": m.group(2), + "actual": m.group(3), + "with": m.group(4)[6:] }) - if (l["ok_counter"] + l["ko_counter"]) % 10 == 0: - print("\n", ''.join([" " for _ in range(1 + len(m.group(2)))]), end="") + if (l["ok_counter"] + l["ko_counter"]) % 15 == 0: + print("\n", ''.join([" " for _ in range(1 + len(name))]), end="") print(red("[KO] "), end="") + sys.stdout.flush() return logs if __name__ == "__main__": @@ -81,6 +66,6 @@ if __name__ == "__main__": for k, v in logs.items(): for e in v["ko_info"]: if e['type'] == "SEGFAULT": - print(f"{k} : {red(SEGFAULT)}") + print(f"{k} : {red('SEGFAULT')}") elif e['type'] == "COMPARE": - print(f"{k}:\n {green('expected: ', e['expected'])}\n {red('actual: ', e['actual'])}") + print(f"{k} with {e['with']}:\n {green('expected: ', e['expected'])}\n {red('actual: ', e['actual'])}") |
