0

我正在寻找处理意外结束测试的函数,但似乎找不到它。我知道应该有一个,因为系统错误(例如 os11)和调试中止由 Specman 处理。

我们在并行运行多个测试时使用信号量,但是每当由于系统错误或调试会话期间测试没有正确结束时,释放信号量的函数就不会执行,迫使我们手动释放它,有时完全重新启动 Specview。我需要找到一个可以扩展的函数(或多个函数),这样我就可以添加向它们释放信号量的代码。

谢谢!

4

3 回答 3

1

您可能正在寻找“配置运行 error_command=command_string”。在字符串中你可以调用任何方法。

问题是,尽管它在大多数提到的情况下调用,包括由 Specman 处理的 os11,但可能不会在其他一些实际情况下调用,例如未处理的异常、由另一个工具处理的严重异常、致命错误、信号 -9、等等

所以“配置运行”可以显着改善你的情况,但不会为 Specman 不能优雅处理的情况提供解决方案。为此,您可能需要 Specman 之外的一些控制机制。

于 2014-08-17T22:46:56.060 回答
0

特别是对于中止,您还可以使用宏来解决它,例如:

define <my_abort'command> "my_abort" as {
    specman("do_my_special_things()");
    specman("abort");
};

它对 GUI 按钮没有帮助,但my_abort在命令提示符下键入就可以了。

于 2014-08-25T11:26:06.457 回答
0

Specman 没有用于中止调试会话的处理程序。Cadence 发布了一个补丁,可能会在未来的版本中找到它的方式。

于 2014-09-29T11:41:49.477 回答