Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

44 lines
1.1KB

  1. #!/usr/bin/env python3
  2. import argparse
  3. from pathlib import Path
  4. from typing import List, NamedTuple
  5. import shutil
  6. import subprocess
  7. import sys
  8. ROOT = Path(__file__).parent.parent.absolute()
  9. def bootstrap_self(exe: Path, toolchain: str):
  10. # Copy the exe to another location, as windows refuses to let a binary be
  11. # replaced while it is executing
  12. new_exe = ROOT / '_dds.bootstrap-test.exe'
  13. shutil.copy2(exe, new_exe)
  14. res = subprocess.run([str(new_exe), 'build', f'-FT{toolchain}'])
  15. new_exe.unlink()
  16. if res.returncode != 0:
  17. raise RuntimeError('The bootstrap test failed!')
  18. print('Bootstrap test PASSED!')
  19. def main(argv: List[str]) -> int:
  20. parser = argparse.ArgumentParser()
  21. parser.add_argument(
  22. '--exe',
  23. '-e',
  24. help='Path to the dds executable to test',
  25. required=True)
  26. parser.add_argument(
  27. '--toolchain',
  28. '-T',
  29. help='The dds toolchain to use while testing',
  30. required=True,
  31. )
  32. args = parser.parse_args(argv)
  33. bootstrap_self(Path(args.exe), args.toolchain)
  34. return 0
  35. if __name__ == "__main__":
  36. sys.exit(main(sys.argv[1:]))