将params传递给V93K test_suites.add方法

时间:2017-09-09 13:52:42

标签: origen-sdk

这是参考此question。我检查了我们的测试界面,我们只是将V93k主要参数传递给test_suites.add方法。

  V93K_PRIMARIES = [:lev_equ_set, :lev_spec_set, :timset, :tim_equ_set, :tim_spec_set, :seqlbl, :levset]
  primary_tm_params = {}.tap do |primary_hash|
    V93K_PRIMARIES.each do |param|
      primary_hash[param] = tm_params.delete(param) unless tm_params[param].nil?
    end
  end
  # Create the test suite
  t = test_suites.add(test_name, primary_tm_params)
  t.test_method = test_methods.amd93k.send(options[:tm].to_sym, tm_params)
  V93K_PRIMARIES.each do |primary|
    t.send("#{primary}=", primary_tm_params[primary]) unless primary_tm_params[primary].nil?
  end
  # Insert the test into the flow
  test(t, tm_params)

当我设置断点时,我确实看到它们丢失了。他们在更新代码之后:

 :ip=>:L2,
 :testmode=>:speed,
 :cond=>:pmax,
 :if_failed=>:cpu_pmin,
 :testtype=>:cpu,
 :test_ip=>:bist,
 :tm=>"Bist"}

这是原始问题中原始两个测试生成的.tf文件:

      run_and_branch(cpu_L2_speed_pmin_965EA18)
      then
      {
      }
      else
      {
        @CPU_PMIN_965EA18_FAILED = 1;
      }
      if @CPU_PMIN_965EA18_FAILED == 1 then
      {
        run(cpu_L2_speed_pmax_965EA18);
      }
      else
      {
      }

我认为我们已经弄清楚了,非常感谢!

1 个答案:

答案 0 :(得分:1)

通常的方法是将所有内容传递给flow.test,而不是从流中传递的选项的子集。

它只会对它识别的选项起作用,它们基本上是流控制参数(:id,:if_failed,:unless_enabled等)以及测试和bin编号参数,它只会忽略其余的。