标签:static unity can 源码分析 tps https window 标识 int
ESP32官方提供的源码资源很丰富,有兴趣的开发者可选择下载,参见下图。另外也提供了ESP32的IOT解决方案。
可以看出,整个目录结构完全按照功能模块来划分,每个功能模块都有自己的CMakeList.txt文件,main文件夹,Makefile文件,以及README.md文件。
分别代表:
下图为其中一个模块的目录结构:
2.单元测试结构
ESP-IDF 是乐鑫为 ESP32 提供的物联网开发框架。其包含一系列库及头文件,提供了基于 ESP32 构建软件项目所需的核心组件;ESP-IDF 还提供了开发和量产过程中最常用的工具及功能,例如:构建、烧录、调试和测量等。
ESP-IDF 中附带了一个基于Unity的单元测试应用程序框架,且所有的单元测试用例分别保存在 ESP-IDF 仓库中每个组件的test子目录中。
单元测试被添加在相应组件的test子目录中,test 子目录需要包含 :ref:组件 CMakeLists.txt <component-directories>,因为他们本身就是一种组件。ESP-IDF 使用了 unity 测试框架,需要将其指定为组件的依赖项。
单元测试被添加在相应组件的test子目录中,测试用例写在 C 文件中,一个 C 文件可以包含多个测试用例。测试文件的名字要以“test”开头。
测试文件需要包含 unity.h 头文件,此外还需要包含待测试 C 模块需要的头文件。如下图所示,为EPS32 VFS模块的单元测试源码目录为例:
测试用例需要通过 C 文件中特定的函数来添加,如下所示:
1 TEST_CASE("test name", "[module name]" 2 { 3 // 在这里添加测试用例 4 }
第一个参数是字符串,用来描述当前测试; 第二个参数是字符串,用方括号中的标识符来表示,标识符用来对相关测试或具有特定属性的测试进行分组。以下为vfs中对 TEST_CASE() 函数的调用:
1 TEST_CASE("Can use access() for UART", "[vfs]"){}
vfs模块的单元测试源码整体框架如下图所示:
3.代码风格
函数名命名举例:
1 static void sdio_intr_host(void*); 2 static void sdio_intr_send(void*); 3 static void sdio_intr_recv(void*);
变量命名举例:
1 uint8_t command_bits; 2 uint8_t address_bits; 3 uint8_t dummy_bits;
注释举例:
由上面两个例子可看出为了提升代码的可读性,项目的函数名、变量名等都是根据函数功能或者变量含义来命名,且相同模块的不同功能是通过使用下划线连接模块名和功能名称来实现的,非常直观,且整个项目看下来,命名方式非常统一,且不同功能模块之间有注释分割,使得代码看起来简洁清晰,可读性非常强!
标签:static unity can 源码分析 tps https window 标识 int
原文地址:https://www.cnblogs.com/zhouyuxi/p/11664508.html