项目简介
本项目基于C语言开发,是针对Protocol Buffers (ProtoBuf) 的测试系统。ProtoBuf是用于结构化数据序列化和反序列化的库,项目通过一系列测试用例验证其各项功能,确保在不同场景下的正确性和稳定性。同时采用Nanopb,它是小代码尺寸的Protocol Buffers的ANSI C实现,适用于微控制器等内存受限系统。
项目的主要特性和功能
- 测试范围广泛,覆盖ProtoBuf库的编码、解码、内存管理、嵌套消息、扩展字段和oneof字段等主要功能。
- 代码结构清晰,测试用例按功能分类,每个测试用例有明确的测试目的和步骤。
- 易于扩展,可根据需求扩展或修改测试用例。
- 跨平台兼容性好,支持AVR、MIPS、STM32等多种平台,并提供相应测试环境配置。
- 支持多构建系统,提供针对Makefiles、CMake、SCons、Bazel、Conan、PlatformIO、PyPI/pip、vcpkg等构建规则,方便不同用户集成。
安装使用步骤
1. 准备工作
假设用户已下载本项目的源码文件,且具备基本的C语言编程和构建环境。
2. 编译.proto
文件
使用protoc
编译.proto
文件以适配nanopb,同时在项目中包含pb_encode.c
、pb_decode.c
和pb_common.c
。
生成.pb.c
和.pb.h
文件:
- 源码检出情况:python generator/nanopb_generator.py myprotocol.proto
- 二进制包情况:generator-bin/nanopb_generator myprotocol.proto
若使用git检出或纯源码分发,需单独安装Python,之后用pip install --upgrade protobuf grpcio-tools
安装其他依赖。还可通过创建.options
文件自定义头文件生成。
3. 运行测试
若要进行nanopb核心的进一步开发或验证其在特定编译器和平台上的功能,需运行测试套件。
- 安装Scons:可使用sudo apt install scons
或pip install scons
进行安装。
- 运行测试:
- 普通平台:
sh
cd tests
scons
- Mac OS X平台:scons CC=clang CXX=clang
- 嵌入式平台(STM32):scons PLATFORM=STM32
- 嵌入式平台(AVR):scons PLATFORM=AVR
4. 分析结果
查看测试结果,检查是否有测试用例失败。若有失败情况,可根据失败信息调试代码,找出问题所在。
下载地址
点击下载 【提取码: 4003】【解压密码: www.makuang.net】