aboutsummaryrefslogtreecommitdiff
path: root/prettier.py
diff options
context:
space:
mode:
Diffstat (limited to 'prettier.py')
-rw-r--r--prettier.py63
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'])}")