我正在使用IAR EWARM的cspybat为我使用Unity的嵌入式代码运行一些单元测试。我希望我的构建服务器有一种简单的方法来确定单元测试是通过了还是失败了。如果我的单元测试失败,有没有办法让CSPY返回一个非零的错误代码?我已经尝试更改main()中的返回值,但未做任何更改。有没有我可以调用的函数来强制返回错误?
我的cspybat批处理文件如下所示:
"C:\Program Files (x86)\IAR Systems\Embedded Workbench 7.4\common\bin\cspybat" -f "C:\Work\Sandbox\ST\stmicroeval\_iar_ewarm_project\settings\Project.UnitTest.general.xcl" --backend -f "C:\Work\Sandbox\ST\stmicroeval\_iar_ewarm_project\settings\Project.UnitTest.driver.xcl" 发布于 2016-10-04 17:21:08
很遗憾,我不会。
我已经解决了这个问题,将" exit“替换为一个打印特定模式的函数,以及退出代码。然后,我将对cspybat的调用封装到一个脚本中,该脚本1)剥离额外输出的输出,2)使用所需的退出代码退出。
发布于 2020-12-05 02:23:39
现在是2020年后期,他们仍然没有提供这样做的机制。
我们通过在内容中包含一个宏文件来解决这个问题:
execUserExit()
{
__message "program exited with __exit_value = ", __exit_value:%d ;
}并且在代码中有我们自己的出口变量:
extern "C" int __exit_value=0xff;这是我们在调用exit()之前设置的(尽管您可以只编写自己版本的exit())
这使得调试器总是打印一些东西,即使程序在启动时崩溃。
然后我们使用python包装器进行解析:
pattern = "__exit_value =\s([\-|0-9|a-f|A-F|x]*)"
retvalue = int(re.findall(pattern,process.stdout)[0])https://stackoverflow.com/questions/39532551
复制相似问题