我想并行运行一个测试,直到它在CTest中失败。我该如何实现这一点?
我们可以假设测试大约每10000次失败一次,并且机器上有100个以上的内核来回答这个问题。
此外,我们还可以假设测试本身有一些内部等待,即使在单个内核上,您也可以并行运行10个测试,从而使总运行时间可能缩短1000倍。
这里的问题是并行运行CTest的正常方式是用途:
ctest . --repeat until-fail:100 -j100 -R tests_
字符串
这在运行成百上千个测试时非常有效。当你想要并行运行一个单一的测试时,我还没能做到。
ctest . --repeat until-fail:10000 -j100 -R a_specific_test
型
然后,该测试连续运行10000次,大约需要3小时。也不可能再现片状,因为许多片状测试需要系统处于一定的负载下。
1条答案
按热度按时间pbgvytdp1#
创建1000次相同的测试
我不知道该如何优雅地解决这个问题。但这里有一个可能的解决方案。
基本上做相同的测试X次,并只是正则表达式。
字符串
您要测试的主要内容是
COMMAND
,它对于所有flaky
测试都是常数。然后,只需运行ctest和
flaky
的正则表达式。型