是否有在Apache C模块上运行单元测试的框架?

时间:2008-11-28 14:32:52

标签: c unit-testing apache testing cunit

我即将对现有的Apache C模块进行一些更改,以修复一些可能的安全漏洞和一般的不良做法。但是,代码的功能必须保持不变(除非修复错误)。标准回归测试的东西似乎是有序的。我想知道是否有人知道在代码中运行一些回归单元测试的好方法。我正在考虑使用C-Unit的方法,但是对于Apache APR和状态结构的所有关系,我想知道是否有一种很好的方法来测试它。是否有任何预先构建的框架可以与C-unit一起使用?

由于

彼得

2 个答案:

答案 0 :(得分:7)

我一直在考虑回答这个问题,但是想到其他人可能会得到一个更好的答案,因为我的相当不满意:不,我不知道任何这样的单元测试框架。

我认为你最好的办法是尝试重构你的C模块,使它对httpd代码库的依赖包含在一个非常薄的粘合层中。我不会过分担心APR的依赖性,它可以很容易地链接到您的单元测试代码中。这就像使用请求记录一样,你应该尝试抽象出来。

我会走得太远,并建议如果代码被怀疑包含安全漏洞和不良做法,那么这样的重构是个好主意。这通常是一项非常重要的工作。

您可能还会考虑运行集成测试而不是单元测试(理想情况是两者),即从服务器提出一组请求和预期响应,并运行程序来比较实际响应和预期响应。

所以,不是你一直在寻找的回应,而你自己也可能想到了这条路线。但至少我可以从经验中告诉你,如果出于商业原因无法用新的东西替换模块,那么重构它的可测试性可能会在较长期内得到回报。

答案 1 :(得分:1)

花了一些时间来寻找你的互联网作为一个我自己很好奇的问题。发现一篇维基文章说明了

http://cutest.sourceforge.net/

用于apache可移植c运行时测试。可能值得一试。