From 6165f63d09d7c640cbe0ba3c5112fadf3a504ca6 Mon Sep 17 00:00:00 2001 From: Gary Talent Date: Fri, 30 Jul 2021 19:34:11 -0500 Subject: [PATCH] [buildcore] Add test-rerun-verbose target --- deps/buildcore/base.mk | 7 +++++-- deps/buildcore/scripts/pybb.py | 15 ++++++++++----- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/deps/buildcore/base.mk b/deps/buildcore/base.mk index ecc7bef8..f20d4e56 100644 --- a/deps/buildcore/base.mk +++ b/deps/buildcore/base.mk @@ -26,7 +26,7 @@ SCRIPTS=${BUILDCORE_PATH}/scripts SETUP_BUILD=${PYTHON3} ${SCRIPTS}/setup-build.py PYBB=${PYTHON3} ${SCRIPTS}/pybb.py CMAKE_BUILD=${PYBB} cmake-build -CTEST_ALL=${PYBB} ctest-verbose +CTEST=${PYBB} ctest-all RM_RF=${PYBB} rm ifdef USE_VCPKG ifndef VCPKG_DIR_BASE @@ -72,7 +72,10 @@ test: build ${ENV_RUN} ${CMAKE_BUILD} build test .PHONY: test-verbose test-verbose: build - ${ENV_RUN} ${CTEST_ALL} build + ${ENV_RUN} ${CTEST} build --output-on-failure +.PHONY: test-rerun-verbose +test-rerun-verbose: build + ${ENV_RUN} ${CTEST} build --rerun-failed --output-on-failure .PHONY: devenv-image devenv-image: diff --git a/deps/buildcore/scripts/pybb.py b/deps/buildcore/scripts/pybb.py index fbad7490..4c91764f 100755 --- a/deps/buildcore/scripts/pybb.py +++ b/deps/buildcore/scripts/pybb.py @@ -31,6 +31,7 @@ def cat(path): def mkdir(path): if not os.path.exists(path) and os.path.isdir(path): os.mkdir(path) + return 0 # this exists because Windows is utterly incapable of providing a proper rm -rf @@ -39,19 +40,22 @@ def rm(path): os.remove(path) elif os.path.isdir(path): shutil.rmtree(path) + return 0 -def ctest_verbose(base_path): +def ctest_all(): + base_path = sys.argv[2] if not os.path.isdir(base_path): - # nothing to build + # no generated projects return 0 - args = ['ctest', '--output-on-failure'] + args = ['ctest'] + sys.argv[3:] orig_dir = os.getcwd() for d in os.listdir(base_path): os.chdir(os.path.join(orig_dir, base_path, d)) err = subprocess.run(args).returncode if err != 0: return err + return 0 def cmake_build(base_path, target): @@ -65,6 +69,7 @@ def cmake_build(base_path, target): err = subprocess.run(args).returncode if err != 0: return err + return 0 def main(): @@ -73,8 +78,8 @@ def main(): elif sys.argv[1] == 'rm': for i in range(2, len(sys.argv)): rm(sys.argv[i]) - elif sys.argv[1] == 'ctest-verbose': - err = ctest_verbose(sys.argv[2]) + elif sys.argv[1] == 'ctest-all': + err = ctest_all() sys.exit(err) elif sys.argv[1] == 'cmake-build': err = cmake_build(sys.argv[2], sys.argv[3] if len(sys.argv) > 3 else None)