1

我们使用的自定义 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 文档时,我看到 Origen 会将 Ruby 样式的变量转换为 V93k 所需的驼峰式大小写,但它会处理其中包含实际句点的变量吗?我使用 Origen::Parameters::Set 类来存储它们,但是要检索正确的参数名称,我必须编写一些“参数名称扁平化器”方法。

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

在我编写上述方法之前,Origen 是否已经有办法处理这种情况,这不是文档的一部分?如果没有,PR 是否会受到好评?

谢谢

4

1 回答 1

0

它将处理 C++ 参数名称中的句点,此处的示例包含一个名为“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 方法或与此类类似的方法:

t.set_param("An.UnusualName", "blah")
于 2017-09-01T08:20:38.413 回答