macos-presubmit.sh 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. #!/bin/bash
  2. #
  3. # Copyright 2020, Google Inc.
  4. # All rights reserved.
  5. #
  6. # Redistribution and use in source and binary forms, with or without
  7. # modification, are permitted provided that the following conditions are
  8. # met:
  9. #
  10. # * Redistributions of source code must retain the above copyright
  11. # notice, this list of conditions and the following disclaimer.
  12. # * Redistributions in binary form must reproduce the above
  13. # copyright notice, this list of conditions and the following disclaimer
  14. # in the documentation and/or other materials provided with the
  15. # distribution.
  16. # * Neither the name of Google Inc. nor the names of its
  17. # contributors may be used to endorse or promote products derived from
  18. # this software without specific prior written permission.
  19. #
  20. # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
  21. # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
  22. # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
  23. # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
  24. # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
  25. # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
  26. # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
  27. # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
  28. # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
  29. # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
  30. # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
  31. set -euox pipefail
  32. if [[ -z ${GTEST_ROOT:-} ]]; then
  33. GTEST_ROOT="$(realpath $(dirname ${0})/..)"
  34. fi
  35. # Test the CMake build
  36. for cmake_off_on in OFF ON; do
  37. BUILD_DIR=$(mktemp -d build_dir.XXXXXXXX)
  38. cd ${BUILD_DIR}
  39. time cmake ${GTEST_ROOT} \
  40. -DCMAKE_CXX_STANDARD=14 \
  41. -Dgtest_build_samples=ON \
  42. -Dgtest_build_tests=ON \
  43. -Dgmock_build_tests=ON \
  44. -Dcxx_no_exception=${cmake_off_on} \
  45. -Dcxx_no_rtti=${cmake_off_on}
  46. time make
  47. time ctest -j$(nproc) --output-on-failure
  48. done
  49. # Test the Bazel build
  50. # If we are running on Kokoro, check for a versioned Bazel binary.
  51. KOKORO_GFILE_BAZEL_BIN="bazel-7.0.0-darwin-x86_64"
  52. if [[ ${KOKORO_GFILE_DIR:-} ]] && [[ -f ${KOKORO_GFILE_DIR}/${KOKORO_GFILE_BAZEL_BIN} ]]; then
  53. BAZEL_BIN="${KOKORO_GFILE_DIR}/${KOKORO_GFILE_BAZEL_BIN}"
  54. chmod +x ${BAZEL_BIN}
  55. else
  56. BAZEL_BIN="bazel"
  57. fi
  58. cd ${GTEST_ROOT}
  59. for absl in 0 1; do
  60. ${BAZEL_BIN} test ... \
  61. --copt="-Wall" \
  62. --copt="-Werror" \
  63. --copt="-Wundef" \
  64. --cxxopt="-std=c++14" \
  65. --define="absl=${absl}" \
  66. --enable_bzlmod=true \
  67. --features=external_include_paths \
  68. --keep_going \
  69. --show_timestamps \
  70. --test_output=errors
  71. done