diff options
Diffstat (limited to 'Tools/gen_tests_for_posix_pxds.py')
-rw-r--r-- | Tools/gen_tests_for_posix_pxds.py | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/Tools/gen_tests_for_posix_pxds.py b/Tools/gen_tests_for_posix_pxds.py new file mode 100644 index 000000000..c92c49a6a --- /dev/null +++ b/Tools/gen_tests_for_posix_pxds.py @@ -0,0 +1,41 @@ +#!/usr/bin/python3 + +from pathlib import Path + +PROJECT_ROOT = Path(__file__) / "../.." +POSIX_PXDS_DIR = PROJECT_ROOT / "Cython/Includes/posix" +TEST_PATH = PROJECT_ROOT / "tests/compile/posix_pxds.pyx" + +def main(): + datas = [ + "# tag: posix\n" + "# mode: compile\n" + "\n" + "# This file is generated by `Tools/gen_tests_for_posix_pxds.py`.\n" + "\n" + "cimport posix\n" + ] + + filenames = sorted(map(lambda path: path.name, POSIX_PXDS_DIR.iterdir())) + + for name in filenames: + if name == "__init__.pxd": + continue + if name.endswith(".pxd"): + name = name[:-4] + else: + continue + + s = ( + "cimport posix.{name}\n" + "from posix cimport {name}\n" + "from posix.{name} cimport *\n" + ).format(name=name) + + datas.append(s) + + with open(TEST_PATH, "w", encoding="utf-8", newline="\n") as f: + f.write("\n".join(datas)) + +if __name__ == "__main__": + main() |