单元/集成测试时间敏感的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内核数量有限.即使您的进程/进程组作为具有非常高优先级的超级用户运行,操作系统也可以在某种程度上随意决定让您的线程进入休眠状态.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |