summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Johnson <chrisjohnsonmail@gmail.com>2018-12-04 21:44:39 -0600
committerGitHub <noreply@github.com>2018-12-04 21:44:39 -0600
commit2c8ab3f18b2ed9fdc1742ec60b6e34248d04efe3 (patch)
treead8950e1471e577aa76519049ca1f269a0e1f4f3
parentfe14e3030737509c2b9f9adad80ff56f80e988a2 (diff)
downloadgoogletest-2c8ab3f18b2ed9fdc1742ec60b6e34248d04efe3.tar.gz
googletest-2c8ab3f18b2ed9fdc1742ec60b6e34248d04efe3.zip
feat: Add initial support for PlatformIO and Arduino
-rw-r--r--.travis.yml9
-rw-r--r--ci/build-platformio.sh2
-rw-r--r--ci/install-platformio.sh5
-rw-r--r--googlemock/src/gmock_main.cc16
-rw-r--r--googletest/src/gtest_main.cc14
-rw-r--r--platformio.ini31
6 files changed, 77 insertions, 0 deletions
diff --git a/.travis.yml b/.travis.yml
index 2b0ac21a..74e1b8f1 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 00000000..1d7658d8
--- /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 00000000..4d7860a5
--- /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 a3a271e6..50d0b426 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 2113f621..0d343ba9 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 00000000..3910026b
--- /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
OpenPOWER on IntegriCloud