[ 编译篇 ] 嵌入式平台 使用GoogleTest框架测试C++代码

2019-07-13 01:30发布

class="markdown_views prism-atom-one-light"> 实际项目中写的应用层代码为了保证可靠性,需要编写一定的测试用例,进行单元测试。 这里以GoogleTest为例 ,在嵌入式平台上(Amlogic A113x 平台)实现应用层代码的测试。
编译官方 GoogleTest
下载官方源码 git clone git@github.com:google/googletest.git cmake 编译源码 cd googletest-release-1.8.0/googletest // 新建cmake 构建目录 mkdir mybuild // cmake 构建 cmake ../ //编译 make 如果需要构建Google Test的示例,使用以下命令替换cmake …/ cmake -Dgtest_build_samples=ON ${GTEST_DIR} 这里为止,完成了在Ubuntu 16.04平台上构建GoogleTest 的步骤,详细构建可查看官网文档
这里的重点的是怎么在嵌入式平台上(Amlogic A113x 平台)构建GoogleTest 基本思路: 使用arm交叉编译器编译GoogleTest, 生成可调用的动态库,应用层通过调用GoogleTest动态库完成测试用例的编写
指定arm交叉编译器
GoogleTest默认使用CMake构建,这里通过修改googletest-release-1.8.0/googletest/CMakeLists.txt,指定 Amlogic A113x 平台使用的编译器, 如下 set(CMAKE_SYSTEM_NAME Linux) set(CMAKE_SYSTEM_PROCESSOR arm) //根据实际情况,指定交叉编译的路径 set(tools /opt/gcc-linaro-6.3.1-2017.05-x86_64_arm-linux-gnueabihf) //分别指定C和C++编译器 set(CMAKE_C_COMPILER ${tools}/bin/arm-linux-gnueabihf-gcc) set(CMAKE_CXX_COMPILER ${tools}/bin/arm-linux-gnueabihf-g++) CMake中如何指定编译器,官方文档中有详细描述
生成动态库文件
方便应用层编写测试用例,这里需要编译出动态库。 还是修改`googletest-release-1.8.0/googletest/CMakeLists.txt option(BUILD_SHARED_LIBS "Build shared libraries (DLLs)." OFF) 改为 option(BUILD_SHARED_LIBS "Build shared libraries (DLLs)." ON) //同时也打开编译出示例程序选项 option(gtest_build_samples "Build gtest's sample programs." ON)
编译
编译完成之后,主要libgtest.solibgtest_main.so两个动态库,给应用层调用 在这里插入图片描述
参考