嵌入式平台gtest白盒测试
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了嵌入式平台gtest白盒测试相关的知识,希望对你有一定的参考价值。
参考技术A Notes: 在嵌入式平台上使用gmock也是同样的道理。gmock包含gtest。如需使用gmock,类似编译出gmock_main.a然后使用gmock_main.a即可参考嵌入式平台gtest白盒测试: http://www.cnblogs.com/StitchSun/p/4430362.html
参考嵌入式平台组件白盒测试gcov lcov和genhtml使用指导: http://www.cnblogs.com/StitchSun/p/4480229.html
1.修改makefile,指定编译器为交叉编译器工具
增加CXX = /usr/local/arm/arm-2009q3/bin/arm-none-linux-gnueabi-g++
2.执行make命令生成gtest_main.a和sample1_unittest
sample1_unittest文件在ubuntu上无法执行,
将sample1_unittest放入开发板的目录中/mnt/user_rootfs/usr/sbin/yang目录并执行
将gtest_main.a放入samples目录中
3.在开发板上运行sample1_unittest
4.交叉编译并链接sample2生成可执行文件test2
交叉编译命令:arm-none-linux-gnueabi-g++ sample2.cc sample2_unittest.cc gtest_main.a -o test2 -I ../include/ -lpthread
5.test2不能在ubuntu上执行,拷贝到开发板上并执行成功
Gtest嵌入式平台编译
Gtest嵌入式平台编译
下载源码
git clone git@github.com:google/googletest.git
编译
cd googletest
# 新建cmake 构建目录
mkdir build
cd build
# cmake 构建
cmake ..
# 编译
make
嵌入式交叉编译
编辑交叉编译工具链的cmake文件
cd googletest
vi toolchain-arm-linux-gnueabihf.cmake
set(CMAKE_SYSTEM_NAME Linux)
set(CMAKE_SYSTEM_PROCESSOR arm)
set(CMAKE_SYSROOT /home/devel/rasp-pi-rootfs)
set(CMAKE_STAGING_PREFIX /home/devel/stage)
set(tools /home/devel/gcc-4.7-linaro-rpi-gnueabihf)
set(CMAKE_C_COMPILER $tools/bin/arm-linux-gnueabihf-gcc)
set(CMAKE_CXX_COMPILER $tools/bin/arm-linux-gnueabihf-g++)
set(CMAKE_FIND_ROOT_PATH_MODE_PROGRAM NEVER)
set(CMAKE_FIND_ROOT_PATH_MODE_LIBRARY ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_INCLUDE ONLY)
set(CMAKE_FIND_ROOT_PATH_MODE_PACKAGE ONLY)
编译
cd build
cmake -DCMAKE_TOOLCHAIN_FILE=../toolchain-arm-linux-gnueabihf.cmake ..
make -j8
以上是关于嵌入式平台gtest白盒测试的主要内容,如果未能解决你的问题,请参考以下文章
Mx Suite — ISO 26262 认证的嵌入式软件一体化测试平台