加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

单元/集成测试时间敏感的C代码

发布时间:2020-12-16 06:56:56 所属栏目:百科 来源:网络整理
导读:有没有办法创建单元/集成测试,不仅测试正确性,还测试步骤是否在特定时间段内完成? 例如: // MyTestSuite.h#include cxxtest/TestSuite.hclass MyTestSuite : public CxxTest::TestSuite{ public: void testTimeCriticalFunction(void) { TS_ASSERT_EQUALS(
有没有办法创建单元/集成测试,不仅测试正确性,还测试步骤是否在特定时间段内完成?

例如:

// MyTestSuite.h
#include <cxxtest/TestSuite.h>
class MyTestSuite : public CxxTest::TestSuite
{
    public:
    void testTimeCriticalFunction(void)
    {
        TS_ASSERT_EQUALS(timeCriticalFunction(),correctValue);

        // timeCriticalFunction() must correctly return within 5 milliseconds
        TS_ASSERT_DID_COMPLETE_WITHIN_MILLISECONDS(timeCriticalFunction(),5);
    }
}

虽然该示例只是一个函数,但如果有一种方法将它们链接在一起以对较长的序列执行集成测试,那么如果每个步骤在指定的时间内完成并且在指定的时间内完成,则测试将返回true,这将是理想的.整个小组.

亚毫秒精度是首选,但典型的时间要求在5-15毫秒之间.

更新1:目标平台是UNIX(Mac OS X).精确的时序要求是由问题域(通信)引起的.

更新2:鉴于评论,假设我专注于集成测试.

解决方法

通常,以较小的粒度放置特定的时序要求并不是一个好主意.由于您使用的是OSX,因此您最多只能拥有一个软实时系统. (如果您有严格的实时要求,OSX等通用操作系统不是答案.)可用的CPU / CPU内核数量有限.即使您的进程/进程组作为具有非常高优先级的超级用户运行,操作系统也可以在某种程度上随意决定让您的线程进入休眠状态.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读