feat: Add initial support for PlatformIO and Arduino
This commit is contained in:
parent
fe14e30307
commit
2c8ab3f18b
@ -10,6 +10,12 @@ language: cpp
|
||||
# It is more tedious, but grants us far more flexibility.
|
||||
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
|
||||
@ -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:
|
||||
|
2
ci/build-platformio.sh
Normal file
2
ci/build-platformio.sh
Normal file
@ -0,0 +1,2 @@
|
||||
# run PlatformIO builds
|
||||
platformio run
|
5
ci/install-platformio.sh
Normal file
5
ci/install-platformio.sh
Normal file
@ -0,0 +1,5 @@
|
||||
# install PlatformIO
|
||||
sudo pip install -U platformio
|
||||
|
||||
# update PlatformIO
|
||||
platformio update
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
31
platformio.ini
Normal file
31
platformio.ini
Normal file
@ -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
|
Loading…
Reference in New Issue
Block a user