C++开发
文章平均质量分 86
记录实习期间整理的知识点文档
Type真是太帅了
望崦嵫而勿迫兮,恐鹈鴂之先鸣。
展开
-
Linux Shell 脚本交互输入
一.常规输入:回车、Yes/No等 1.cat + 文件 + 管道符 cat commend.txt | apt-get install ssh 2.echo + 管道符 echo -e "Y" | apt-get remove ssh echo -e 处理转义字符 3.expect安装: sudo apt-get install expect 编...原创 2021-11-19 22:08:01 · 8241 阅读 · 0 评论 -
lcov覆盖率进阶:提高分支覆盖率技巧
行覆盖率1.std::string/std::vector默认初始化导致行覆盖不上,请使用有参数初始化。即std::string camera_model_name;//不能行覆盖 std::vector<double_t> r_s2b_vec;//不能行覆盖std::string camera_model_name{""};//行覆盖,但产生两个分支,仅覆盖1个 std::vector<double_t> r_s2b_vec{0LU};//行覆盖,但产生两原创 2021-10-11 23:34:16 · 4408 阅读 · 0 评论 -
c++获取项目路径的两种方式
在某些特定的条件运行时不能使用局部地址,例如ci流程等,这就要求读取文件时必需使用全局地址,但是在项目路径不定的情况下很难知道某个文件的全局地址,目前存在两种获取项目路径的方式,其中一种更适用于ci流程。一、Cmake传参:适用于简单场景在Cmake中,很容易知道项目的地址,例如${PROJECT_SOURCE_DIR}可以在cmakelists中,将该值赋值给变量,例如MAIN_PATH:set(MAIN_PATH ${PROJECT_SOURCE_DIR})然后新建xxx.原创 2021-10-11 23:15:57 · 3927 阅读 · 1 评论 -
lcov分支覆盖率的分析和总结
覆盖率显示规则:一行从左到右分别万代表:1.代码行号(空白代表分支显示不过来产生换行)2.分支覆盖情况 3.该行调用次数 4.该行源代码以及行覆盖情况其中,分支覆盖情况详细介绍如下:中括号代表生成的一对子分支,+代表该子分支被覆盖,-代表该子分支未覆盖,但对应的另一分支被覆盖,#代表两个子分支均未被覆盖。以if(condition)为例,如果该condition没有子条件,即不是其他条件"与"、"或"产生,那么会产生两个分支,即condition == true 和 condition ==原创 2021-10-05 15:14:37 · 6048 阅读 · 6 评论 -
lcov使用文档
1.安装到usr/local下git clone https://github.com/linux-test-project/lcov.gitcd lcovsudo make install直接在主目录make。2. 简易使用2.1 在待测试覆盖率的项目CmakeLists.txt链接lcov:添加set(CMAKE_CXX_FLAGS "-g -O0 -Wall -fprofile-arcs -ftest-coverage") 或 set(CMAKE原创 2021-09-13 12:01:53 · 1812 阅读 · 0 评论 -
gtest/gmock 安装和使用
gtest :google 开源的跨平台C++单元测试框架,是为在不同平台上为编写C++测试而生成的。它提供了丰富的断言、致命和非致命判断、参数化、”死亡测试”等等。不推荐将gtest直接安装到/usr/local下,当多个项目的gtest有不同配置时,将会产生难以debug的问题。所以官方推荐将gtest作为每个项目的子项目单独管理。用起来和普通的库差不多,只需要设置include & 修改 main 文件 指定 头文件 源文件 目录 指定 连接的库安装方式1:作为独立项原创 2021-09-13 11:45:20 · 2179 阅读 · 0 评论