diff --git a/libcxx/utils/ci/run-buildbot b/libcxx/utils/ci/run-buildbot --- a/libcxx/utils/ci/run-buildbot +++ b/libcxx/utils/ci/run-buildbot @@ -133,18 +133,25 @@ ! grep -q '^--- a' ${BUILD_DIR}/clang-format.patch ;; check-generated-output) + # When using set -e in Bash and use the not operator to invert the result + # of a command, the failed test won't stop processing. This is solved by + # using the logical or operator. This command won't work as intended: + # ! foo + # Instead use: + # ! foo || false + # Note if ! foo is the last command it will work as intended. clean echo "+++ Checking the output of the generator scripts" mkdir -p ${BUILD_DIR} # Reject patches that introduce non-ASCII characters or hard tabs. - ! grep -rn '[^ -~]' libcxx/include/ + ! grep -rn '[^ -~]' libcxx/include/ || false # Reject patches that don't update the generated output correctly. python3 libcxx/utils/generate_feature_test_macro_components.py python3 libcxx/utils/generate_header_inclusion_tests.py python3 libcxx/utils/generate_header_tests.py git diff | tee ${BUILD_DIR}/generated_output.patch # Check if the diffs are empty, fail otherwise. - ! grep -q '^--- a' ${BUILD_DIR}/generated_output.patch + ! grep -q '^--- a' ${BUILD_DIR}/generated_output.patch || false # Check that no dependency cycles have been introduced. python3 libcxx/utils/graph_header_deps.py >/dev/null ;;