diff options
Diffstat (limited to 'generate_tests.py')
| -rw-r--r-- | generate_tests.py | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/generate_tests.py b/generate_tests.py new file mode 100644 index 0000000..32ee110 --- /dev/null +++ b/generate_tests.py @@ -0,0 +1,30 @@ +import re +import subprocess +from pathlib import Path + +test_files = sorted(Path("src").rglob("test_*.c")) + +lines: list[str] = [] + +for f in test_files: + lines.append(f'#include "{f}"') + +lines.append("") +lines.append(Path("base_test.c").read_text()) +lines.append("i32 main() {") + +for f in test_files: + result = subprocess.run(["rg", "i32 test_", str(f)], capture_output=True, text=True) + for match in re.finditer(r"test_[^(]+", result.stdout): + func = match.group().rstrip() + print(f"Found {func} in {f}") + lines.append(f" test({func});") + +lines.append(""" + printf("Success: %d, Failures: %d\\n", success, failures); + + return failures; +} +""") + +Path("test.c").write_text("\n".join(lines)) |
