【问题标题】:Are there any automated unit testing frameworks for testing an in-house threading framework?是否有任何用于测试内部线程框架的自动化单元测试框架?
【发布时间】:2010-01-13 20:14:27
【问题描述】:

我们创建了一个通用线程框架来管理我们希望如何在应用程序中使用线程。有没有像 gtest 或 cppunit 这样只专注于单元测试线程、线程池、线程队列等的框架?

现在我只是手动完成一些我知道我应该涵盖的步骤并检查代码以确保满足某些条件(比如值没有损坏 b/c 共享资源同时被访问一次两个或多个线程)如果我无法创建明确的检查,那么我会逐步调试调试器,但这似乎是在 1990 年代进行的测试。

我想更系统地测试线程框架的功能,因为它的内部功能可能与所有线程框架不同,但我也想测试所有线程框架应该具有的通用功能(比如不死锁,不破坏数据,也就是计数应该是什么,等等......)。

任何建议将不胜感激。

【问题讨论】:

    标签: c++ unit-testing frameworks multithreading


    【解决方案1】:

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

    但是您希望通过单元测试进行动态检查。我不知道有任何用于此目的的现有框架。您可以使用现有的众多单元测试框架之一推出自己的测试框架,但很难使其健壮。英特尔有一套可能感兴趣的并行开发工具,但我从未使用过它们。 They say,他们可以帮助在 Visual Studio 中进行单元测试。

    【讨论】:

    • Intel Parallel Studio 运行良好,但获得非评估版本的价格为 800 美元以上。
    【解决方案2】:

    如果您编写线程库,则必须自己调试。线程库不像通用程序那样通用=D,因此您不会为您的特定问题找到特定的单元测试框架:D

    在免责声明之后。如果您在 Solaris / OSX 或 FreeBSD 上运行......dtrace 将使对您的库进行单元测试变得微不足道。

    【讨论】:

      猜你喜欢
      • 2011-04-16
      • 2012-02-25
      • 1970-01-01
      • 1970-01-01
      • 2016-07-09
      • 1970-01-01
      • 1970-01-01
      • 2013-02-03
      • 1970-01-01
      相关资源
      最近更新 更多