SystemC单元测试是否需要分叉?

时间:2017-03-31 16:28:30

标签: systemc

我开始使用SystemC,并研究中提到的例子 Using existing unit test frameworks with SystemC

我真的不明白为什么需要分叉,特别是当一个分叉只等待另一个分叉时。内核中是否存在需要这种多线程(特别是事件处理)的东西? (换句话说:我需要这种类型的处理,仅在我需要并发测试时,或者在更简单的情况下)

另一个问题是,在链接的答案中,我在开头看到了徽标

compile 'com.android.support:design:25.2.0'
compile 'com.android.support:recyclerview-v7:25.2.0'
compile 'com.android.support:appcompat-v7:25.2.0'

而在我的情况下,徽标位于输出的末尾

 SystemC 2.2.0 --- Feb 24 2011 15:01:50
        Copyright (c) 1996-2006 by all Contributors
                    ALL RIGHTS RESERVED
Running main() from gtest_main.cc

这只是因为版本不同,或者是预期的及时行为?

2 个答案:

答案 0 :(得分:1)

SystemC内核以其当前形式设计的方式,一旦您使用sc_start()启动SystemC模拟并停止了,它就不能完全支持模拟模块的动态创建/删除使用sc_stop()进行模拟需要完全破坏SystemC模拟上下文。

请查看更新的答案以获得更好的解决方案here 注意:建议为不同的模拟上下文设置单独的可执行文件,因为模拟器不保证在这种环境中进行模拟的结果,请参阅SystemC LRM以获取更多详细信息。

至于SystemC徽标差异,原因是系统中stdoutstderr的缓冲不同。每次执行二进制文件时都会看到不同的结果。 (如果它是一致的,那么谷歌测试框架可能会在内部处理stdoutstderr流。)

答案 1 :(得分:0)

我会使用注册表设计模式。我已经在Using existing unit test frameworks with SystemC

中发布了如何使用SystemC和GoogleTest执行此操作的方法