1

我正在编写一些函数,这些函数将在生产代码中使用文件描述符参数调用。

在测试期间,如何“注入”一些东西,让我确认该函数对 进行了预期的调用lseekwrite等等?

4

2 回答 2

2

根据您的操作系统,最好的解决方案可能是编写一个“shim”库,该库动态链接并拦截对您正在寻找的标准函数的调用,向测试工具报告带外。libtrash库是一个很好的例子,是如何工作的,并且代码是可读的;unlink它通过拦截(一些)调用并将链接移动到垃圾箱目录,为 Linux 实现了一个“垃圾箱” 。

于 2013-08-23T12:30:27.317 回答
2

由于您使用的是 Linux,因此您可以简单地定义要在测试程序中存根的函数。链接器会将这些函数视为本地函数,并忽略那些将动态加载的函数。
我使用 gcc 在 Linux 和 Solaris 上成功使用了它。

确保存储调用它们的参数,而不是将断言放在存根函数中,这将使它们更可重用。

于 2013-08-29T06:46:18.417 回答