前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >[ 编译篇 ] 嵌入式平台 使用GoogleTest框架测试C++代码

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

作者头像
程序手艺人
发布2019-02-20 17:17:38
3.8K0
发布2019-02-20 17:17:38
举报
文章被收录于专栏:程序手艺人程序手艺人

实际项目中写的应用层代码为了保证可靠性,需要编写一定的测试用例,进行单元测试。 这里以GoogleTest为例 ,在嵌入式平台上(Amlogic A113x 平台)实现应用层代码的测试。

编译官方 GoogleTest

下载官方源码

代码语言:javascript
复制
git clone  git@github.com:google/googletest.git

cmake 编译源码

代码语言:javascript
复制
cd  googletest-release-1.8.0/googletest

// 新建cmake 构建目录
mkdir mybuild  
// cmake 构建
cmake ../ 
//编译
make 

如果需要构建Google Test的示例,使用以下命令替换cmake …/

代码语言:javascript
复制
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 平台使用的编译器, 如下

代码语言:javascript
复制
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

代码语言:javascript
复制
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.so和libgtest_main.so两个动态库,给应用层调用

在这里插入图片描述
在这里插入图片描述

参考
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2018年12月15日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 编译官方 GoogleTest
  • 指定arm交叉编译器
  • 生成动态库文件
  • 编译
  • 参考
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档