diff options
author | zxu <zxu@google.com> | 2018-02-09 12:31:46 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-02-09 12:31:46 -0500 |
commit | 633eb7bb8bbce2d31d682bf5255d9ef5a97a29c5 (patch) | |
tree | ca0d4beba983ba6250deefc37faa1649654ed6fb | |
parent | 274fe52bbf817ef9d35638effb4de08454acfc6d (diff) |
Let Travis run for `CMake` test and `lint.sh` (#769)
* Fix nanopb (in cmake build)
Look for binaries in the src dir (since that's where we build now.) This
error would be masked if a previous build had completed prior to
switching nanopb to build out of src.
Also, don't patch the protoc path multiple times. This could be
triggered by (eg) 'make && make clean && make'.
* Add resource_path.{h,cc} to the cmake build
* Fix signed/unsigned int comparison warnings
* let Travis run for `CMake` test and `lint.sh`
* Ensure FieldValue tag_ is initialized during cp/mv ctor.
Otherwise, the assignment operator attempts to deallocate based on the
(uninitialized) tag_ variable, posssibly leading to segfaults.
* address change
* fix trailing space
* address change
* moving Firestore checks closer together
* Fix tests that throw exceptions.
The (previous) tests checked to ensure that an abort() occurs, but if
ABSL_HAVE_EXCEPTIONS is defined on non-macos (which is currently the
default) then the assertions will throw a std::logic_error rather than
abort()ing.
On macos, an exception is thrown too, but the exception doesn't derrive
from std::exception, so ASSERT_DEATH_* doesn't catch it (hence why
ASSERT_DEATH_* actually works.)
To resolve this, I've switched to ASSERT_ANY_THROW.
* ./scripts/lint.sh
* Move FieldValue::tag_ initializer to be in class.
* check Travis ulimit
* check travis limit
* set make -j 200 instead of unlimited
* use cpu core number instead of 200
-rw-r--r-- | .travis.yml | 6 | ||||
-rwxr-xr-x | Firestore/test.sh | 23 |
2 files changed, 28 insertions, 1 deletions
diff --git a/.travis.yml b/.travis.yml index 2f8f497..042fab1 100644 --- a/.travis.yml +++ b/.travis.yml @@ -13,6 +13,8 @@ before_install: - bundle exec pod install --project-directory=Example --repo-update - bundle exec pod install --project-directory=Firestore/Example --no-repo-update - brew install clang-format + - brew install cmake + - brew install go # Somehow the build for Abseil requires this. - echo "$TRAVIS_COMMIT_RANGE" - echo "$TRAVIS_PULL_REQUEST" - | @@ -37,6 +39,10 @@ script: fi - | if [ $SKIP_FIRESTORE != 1 ]; then + ./scripts/lint.sh # Google C++ style compliance + fi + - | + if [ $SKIP_FIRESTORE != 1 ]; then ./Firestore/test.sh fi diff --git a/Firestore/test.sh b/Firestore/test.sh index 7e26e3f..b211f46 100755 --- a/Firestore/test.sh +++ b/Firestore/test.sh @@ -38,6 +38,23 @@ test_iOS() { | xcpretty } +test_CMake() { + echo "cpu core: $(sysctl -n hw.ncpu)" + echo "set cmake build" && \ + mkdir build && \ + cd build && \ + cmake .. || \ + exit 1 + + echo "initial cmake build" && \ + make -j $(sysctl -n hw.ncpu) all || \ + exit 2 + + echo "test Firestore cmake build" && \ + cd Firestore && \ + make test +} + test_iOS; RESULT=$? if [[ $RESULT == 65 ]]; then echo "xcodebuild exited with 65, retrying" @@ -46,4 +63,8 @@ if [[ $RESULT == 65 ]]; then test_iOS; RESULT=$? fi -exit $RESULT +if [ $RESULT != 0 ]; then exit $RESULT; fi + +test_CMake; RESULT=$? + +if [ $RESULT != 0 ]; then exit $RESULT; fi |