c check的安装和使用

原创 2015年11月17日 18:44:59

c语言单元测试工具 check

安装很简单,

下载,解压

安装三部曲:configure,make,make install

安装完的库文件在/usr/local/lib下面


测试用例:

参考这个链接

http://blog.chinaunix.net/uid-20147410-id-85936.html

但其中makefile有问题的:

test_add.o: In function `test_add':
test_add.c:(.text+0x69): undefined reference to `_ck_assert_failed'
collect2: ld 返回 1


原因是,连接的时候找到的库目录不对。

更正的是:

makefile里面这一行:

gcc -I include $^ -o myprog -L/usr/local/lib/ -lcheck

这样链接的时候,找到正确的库位置,

然后再编译,运行,就可以了

[root@localhost utest]# ./myprog 
Running suite(s): Add
./myprog: symbol lookup error: ./myprog: undefined symbol: _ck_assert_failed
0%: Checks: 1, Failures: 0, Errors: 1
unit_test/test_add.c:4:E:add:test_add:0: (after this point) Early exit with return value 127


但是好像还有问题:

[root@localhost utest]# ldd myprog
linux-vdso.so.1 => (0x00007fffbb36a000)
libcheck.so.0 => /usr/lib64/libcheck.so.0 (0x00007f50092d7000)
libc.so.6 => /lib64/libc.so.6 (0x0000003440800000)
libpthread.so.0 => /lib64/libpthread.so.0 (0x0000003441000000)
/lib64/ld-linux-x86-64.so.2 (0x0000003440000000)

看了一下,原来/usr/lib64下面的libcheck里面真的没有这个符号

所以,从/usr/local/lib下面,把正确的文件拷贝过去,然后再运行


[root@localhost utest]# ll /usr/lib64/libcheck.so*
lrwxrwxrwx. 1 root root    17 3月   9 2015 /usr/lib64/libcheck.so -> libcheck.so.0.0.0
lrwxrwxrwx. 1 root root    17 3月   9 2015 /usr/lib64/libcheck.so.0 -> libcheck.so.0.0.0
-rwxr-xr-x. 1 root root 29440 11月 11 2010 /usr/lib64/libcheck.so.0.0.0
[root@localhost utest]# objdump -t /usr/lib64/libcheck.so|grep _ck_assert_failed
[root@localhost utest]# cp /usr/local/lib/libcheck.so.0.0.0 /usr/lib64/libcheck.so.0.0.0 

[root@localhost utest]# ./myprog 


Running suite(s): Add
0%: Checks: 1, Failures: 1, Errors: 0
unit_test/test_add.c:6:F:add:test_add:0: god, 2+3!=5

C语言单元测试框架Check

什么是CheckCheck是C语言的一个单元测试框架。它提供一个小巧的单元测试接口。测试案例运行在各自独立的地址空间,所以断言失败和代码错误造成的段错误或者其他的信号可以被捕捉到。另外,测试的结果显示...
  • u014717036
  • u014717036
  • 2016年04月19日 19:00
  • 753

c:if与s:if的基本使用

1.使用s:if判断字符串  Java代码   if test='a!="ah"'>           table0       if>   2.s:if判...
  • HUXU981598436
  • HUXU981598436
  • 2016年08月09日 17:21
  • 2091

Check for working CXX compiler: opt/FriendlyARM/toolschain/4.4.3/bin/arm-linux-g++ -- broken

在做opencv移植到arm 用cmake-gui进行配置编译时 arm-linux-gcc总提示错误 查阅资料好久 一直不知道怎么处理 看到网上也有好多人有这个问题 没有解决 所以写下自己第一个博客...
  • qq_17382323
  • qq_17382323
  • 2016年10月02日 14:03
  • 194

C语言单元测试工具Check使用注意事项

最近在项目中尝试去向TDD的开发方式靠近,因此接触倒了C语言的单元测试工具Check,模拟Java的JUnit编写而成,功能简单实用,Manual手册就短短两页,在SO上的人气也挺高。 不过也有可能...
  • revilwang
  • revilwang
  • 2013年10月23日 16:01
  • 2833

解决npm 的 shasum check failed for错误

使用npm安装一些包失败,类似如下报错情况: C:\Program Files\nodejs>npm update npm npm ERR! Windows_NT 10.0.14393 npm ER...
  • ducp123
  • ducp123
  • 2017年04月21日 09:42
  • 1457

vtk编译出现"Check for working C compiler using: Visual Studio 10 -- broken"

发现原来是因为我的电脑上同时装了vs2010和vs2013 vs2013自带的.NET4.5替换了原有的.NET,我卸载了vs2012以及.NET4.5组件,重新安装.NET4.0,再次Configu...
  • u012176176
  • u012176176
  • 2016年04月21日 16:21
  • 626

Check—强大的C语言单元测试框架

1. 前言在看基数树源码时,发现源码里面有个deps的依赖文件夹,deps里是一个叫Check的源码安装包,Google之后发现Check原来是C语言单元测试框架。关于单元测试,Wikipedia的介...
  • ZCF1002797280
  • ZCF1002797280
  • 2015年12月28日 20:40
  • 6191

C preprocessor fails sanity check

系统编译错误:C preprocessor fails sanity check
  • Ivanpku
  • Ivanpku
  • 2016年06月25日 17:23
  • 1178

sahi自动化环境搭建

一、介绍 sahi 运行为一个代理服务器,并通过注入 JavaScript 来访问 Web 页面中的元素。 http://www.ibm.com/developerworks/cn/web/140...
  • qianxun136930775
  • qianxun136930775
  • 2014年09月02日 00:06
  • 1608

您能看出这个Double Check里的问题吗?

昨天在做code review时看到一位同事写了这样的代码。这段代码的目的使用Double Check的做法来保证线程安全的延迟加载。但是我看到这代码之后发现了一个问题,这个问题不是第一次出现。因此,...
  • GarfieldEr007
  • GarfieldEr007
  • 2015年12月20日 13:57
  • 480
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:c check的安装和使用
举报原因:
原因补充:

(最多只允许输入30个字)