Chromium 工程源码是如何测试的

本文探讨Chromium工程如何通过单元测试和fuzz testing确保代码质量。Chromium使用gtest/gmock进行单元测试,并基于libFuzzer进行fuzz测试,借助Dr.Memory/Dr.Fuzz检测内存错误。此外,还介绍了Chromium的性能测试框架Telemetry,用于自动化测试和性能数据分析。
摘要由CSDN通过智能技术生成

Chromium 这样庞大的工程,涉及超多的模块依赖,如何保证代码质量?源码中随处可见 xxx_unittest.cc 和 xxx_fuzzer.cc 这样的文件,它们是如何组织的呢?项目的每一个 Commit 需要执行哪些测试,流程是什么?Chromium 做了哪些基础的工作支持繁琐又重要的测试工作,我们是否可以借鉴用到自己的项目中?

带着这些问题,开始阅读源码~ 先看一下 src 目录下有个 testing 的文件夹,里面存放了测试相关的基础代码和脚本:

Chromium 工程做了哪些测试呢?这里列举一下我从源码看到的,可能不全面。

单元测试

项目中所有模块都有大量的单元测试,命名规则为 xxx_unitest.cc, 每个模块的单元测试文件会放到一个 target 里编译, 比如下图就是 net 模块的单元测试 target。C/C++ 部分的单元测试是基于 gtest/gmock 这个框架的,可以看出来 Chromium 的 committer 花费了大量的时间保证大部分代码都是经过单元测试的。这个值得我们学习,我在 Chromium 跨平台基础库:多线程 中提到过,单元测试一方面保证代码质量,另一方面单元测试是很好的 code example,方便别人了解如何使用我们的代码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值