summaryrefslogtreecommitdiffstats
path: root/googletest
diff options
context:
space:
mode:
authorChris <chrisjohnsonmail@gmail.com>2019-10-14 02:39:54 (GMT)
committerChris <chrisjohnsonmail@gmail.com>2019-10-14 02:39:54 (GMT)
commit778733f9ecdd2b14a0167df54dd25d2d6f6e24f6 (patch)
tree6bc53d159525957ead5df15a2adc1e3b7bfd9e53 /googletest
parentba513d2c9525a7c986c115ed5d603f2cf17c6016 (diff)
parent84a5ae8b85605fd51cf3d0107315670d3cf00fa4 (diff)
downloadgoogletest-778733f9ecdd2b14a0167df54dd25d2d6f6e24f6.zip
googletest-778733f9ecdd2b14a0167df54dd25d2d6f6e24f6.tar.gz
googletest-778733f9ecdd2b14a0167df54dd25d2d6f6e24f6.tar.bz2
feat: Add ESP8266 support
* Added support for ESP8266 * Removed previous Arduino defines in favor of GTEST_OS_* syntax * Improved PlatformIO library file to be more stable when consumed in client applications.
Diffstat (limited to 'googletest')
-rw-r--r--googletest/include/gtest/internal/gtest-port-arch.h4
-rw-r--r--googletest/include/gtest/internal/gtest-port.h22
-rw-r--r--googletest/src/gtest-filepath.cc7
-rw-r--r--googletest/src/gtest.cc2
-rw-r--r--googletest/src/gtest_main.cc9
5 files changed, 38 insertions, 6 deletions
diff --git a/googletest/include/gtest/internal/gtest-port-arch.h b/googletest/include/gtest/internal/gtest-port-arch.h
index cece93d..e2acad3 100644
--- a/googletest/include/gtest/internal/gtest-port-arch.h
+++ b/googletest/include/gtest/internal/gtest-port-arch.h
@@ -102,6 +102,10 @@
# define GTEST_OS_QNX 1
#elif defined(__HAIKU__)
#define GTEST_OS_HAIKU 1
+#elif defined ESP8266
+# define GTEST_OS_ESP8266 1
+#elif defined ESP32
+# define GTEST_OS_ESP32 1
#endif // __CYGWIN__
#endif // GTEST_INCLUDE_GTEST_INTERNAL_GTEST_PORT_ARCH_H_
diff --git a/googletest/include/gtest/internal/gtest-port.h b/googletest/include/gtest/internal/gtest-port.h
index f6433c5..598a7fb 100644
--- a/googletest/include/gtest/internal/gtest-port.h
+++ b/googletest/include/gtest/internal/gtest-port.h
@@ -449,7 +449,7 @@ typedef struct _RTL_CRITICAL_SECTION GTEST_CRITICAL_SECTION;
// no support for it at least as recent as Froyo (2.2).
#define GTEST_HAS_STD_WSTRING \
(!(GTEST_OS_LINUX_ANDROID || GTEST_OS_CYGWIN || GTEST_OS_SOLARIS || \
- GTEST_OS_HAIKU))
+ GTEST_OS_HAIKU || GTEST_OS_ESP32 || GTEST_OS_ESP8266))
#endif // GTEST_HAS_STD_WSTRING
@@ -573,7 +573,7 @@ typedef struct _RTL_CRITICAL_SECTION GTEST_CRITICAL_SECTION;
#ifndef GTEST_HAS_STREAM_REDIRECTION
// By default, we assume that stream redirection is supported on all
// platforms except known mobile ones.
-# if GTEST_OS_WINDOWS_MOBILE || GTEST_OS_WINDOWS_PHONE || GTEST_OS_WINDOWS_RT
+# if GTEST_OS_WINDOWS_MOBILE || GTEST_OS_WINDOWS_PHONE || GTEST_OS_WINDOWS_RT || GTEST_OS_ESP8266
# define GTEST_HAS_STREAM_REDIRECTION 0
# else
# define GTEST_HAS_STREAM_REDIRECTION 1
@@ -1984,6 +1984,22 @@ inline bool IsDir(const StatStruct& st) {
}
# endif // GTEST_OS_WINDOWS_MOBILE
+#elif GTEST_OS_ESP8266
+typedef struct stat StatStruct;
+
+inline int FileNo(FILE* file) { return fileno(file); }
+inline int IsATTY(int fd) { return isatty(fd); }
+inline int Stat(const char* path, StatStruct* buf) {
+ // stat function not implemented on ESP8266
+ return 0;
+ }
+inline int StrCaseCmp(const char* s1, const char* s2) {
+ return strcasecmp(s1, s2);
+}
+inline char* StrDup(const char* src) { return strdup(src); }
+inline int RmDir(const char* dir) { return rmdir(dir); }
+inline bool IsDir(const StatStruct& st) { return S_ISDIR(st.st_mode); }
+
#else
typedef struct stat StatStruct;
@@ -2036,7 +2052,7 @@ inline int Close(int fd) { return close(fd); }
inline const char* StrError(int errnum) { return strerror(errnum); }
#endif
inline const char* GetEnv(const char* name) {
-#if GTEST_OS_WINDOWS_MOBILE || GTEST_OS_WINDOWS_PHONE || GTEST_OS_WINDOWS_RT
+#if GTEST_OS_WINDOWS_MOBILE || GTEST_OS_WINDOWS_PHONE || GTEST_OS_WINDOWS_RT || GTEST_OS_ESP8266
// We are on Windows CE, which has no environment variables.
static_cast<void>(name); // To prevent 'unused argument' warning.
return nullptr;
diff --git a/googletest/src/gtest-filepath.cc b/googletest/src/gtest-filepath.cc
index bd7b99f..7e03e81 100644
--- a/googletest/src/gtest-filepath.cc
+++ b/googletest/src/gtest-filepath.cc
@@ -93,7 +93,7 @@ static bool IsPathSeparator(char c) {
// Returns the current working directory, or "" if unsuccessful.
FilePath FilePath::GetCurrentDir() {
#if GTEST_OS_WINDOWS_MOBILE || GTEST_OS_WINDOWS_PHONE || \
- GTEST_OS_WINDOWS_RT || ARDUINO || defined(ESP_PLATFORM)
+ GTEST_OS_WINDOWS_RT || GTEST_OS_ESP8266 || GTEST_OS_ESP32
// These platforms do not have a current directory, so we just return
// something reasonable.
return FilePath(kCurrentDirectoryString);
@@ -236,7 +236,7 @@ bool FilePath::DirectoryExists() const {
result = true;
}
#else
- posix::StatStruct file_stat;
+ posix::StatStruct file_stat = {};
result = posix::Stat(path.c_str(), &file_stat) == 0 &&
posix::IsDir(file_stat);
#endif // GTEST_OS_WINDOWS_MOBILE
@@ -323,6 +323,9 @@ bool FilePath::CreateFolder() const {
delete [] unicode;
#elif GTEST_OS_WINDOWS
int result = _mkdir(pathname_.c_str());
+#elif GTEST_OS_ESP8266
+ // do nothing
+ int result = 0;
#else
int result = mkdir(pathname_.c_str(), 0777);
#endif // GTEST_OS_WINDOWS_MOBILE
diff --git a/googletest/src/gtest.cc b/googletest/src/gtest.cc
index a5b4e5a..a11ce18 100644
--- a/googletest/src/gtest.cc
+++ b/googletest/src/gtest.cc
@@ -4508,6 +4508,7 @@ class ScopedPrematureExitFile {
}
~ScopedPrematureExitFile() {
+ #if !defined GTEST_OS_ESP8266
if (!premature_exit_filepath_.empty()) {
int retval = remove(premature_exit_filepath_.c_str());
if (retval) {
@@ -4516,6 +4517,7 @@ class ScopedPrematureExitFile {
<< retval;
}
}
+ #endif
}
private:
diff --git a/googletest/src/gtest_main.cc b/googletest/src/gtest_main.cc
index f6e1dd9..3747925 100644
--- a/googletest/src/gtest_main.cc
+++ b/googletest/src/gtest_main.cc
@@ -30,13 +30,20 @@
#include <cstdio>
#include "gtest/gtest.h"
-#ifdef ARDUINO
+#if GTEST_OS_ESP8266 || GTEST_OS_ESP32
+# if GTEST_OS_ESP8266
+extern "C" {
+# endif
void setup() {
testing::InitGoogleTest();
}
void loop() { RUN_ALL_TESTS(); }
+# if GTEST_OS_ESP8266
+}
+# endif
+
#else
GTEST_API_ int main(int argc, char **argv) {