@@ -115,18 +115,22 @@ PRINT_CCACHE_STATISTICS="ccache --version | head -n 1 && ccache --show-stats"
115115
116116# Folder where the build is done.
117117BASE_BUILD_DIR=${BASE_BUILD_DIR:- $BASE_SCRATCH_DIR / build-$HOST }
118- mkdir -p " ${BASE_BUILD_DIR} "
119- cd " ${BASE_BUILD_DIR} "
120118
121119BITCOIN_CONFIG_ALL=" $BITCOIN_CONFIG_ALL -DCMAKE_INSTALL_PREFIX=$BASE_OUTDIR -Werror=dev"
122120
123121if [[ " ${RUN_TIDY} " == " true" ]]; then
124122 BITCOIN_CONFIG_ALL=" $BITCOIN_CONFIG_ALL -DCMAKE_EXPORT_COMPILE_COMMANDS=ON"
125123fi
126124
127- bash -c " cmake -S $BASE_ROOT_DIR $BITCOIN_CONFIG_ALL $BITCOIN_CONFIG || ( (cat $( cmake -P " ${BASE_ROOT_DIR} /ci/test/GetCMakeLogFiles.cmake" ) ) && false)"
125+ bash -c " cmake -S $BASE_ROOT_DIR -B ${BASE_BUILD_DIR} $BITCOIN_CONFIG_ALL $BITCOIN_CONFIG || ( (cat $( cmake -P " ${BASE_ROOT_DIR} /ci/test/GetCMakeLogFiles.cmake" ) ) && false)"
128126
129- bash -c " cmake --build . $MAKEJOBS --target all $GOAL " || ( echo " Build failure. Verbose build follows." && cmake --build . --target all " $GOAL " --verbose ; false )
127+ # shellcheck disable=SC2086
128+ cmake --build " ${BASE_BUILD_DIR} " " $MAKEJOBS " --target all $GOAL || (
129+ echo " Build failure. Verbose build follows."
130+ # shellcheck disable=SC2086
131+ cmake --build " ${BASE_BUILD_DIR} " -j1 --target all $GOAL --verbose
132+ false
133+ )
130134
131135bash -c " ${PRINT_CCACHE_STATISTICS} "
132136du -sh " ${DEPENDS_DIR} " /* /
@@ -137,11 +141,17 @@ if [ -n "$USE_VALGRIND" ]; then
137141fi
138142
139143if [ " $RUN_CHECK_DEPS " = " true" ]; then
140- " ${BASE_ROOT_DIR} /contrib/devtools/check-deps.sh" .
144+ " ${BASE_ROOT_DIR} /contrib/devtools/check-deps.sh" " ${BASE_BUILD_DIR} "
141145fi
142146
143147if [ " $RUN_UNIT_TESTS " = " true" ]; then
144- DIR_UNIT_TEST_DATA=" ${DIR_UNIT_TEST_DATA} " LD_LIBRARY_PATH=" ${DEPENDS_DIR} /${HOST} /lib" CTEST_OUTPUT_ON_FAILURE=ON ctest --stop-on-failure " ${MAKEJOBS} " --timeout $(( TEST_RUNNER_TIMEOUT_FACTOR * 60 ))
148+ DIR_UNIT_TEST_DATA=" ${DIR_UNIT_TEST_DATA} " \
149+ LD_LIBRARY_PATH=" ${DEPENDS_DIR} /${HOST} /lib" \
150+ CTEST_OUTPUT_ON_FAILURE=ON \
151+ ctest --test-dir " ${BASE_BUILD_DIR} " \
152+ --stop-on-failure \
153+ " ${MAKEJOBS} " \
154+ --timeout $(( TEST_RUNNER_TIMEOUT_FACTOR * 60 ))
145155fi
146156
147157if [ " $RUN_UNIT_TESTS_SEQUENTIAL " = " true" ]; then
151161if [ " $RUN_FUNCTIONAL_TESTS " = " true" ]; then
152162 # parses TEST_RUNNER_EXTRA as an array which allows for multiple arguments such as TEST_RUNNER_EXTRA='--exclude "rpc_bind.py --ipv6"'
153163 eval " TEST_RUNNER_EXTRA=($TEST_RUNNER_EXTRA )"
154- LD_LIBRARY_PATH=" ${DEPENDS_DIR} /${HOST} /lib" test/functional/test_runner.py --ci " ${MAKEJOBS} " --tmpdirprefix " ${BASE_SCRATCH_DIR} " /test_runner/ --ansi --combinedlogslen=99999999 --timeout-factor=" ${TEST_RUNNER_TIMEOUT_FACTOR} " " ${TEST_RUNNER_EXTRA[@]} " --quiet --failfast
164+ LD_LIBRARY_PATH=" ${DEPENDS_DIR} /${HOST} /lib" \
165+ " ${BASE_BUILD_DIR} /test/functional/test_runner.py" \
166+ --ci " ${MAKEJOBS} " \
167+ --tmpdirprefix " ${BASE_SCRATCH_DIR} /test_runner/" \
168+ --ansi \
169+ --combinedlogslen=99999999 \
170+ --timeout-factor=" ${TEST_RUNNER_TIMEOUT_FACTOR} " \
171+ " ${TEST_RUNNER_EXTRA[@]} " \
172+ --quiet \
173+ --failfast
155174fi
156175
157176if [ " ${RUN_TIDY} " = " true" ]; then
185204
186205if [ " $RUN_FUZZ_TESTS " = " true" ]; then
187206 # shellcheck disable=SC2086
188- LD_LIBRARY_PATH=" ${DEPENDS_DIR} /${HOST} /lib" test/fuzz/test_runner.py ${FUZZ_TESTS_CONFIG} " ${MAKEJOBS} " -l DEBUG " ${DIR_FUZZ_IN} " --empty_min_time=60
207+ LD_LIBRARY_PATH=" ${DEPENDS_DIR} /${HOST} /lib" \
208+ " ${BASE_BUILD_DIR} /test/fuzz/test_runner.py" \
209+ ${FUZZ_TESTS_CONFIG} \
210+ " ${MAKEJOBS} " \
211+ -l DEBUG \
212+ " ${DIR_FUZZ_IN} " \
213+ --empty_min_time=60
189214fi
0 commit comments