有没有自动化单元测试框架可以用于测试内部线程框架?

6
我们已经创建了一个通用的线程框架来管理应用程序中线程的使用方式。是否有像gtest或cppunit这样专注于单元测试线程、线程池、线程队列等的框架?
目前,我只是手动执行一些步骤,并在代码中进行检查以确保满足某些条件(例如值未被损坏,因为共享资源同时被两个或多个线程访问)。如果我不能创建明确的检查,则通过调试器进行步进,但这似乎像是20世纪90年代的测试方法。
我想更系统地测试线程框架的功能,包括可能不同于所有线程框架的内部功能,但我也想测试所有线程框架都应该具有的常见功能(例如不出现死锁,不破坏数据即计数应该是正确的等)。
欢迎提供任何建议。
2个回答

1

如果您的线程是基于OpenMP构建的,您可以使用VivaMP进行静态检查。

但是,如果您想要使用单元测试进行动态检查。我不知道是否有任何现有的框架可用于此目的。您可以使用其中一个众多的单元测试框架来创建自己的框架,但很难使其稳健。英特尔拥有一套并行开发工具,可能会引起您的兴趣,但我从未使用过。他们说他们可以在Visual Studio内帮助进行单元测试。


英特尔并行工作室表现不错,但遗憾的是非评估版本要花费800美元以上。 - Brian T Hannan

1
如果您编写线程库,则必须自行调试。 线程库不像通用程序 =D 那样通用,因此您不会找到特定于问题的单元测试框架 :D
尽管有此免责声明。 如果您正在运行 Solaris / OSX 或 FreeBSD.... dtrace 将使单元测试变得轻松。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接