Linux内核开发人员如何在本地和提交代码之后测试他们的代码?他们是否使用某种单元测试和构建自动化?测试计划?
发布于 2010-07-05 15:26:27
Linux内核非常强调社区测试。
通常,任何开发人员在提交之前都会测试他们自己的代码,而且他们通常会使用来自Linus的内核的开发版本,或者其他与他们的工作相关的项目中的一个不稳定/开发树。这意味着他们经常同时测试他们的变化和其他人的变化。
在正式的测试计划中通常没有太多的内容,但是在将特性合并到上游树之前,可能需要进行额外的测试。
正如迪安所指出的,还有一些自动化测试,即linux测试项目和核自测试 (很好的概述)。
开发人员通常也会编写目标为测试更改的自动化测试,但我不确定是否有一种(经常使用的)机制来集中收集这些临时测试。
当然,这在很大程度上取决于内核的哪些区域--对于新的网络驱动程序所做的测试与替换核心调度算法时所做的测试非常不同。
发布于 2012-06-07 12:31:50
当然,内核本身及其部分在发布之前会进行测试,但是这些测试只涵盖了基本的功能。有一些测试系统执行Linux内核的测试:
Linux测试项目 (LTP)向开源社区提供测试套件,以验证Linux的可靠性和稳定性。LTP测试套件包含一组用于测试Linux内核和相关特性的工具。
自动测试-a框架,用于全自动测试。它主要是为了测试Linux内核而设计的,尽管它对于许多其他用途很有用,比如限定新硬件、虚拟化测试以及Linux平台下的其他通用用户空间程序测试。它是GPL下的一个开源项目,被许多组织使用和开发,包括Google、IBM、Red和其他许多组织。
还有一些主要的GNU/Linux发行公司开发的认证系统。这些系统通常检查完整的GNU/Linux发行版,以确保与硬件的兼容性。有Novell,Red,Oracle,Canonical和Google开发的认证系统。
还有一些系统用于对Linux内核进行动态分析:
Linux 是一个内存泄漏检测器,包含在Linux内核中。它提供了一种检测可能的内核内存泄漏的方法,其方式类似于跟踪垃圾收集器,其不同之处在于孤儿对象没有被释放,而是仅通过/sys/内核/调试/kmem外泄来报告。
Kmemcheck捕获动态分配的每个读和写内存(即使用kmalloc())。如果读取以前未写入的内存地址,则会将消息打印到内核日志。它也是Linux内核的一部分。
故障注入框架(包括在Linux内核中)允许将错误和异常注入到应用程序的逻辑中,以获得更高的系统覆盖率和容错能力。
发布于 2010-07-05 06:59:56
Linux内核开发人员如何在本地和提交代码之后测试他们的代码? 他们是否使用某种单元测试和构建自动化?
从经典意义上说,不是。
例如,Ingo正在运行以下工作负载:
每个构建失败、引导失败、错误或运行时警告都会被处理。24/7.乘以几个盒子,你就能发现很多问题。
测试计划?
不是的。
可能有人误解说,有一个中央测试设施,但没有。每个人都做他/她想做的事。
https://stackoverflow.com/questions/3177338
复制相似问题