gtest官方示例代码
gtest_main
代码解析
1 |
|
通过level可以比较清楚的看清逻辑结构:
如果定义了以下宏,则运行下面这部分代码:
GTEST_OS_ESP8266
:表示编译目标是 ESP8266 平台GTEST_OS_ESP32
:表示编译目标是 ESP32 平台(defined(GTEST_OS_NRF52) && defined(ARDUINO))
:表示编译目标是 Nordic nRF52 系列的设备,并且是在 Arduino 环境下编译
1 |
|
- 如果定义了
GTEST_OS_QURT
宏,即再QuRT操作系统上编译运行,则执行下面这部分代码:
1 |
|
- 如果是除此之外的其他平台则运行下面这部分代码:
1 |
|
进一步解析
- 根据注释,对于类似Arduino平台,程序的入口点是setup/loop,而不是main,所以需要单独编写;
- 在setup函数中初始化;
- 在loop函数中运行所有测试;
- 但是对于ESP8266平台,需要使用C链接,除了它之外的另外三个则不需要,所以单独将它进行C链接的”开关”打开;
- 对于QuRT平台,程序的入口点是main,但是不能用argc/argv;
- 对于其他的普通平台如Linux,程序的入口点是main,并且可以使用argc/argv;
gtest官方示例代码
http://example.com/2025/02/22/Tool/sourceRead/