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