首页 > 其他分享 >Cmocka 单元测试日志记录

Cmocka 单元测试日志记录

时间:2024-04-15 15:15:29浏览次数:16  
标签:ut make 单元测试 assert test 测试 Cmocka 日志 跑例

isbs_doc/release/ipg/. ./ut 跑例(24.4.15)

ut 测试不通过

在 isbs_doc 文件夹 git 分支 release/ipg 中对 ut 进行跑例测试

  • 通过 git clone isbs_doc 文件夹到本地
  • 切换到 release/ipg 分支
  • 在 #164 中找到关于 cmocka 单元测试的 ut 文件夹
  • 在终端 MSYS2-Mingw64 直接切换到该目录下
  • 观察到目录下有完整的 makefile 文件,故选择直接编译
    • make all
    • make run
    • make report
      alt text
      alt text
  • 跑例不通过,可以看到 make run 后有不正常的 log 输出,并且在 make report 中无法找到 *.gcda 文件
  • make clean 后重新编译,仍旧无法通过

ut 测试不通过故障原因

未知

ut 测试不通过解决方法

  • ut 文件夹复制到其他目录下(仅 ut
  • 直接编译
    • make all
    • make run
    • make report
  • 编译通过,正常输出 *.html 文件
    alt text
    alt text
    alt text

cmocka/example 跑例(24.4.15)

assert_macro_test 测试不通过

assert_macro_test 跑例,使用 gcc assert_macro_test.c -lcmocka 显示有 undefined reference 错误
alt text

但奇怪的是,用同样的方法对 calculator_test.c 编译能够通过
alt text

assert_macro_test 测试不通过故障原因

这就是最典型的 undefined reference 错误,因为在链接时发现找不到某个函数的实现文件
参考 https://blog.csdn.net/aiwoziji13/article/details/7330333

assert_macro_test 测试不通过解决方法

alt text

cmocka/tests 跑例(24.4.15)

test_returns 测试不通过

test_returns 跑例,使用 gcc test_returns.c -lcmocka 显示有 #include "config.h" 错误,查找 build 目录下存在 config.h 文件,将该文件复制到测试目录下。继续 gcc test_returns.c -lcmocka,显示有 #include <cmocka_private.h> 错误,重复上述方法,复制 cmocka_private.h 文件,但编译不通过。
alt text

test_returns 测试不通过故障原因

头文件与库文件编译区别

参考 https://www.cnblogs.com/clwsec/p/

assert_macro_test 测试不通过解决方法

方法1:将库文件格式改成头文件格式
alt text

方法2:在 D:/MSYS2/mingw64/include/ 目录下添加该库文件

标签:ut,make,单元测试,assert,test,测试,Cmocka,日志,跑例
From: https://www.cnblogs.com/likkoliu/p/18135232

相关文章

  • 案例二十一备份30天之前的日志并压缩到指定目录下
    #!/bin/bash#备份目录info_backdir=/backup/log/info/`date-d"30dayago"+%F|awk-F"-"'{print$1"-"$2}'`error_backdir=/backup/log/error/`date-d"30dayago"+%F|awk-F"-"'{print$1"......
  • C / C++ 文件简单混编 + 轻量级日志系统使用
    在项目工程里面,不一定全部是c或者c++文件,有时候是混合一起,这个时候如果使用makefile编译的话,就要考虑兼容两种类型的文件编译了;实战经验如下:根据自己的风格制作响应的打印和日志记录,makefile编写如下:CC=gccCPP=g++#文件夹路径ROOTPATH=.INCLUDE=-I./cfg/inc-I$(......
  • Feign日志 - 自定义 info级别打印
    背景由于feign,默认只有debug的level,才能打印出日志。不太符合一般项目的loginfolevel的约定。因此决定自定义feign的log打印。目的在infolevel下,可以打印feign日志寻找线索打开openfeign的核心包目录寻找log相关类 feign-1.png通过FeignLoggerfactor......
  • 如何在 Pytest 中添加日志记录
    前言在编写和运行测试时,对于调试和排查问题,添加日志记录是一种非常有用的技术。Pytest是一个流行的Python测试框架,开发者通过pytest可以轻松地编写和运行各种测试。本文将介绍如何在Pytest中添加日志记录,以便更好地理解测试执行过程中的细节和问题。pytest.ini我们之前有......
  • python 单元测试
    对写的函数或方法测试(非调接口方式) 方案1:自己编写测试类方案2:用python自带的unittest模块案例:importunittestclassStudent:def__init__(self,name,score):self.name=nameself.score=scoredefget_score(self):if......
  • 【Go】单元测试
    Go本身提供了一套轻量级的测试框架。符合规则的测试代码会在运行测试时被自动识别并执行。单元测试源文件的命名规则如下:在需要测试的包下面创建以“_test”结尾的go文件,形如[^.]*_test.goGo的单元测试函数分功能测试函数和性能测试函数,分别以Test和Benchmark为函数名前缀并以*t......
  • 掌握 xUnit 单元测试中的 Mock 与 Stub 实战
    引言上一章节介绍了TDD的三大法则,今天我们讲一下在单元测试中模拟对象的使用。FakeFake-Fake是一个通用术语,可用于描述stub或mock对象。它是stub还是mock取决于使用它的上下文。也就是说,Fake可以是stub或mockMock-Mock对象是系统中的fake对象,用于......
  • .Net单元测试xUnit和集成测试指南(1)
    合集-单元测试(3) 1..Net单元测试xUnit和集成测试指南(1)04-032.单元测试篇2-TDD三大法则解密04-073.掌握xUnit单元测试中的Mock与Stub实战04-12收起 引言在现代化的软件开发中,单元测试和集成测试是确保代码质量和可靠性的关键部分。ASP.NETCore社区......
  • 掌握 xUnit 单元测试中的 Mock 与 Stub 实战
    引言上一章节介绍了TDD的三大法则,今天我们讲一下在单元测试中模拟对象的使用。FakeFake-Fake是一个通用术语,可用于描述stub或mock对象。它是stub还是mock取决于使用它的上下文。也就是说,Fake可以是stub或mockMock-Mock对象是系统中的fake对象,用于确......
  • 如何在 Pytest 中添加日志记录
    前言在编写和运行测试时,对于调试和排查问题,添加日志记录是一种非常有用的技术。Pytest是一个流行的Python测试框架,开发者通过pytest可以轻松地编写和运行各种测试。本文将介绍如何在Pytest中添加日志记录,以便更好地理解测试执行过程中的细节和问题。pytest.ini我们之前有......