| to build the new dds. Returns a DDSWrapper around the generated test executable. | to build the new dds. Returns a DDSWrapper around the generated test executable. | ||||
| """ | """ | ||||
| test_tc = args.test_toolchain or toolchain.get_default_test_toolchain() | test_tc = args.test_toolchain or toolchain.get_default_test_toolchain() | ||||
| build_dir = paths.BUILD_DIR / '_ci-test' | |||||
| build_dir = paths.BUILD_DIR | |||||
| with toolchain.fixup_toolchain(test_tc) as new_tc: | with toolchain.fixup_toolchain(test_tc) as new_tc: | ||||
| dds.build(toolchain=new_tc, root=paths.PROJECT_ROOT, build_root=build_dir, jobs=args.jobs) | dds.build(toolchain=new_tc, root=paths.PROJECT_ROOT, build_root=build_dir, jobs=args.jobs) | ||||
| return DDSWrapper(build_dir / ('dds' + paths.EXE_SUFFIX)) | return DDSWrapper(build_dir / ('dds' + paths.EXE_SUFFIX)) | ||||
| dds.catalog_json_import(paths.PROJECT_ROOT / 'old-catalog.json') | dds.catalog_json_import(paths.PROJECT_ROOT / 'old-catalog.json') | ||||
| if args.rapid: | |||||
| return main_build(dds, args) | |||||
| pool = futures.ThreadPoolExecutor() | pool = futures.ThreadPoolExecutor() | ||||
| test_fut = pool.submit(lambda: 0) | test_fut = pool.submit(lambda: 0) | ||||
| if args.do_test and not args.rapid: | |||||
| if args.do_test: | |||||
| # Build the test executable: | |||||
| test_dds = test_build(dds, args) | test_dds = test_build(dds, args) | ||||
| # Move the generated exe and start tests. We'll start building the main | |||||
| # EXE and don't want to overwrite the test one while the tests are running | |||||
| dds_cp = paths.BUILD_DIR / ('dds.test' + paths.EXE_SUFFIX) | |||||
| test_dds.path.rename(dds_cp) | |||||
| test_dds.path = dds_cp | |||||
| test_fut = pool.submit(lambda: run_pytest(test_dds, args)) | test_fut = pool.submit(lambda: run_pytest(test_dds, args)) | ||||
| main_fut = pool.submit(lambda: main_build(dds, args)) | main_fut = pool.submit(lambda: main_build(dds, args)) |