gtest在嵌入式设备上的使用-入门级(gtest-1.7.0)

gtest用起来还是很简单的,只是网上很多文章都讲了太多细节,反而混淆视听。

本文期望以最简单的方式,介绍在嵌入式环境中的使用。

一、先说使用

    1)我们需要gtest的一个库libgtest.a,以及一个目录的头文件gtest

    2)定义一个main函数,或者在原有main函数中调用其内容

GTEST_API_ int main(int argc, char **argv) {
  printf("Running main() from gtest_main.cc\n");
  testing::InitGoogleTest(&argc, argv);
  return RUN_ALL_TESTS();
}

    3)为每个小模块,或者每个类,每个函数,编写测试代码。它用起来是这样的

TEST(CaseName, TestName)
{
    int a = -2;
    EXPECT_EQ(2, abs(a));
}

    其中,CaseName是你的测试大项的名字,TestName是小项的名字。你可以写很多这样的Test。而gtest都会帮你依次执行,并最终形成报告打印在命令行中。

好了,这样我们就能测试abs 能否正确的实现取绝对值的功能了。

gtest所有做的事情,就是用我们调用很多的,分布在代码各处的TEST。

而TEST中的内容,也是我们写的各种EXPECT_EQ,EXPECT_LE 等等各自判断条件。

二、再说说交叉编译

我使用的是cmake编译的,基于1.7.0版本。

1)在cmake/目录中创建文件hermetic_build.cmake,其中定义如下内容:

set(CMAKE_C_COMPILER ${CROSS_COMPILE}gcc)
set(CMAKE_CXX_COMPILER ${CROSS_COMPILE}g++)
add_definitions(${USER_DEFINISION})

前两行定义的是交叉编译器,最后一行则是我们定义的编译参数。

CROSS_COMPILE和USER_DEFINISION,我们会在脚本中定义,一个典型的脚本是像这样的:
cmake . -DCROSS_COMPILE=arm-hisiv500-linux- -DUSER_DEFINISION:STRING="-mcpu=cortex-a7 -mfloat-abi=softfp -mfpu=neon-vfpv4 -mno-unaligned-access -fno-aggressive-loop-optimizations"

编译完成后,取出库,头文件来使用即可


  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值