嵌入式平台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白盒测试的主要内容,如果未能解决你的问题,请参考以下文章

Gtest嵌入式平台编译

Gtest嵌入式平台编译

Mx Suite — ISO 26262 认证的嵌入式软件一体化测试平台

iTOP-4412开发板-嵌入式平台开机测试

星云测试发布针对开放式Linux操作系统的嵌入式精准测试平台Shell

星云测试发布针对开放式Linux操作系统的嵌入式精准测试平台Shell