带有禁用Ruby字符的V93k测试方法参数名称

时间:2017-08-31 18:14:55

标签: origen-sdk

我们使用的自定义V93K测试方法的参数名称包含Ruby中禁止的字符。例如:

testmethodparameters

tm_1:
  "ComponentRule.ComponentRuleNameVariable" = "ComponentRuleMinConfig";
  "ComponentRule.ExecuteRules" = "true";
  "ComponentRule.RuleGroupNameVariable" = "ComponentRuleGroupName";
  "ComponentRule.ScriptNameVariable" = "ComponentRuleScriptName";
  "Softset.NumberOfPatternInfo" = "1";
  "Softset.PatternInfo0.EdgesPerVector" = "2";

在查看Origen V93k docs时,我发现Origen会将Ruby样式的变量转换为V93k所需的驼峰情况,但是它会处理一个具有实际周期的变量吗?我正在使用Origen :: Parameters :: Set类存储它们,但要检索正确的参数名称,我必须编写一些参数名称flattener'方法。

params.bist.Softset.PatternInfo0.EdgesPerVector = "2"
params.bist.Softset.PatternInfo0.FuseProgramming = "false"

在我写这个方法之前,Origen是否已经有办法处理这个不属于文档的案例?如果没有,PR会受到好评吗?

THX

1 个答案:

答案 0 :(得分:0)

它将处理C ++参数名称中的句点,the example here包含一个名为“An.UnusualName”的参数。

当你通过这样的字符串提供参数名称时,它会逐字呈现到测试流程中:

tm_1:
  "An.UnusualName" = "blah"

要在界面中为此分配值,然后您需要将句点转换为下划线,Origen将创建完全低级和强调的访问者以及仅将句点转换为下划线的一个:

t = test_methods.my_lib.my_test
t.an_unusual_name = "blah"
t.An_UnusualName                # => "blah"

它会增加显着的复杂性来动态生成填充对象以支持t.An.UnusualName = "blah",我认为这不值得 - 现有的API对人类来说很好。

我可以看到,支持带有句点的名称可能更适合脚本编写。 提供所需内容的更简单方法是添加set_param方法或类似于this class

t.set_param("An.UnusualName", "blah")