我们已经创建了一个通用的线程框架来管理我们在应用程序中使用线程的方式。有没有像gtest或cppunit这样的框架,只关注单元测试线程,线程池,线程队列等?
现在我只是手动执行一些我知道应该覆盖的步骤,并在代码中进行检查以确保满足某些条件(如值未损坏)b / ca共享资源同时被访问一次两个或多个线程)如果我无法创建明确的检查,那么我会逐步调试调试器,但这似乎是在1990年代进行的测试。
我想更系统地测试线程框架的功能,因为它的内部功能可能与所有线程框架不同,但我也想测试所有线程框架应该具有的常用功能(比如没有死锁,不破坏数据也称数是他们应该是什么,等等......)。
任何建议都将不胜感激。
答案 0 :(得分:1)
如果您的线程是在OpenMP上构建的,则可以使用VivaMP进行静态检查。
但是你想要用单元测试进行动态检查。我不知道有任何现有的框架用于此目的。您可以使用众多单元测试框架中的一个来完成自己的工作,但是很难让它变得健壮。英特尔有一套可能感兴趣的并行开发工具,但我从未使用它们。 They say他们可以在Visual Studio中帮助进行单元测试。
答案 1 :(得分:1)
如果你编写了一个线程库,你必须自己调试它。线程库不像通用程序= D那样通用,因此您不会为特定问题找到特定的单元测试框架:D
之后的免责声明。如果您在Solaris / OSX或FreeBSD上运行.... dtrace会使您对库进行单元测试变得微不足道。