| @@ -1,6 +1,5 @@ | |||
| import sys | |||
| from pathlib import Path | |||
| sys.path.append(str(Path(__file__).absolute().parent.parent / 'tools')) | |||
| print(sys.path) | |||
| from .dds import DDS, DDSFixtureParams, scoped_dds, dds_fixture_conf, dds_fixture_conf_1 | |||
| @@ -104,7 +104,8 @@ def main(argv: Sequence[str]) -> int: | |||
| ('-T', opts.toolchain), | |||
| ) | |||
| self_build(paths.CUR_BUILT_DDS, opts.toolchain) | |||
| self_build(paths.CUR_BUILT_DDS, toolchain=opts.toolchain) | |||
| print('Bootstrap test PASSED!') | |||
| if paths.SELF_TEST_REPO_DIR.exists(): | |||
| shutil.rmtree(paths.SELF_TEST_REPO_DIR) | |||
| @@ -113,14 +114,7 @@ def main(argv: Sequence[str]) -> int: | |||
| self_deps_build(paths.CUR_BUILT_DDS, opts.toolchain_2, | |||
| paths.SELF_TEST_REPO_DIR, | |||
| paths.PROJECT_ROOT / 'remote.dds') | |||
| proc.check_run( | |||
| paths.CUR_BUILT_DDS, | |||
| 'build', | |||
| '--full', | |||
| '-T', | |||
| opts.toolchain_2, | |||
| ('--lm-index', paths.BUILD_DIR / 'INDEX.lmi'), | |||
| ) | |||
| self_build(paths.CUR_BUILT_DDS, toolchain=opts.toolchain, lmi_path=paths.BUILD_DIR / 'INDEX.lmi') | |||
| return pytest.main(['-v', '--durations=10', '-n4']) | |||
| @@ -6,21 +6,26 @@ import shutil | |||
| import subprocess | |||
| import sys | |||
| from dds_ci import cli | |||
| from dds_ci import cli, proc | |||
| ROOT = Path(__file__).parent.parent.absolute() | |||
| def self_build(exe: Path, toolchain: str): | |||
| def self_build(exe: Path, *, toolchain: str, lmi_path: Path = None): | |||
| # Copy the exe to another location, as windows refuses to let a binary be | |||
| # replaced while it is executing | |||
| new_exe = ROOT / '_dds.bootstrap-test.exe' | |||
| shutil.copy2(exe, new_exe) | |||
| res = subprocess.run([str(new_exe), 'build', f'-FT{toolchain}']) | |||
| new_exe.unlink() | |||
| if res.returncode != 0: | |||
| raise RuntimeError('The bootstrap test failed!') | |||
| print('Bootstrap test PASSED!') | |||
| try: | |||
| proc.check_run( | |||
| new_exe, | |||
| 'build', | |||
| '--full', | |||
| ('--toolchain', toolchain), | |||
| ('-I', lmi_path) if lmi_path else (), | |||
| ) | |||
| finally: | |||
| new_exe.unlink() | |||
| def main(argv: List[str]) -> int: | |||