diff options
author | Chris Johnson <chrisjohnsonmail@gmail.com> | 2018-12-05 03:44:39 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-12-05 03:44:39 (GMT) |
commit | 2c8ab3f18b2ed9fdc1742ec60b6e34248d04efe3 (patch) | |
tree | ad8950e1471e577aa76519049ca1f269a0e1f4f3 | |
parent | fe14e3030737509c2b9f9adad80ff56f80e988a2 (diff) | |
download | googletest-2c8ab3f18b2ed9fdc1742ec60b6e34248d04efe3.zip googletest-2c8ab3f18b2ed9fdc1742ec60b6e34248d04efe3.tar.gz googletest-2c8ab3f18b2ed9fdc1742ec60b6e34248d04efe3.tar.bz2 |
feat: Add initial support for PlatformIO and Arduino
-rw-r--r-- | .travis.yml | 9 | ||||
-rw-r--r-- | ci/build-platformio.sh | 2 | ||||
-rw-r--r-- | ci/install-platformio.sh | 5 | ||||
-rw-r--r-- | googlemock/src/gmock_main.cc | 16 | ||||
-rw-r--r-- | googletest/src/gtest_main.cc | 14 | ||||
-rw-r--r-- | platformio.ini | 31 |
6 files changed, 77 insertions, 0 deletions
diff --git a/.travis.yml b/.travis.yml index 2b0ac21..74e1b8f 100644 --- a/.travis.yml +++ b/.travis.yml @@ -11,6 +11,12 @@ language: cpp matrix: include: - os: linux + dist: trusty + sudo: required + group: deprecated-2017Q3 + install: ./ci/install-platformio.sh + script: ./ci/build-platformio.sh + - os: linux compiler: gcc sudo : true install: ./ci/install-linux.sh && ./ci/log-config.sh @@ -44,6 +50,9 @@ matrix: env: BUILD_TYPE=Release VERBOSE=1 CXX_FLAGS=-std=c++11 if: type != pull_request +before_install: + - chmod -R +x ./ci/*.sh + # These are the install and build (script) phases for the most common entries in the matrix. They could be included # in each entry in the matrix, but that is just repetitive. install: diff --git a/ci/build-platformio.sh b/ci/build-platformio.sh new file mode 100644 index 0000000..1d7658d --- /dev/null +++ b/ci/build-platformio.sh @@ -0,0 +1,2 @@ +# run PlatformIO builds +platformio run diff --git a/ci/install-platformio.sh b/ci/install-platformio.sh new file mode 100644 index 0000000..4d7860a --- /dev/null +++ b/ci/install-platformio.sh @@ -0,0 +1,5 @@ +# install PlatformIO +sudo pip install -U platformio + +# update PlatformIO +platformio update diff --git a/googlemock/src/gmock_main.cc b/googlemock/src/gmock_main.cc index a3a271e..50d0b42 100644 --- a/googlemock/src/gmock_main.cc +++ b/googlemock/src/gmock_main.cc @@ -32,6 +32,20 @@ #include "gmock/gmock.h" #include "gtest/gtest.h" +#ifdef ARDUINO +void setup() { + int argc = 0; + char** argv = nullptr; + // Since Google Mock depends on Google Test, InitGoogleMock() is + // also responsible for initializing Google Test. Therefore there's + // no need for calling testing::InitGoogleTest() separately. + testing::InitGoogleMock(&argc, argv); +} +void loop() { + RUN_ALL_TESTS(); +} +#else + // MS C++ compiler/linker has a bug on Windows (not on Windows CE), which // causes a link error when _tmain is defined in a static library and UNICODE // is enabled. For this reason instead of _tmain, main function is used on @@ -52,3 +66,5 @@ GTEST_API_ int main(int argc, char** argv) { testing::InitGoogleMock(&argc, argv); return RUN_ALL_TESTS(); } +#endif + diff --git a/googletest/src/gtest_main.cc b/googletest/src/gtest_main.cc index 2113f62..0d343ba 100644 --- a/googletest/src/gtest_main.cc +++ b/googletest/src/gtest_main.cc @@ -30,8 +30,22 @@ #include <stdio.h> #include "gtest/gtest.h" +#ifdef ARDUINO +void setup() { + int argc = 0; + char** argv = nullptr; + testing::InitGoogleTest(&argc, argv); +} + +void loop() { + RUN_ALL_TESTS(); +} + +#else + GTEST_API_ int main(int argc, char **argv) { printf("Running main() from %s\n", __FILE__); testing::InitGoogleTest(&argc, argv); return RUN_ALL_TESTS(); } +#endif diff --git a/platformio.ini b/platformio.ini new file mode 100644 index 0000000..3910026 --- /dev/null +++ b/platformio.ini @@ -0,0 +1,31 @@ +; PlatformIO Project Configuration File +; +; Build options: build flags, source filter +; Upload options: custom upload port, speed and extra flags +; Library options: dependencies, extra library storages +; Advanced options: extra scripting +; +; Please visit documentation for the other options and examples +; http://docs.platformio.org/page/projectconf.html + + +[platformio] +#src_dir = ./googlemock +#src_dir = ./googletest +src_dir = . + +[env:googletest_esp32] +platform = espressif32 +board = esp32dev +framework = arduino +build_flags = -I./googletest/include -I./googletest +src_filter = +<*> -<.git/> -<googlemock> -<googletest/codegear/> -<googletest/samples> -<googletest/test/> -<googletest/xcode> -<googletest/src> +<googletest/src/gtest-all.cc> +<googletest/src/gtest_main.cc> +upload_speed = 921600 + +[env:googlemock_esp32] +platform = espressif32 +board = esp32dev +framework = arduino +build_flags = -I./googlemock/include -I./googletest/include -I./googletest -I./googlemock +src_filter = +<*> -<.git/> -<googletest> -<googlemock/test/> -<googlemock/src> +<googlemock/src/gmock-all.cc> +<googlemock/src/gmock_main.cc> +<googletest/src/gtest-all.cc> +upload_speed = 921600 |