独望枫

人在尘世间,有缘自相见,变化千千万,未开窍,已迷恋
posts - 45, comments - 0, trackbacks - 0, articles - 1
  C++博客 :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理

学习笔记

共勉:孜孜不倦学不止·源源不断习无尽
     摘要: 本文将生成覆盖率脚本化处理过程。

设计思路:通过脚本对qt工程进行编译并运行,然后再通过脚本收集必要的受关注的覆盖率信息进行生成覆盖率报告,最后查看报告。
  阅读全文

posted @ 2022-03-29 23:21 小菜枫 阅读(414) | 评论 (0)  编辑 |

     摘要: 前文提到添加了编译参数 -fprofile-arcs 、 -ftest-coverage 已经生成了gcno文件,单元测试运行后也产生了gcda文件。

并且我们已经安装好lcov,那么该如何使用lcov来生成覆盖率报告呢?
  阅读全文

posted @ 2022-03-29 23:16 小菜枫 阅读(1398) | 评论 (0)  编辑 |

     摘要: lcov是GCC覆盖率测试工具gcov的前端图形工具。

有些Linux版本的源提供了包直接安装,可以尝试使用对应包管理命令行直接安装
  阅读全文

posted @ 2022-03-29 23:11 小菜枫 阅读(4499) | 评论 (0)  编辑 |

     摘要: gcov是一个代码覆盖率统计的工具。不用单独下载,伴随GCC一起发布(即你安装有GCC,也就有了gcov这个工具)。与GCC协同使用、分析被测代码,有助于创建更稳健的代码,并能发现程序中未经测试的部分。

基于gcov是隶属于GCC,所以其仅适用于使用GCC编译的代码……
  阅读全文

posted @ 2022-03-29 23:07 小菜枫 阅读(1319) | 评论 (0)  编辑 |

     摘要: 随着事物的接触越来越多,了解的越来越深入,我们总会发现一些新的问题或者不足。
就像前文提到的一样,我们在面对有对象的虚函数依赖的时候,可以使用gmock框架来为我们提供方便的模拟期望值,以便我们能撇除外界的影响(依赖)从逻辑上设计单元测试并持续的进行,但是并非所有对象的函数都设计成了虚函数,那么我们在面对依赖对象的非虚函数这个问题时,又该如何解决?
这个问题,已经有先行者遇到并且提出了解决方案:手动打桩、使用hook技术。
  阅读全文

posted @ 2022-03-27 22:47 小菜枫 阅读(3064) | 评论 (0)  编辑 |

     摘要: 在面向对象的开发过程中,由于需要将各种属性或者事物按一定的规律抽象为独立的一个对象,然后按需进行调用,如此一来,对象之间的依赖便无可避免,设计不好更会产生双向依赖、交叉依赖等困境,那么我们在面对这种对象间依赖的情况下,该如何进行单元测试呢?  阅读全文

posted @ 2022-03-27 22:37 小菜枫 阅读(895) | 评论 (0)  编辑 |

     摘要: 类的private函数相比public函数,测试套件定义的对象无法直接访问;相比protected函数,亦无法通过前文提到的FRIENT_TEST来使用,那么我们要怎么才能解决这个问题呢?  阅读全文

posted @ 2022-03-27 22:31 小菜枫 阅读(1731) | 评论 (0)  编辑 |

     摘要: 类的protected函数相比public函数,测试套件定义的对象无法直接访问,gtest提供了一个宏FRIENT_TEST,这个宏定义如下:

#define FRIEND_TEST(test_case_name, test_name) \
friend class test_case_name##_##test_name##_Test  阅读全文

posted @ 2022-03-27 22:04 小菜枫 阅读(770) | 评论 (0)  编辑 |

     摘要: 类的public函数在面向对象编程中是最常见亦是最常规的函数,但是其单元测试的展开跟普通函数并无二致[这里指的是没有其他对象依赖的情况,有依赖的场景请参考本系列的有依赖对象的场景文章],下面来看看具体如何实施。  阅读全文

posted @ 2022-03-27 21:36 小菜枫 阅读(334) | 评论 (0)  编辑 |

     摘要: 普通函数在该 [gtest场景案例] 系列中,指的是普通的全局函数,既没有public等权限关键字,也没有static/const等关键字.  阅读全文

posted @ 2022-03-27 21:17 小菜枫 阅读(506) | 评论 (0)  编辑 |

     摘要: 新的单位有推进单元测试的项目,计划选中的框架刚好是以前有用到的gtest。

于是将以前零碎记录的文章整理一下,按单元测试中常见的、典型的场景进行分类,针对不同场景下如何使用gtest进行展开,如有纰漏,欢迎各位交流及指出。
  阅读全文

posted @ 2022-03-27 20:34 小菜枫 阅读(298) | 评论 (0)  编辑 |

posted @ 2021-07-14 02:41 小菜枫 阅读(1330) | 评论 (0)  编辑 |

     摘要: 主要是FreeRTOS的定时器使用示例,及过程中的一些错误解决。
定时器实现方式包含动态、静态。  阅读全文

posted @ 2021-07-14 02:29 小菜枫 阅读(524) | 评论 (0)  编辑 |

     摘要: 任务通知
> 每个RTOS任务都有一个32位的通知值,任务创建时,这个值被初始化为0。RTOS任务通知相当于直接向任务发送一个事件,接收到通知的任务可以解除阻塞状态,前提是这个阻塞事件是因等待通知而引起的。发送通知的同时,也可以可选的改变接收任务的通知值。
可以通过下列方法向接收任务更新通知:
○ 不覆盖接收任务的通知值
○ 覆盖接收任务的通知值
○ 设置接收任务通知值的某些位
○ 增加接收任务的通知值  阅读全文

posted @ 2021-07-14 02:24 小菜枫 阅读(688) | 评论 (0)  编辑 |

     摘要: FreeRTOS线程间通信的方式之一,事件。
事件依赖于动态申请内存,只要开启了该宏,事件相关的功能同时被开启,但如果要使用事件相关的宏/函数,还需要添加对应的头文件……  阅读全文

posted @ 2021-07-14 02:20 小菜枫 阅读(625) | 评论 (0)  编辑 |

Full 学习笔记 Archive