origen_testers 0.51.4 → 0.52.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/config/commands.rb +1 -1
- data/config/version.rb +2 -2
- data/lib/origen_testers/atp/flow.rb +39 -0
- data/lib/origen_testers/atp/flow_api.rb +2 -2
- data/lib/origen_testers/smartest_based_tester/base/flow.rb +61 -17
- data/lib/origen_testers/smartest_based_tester/base/generator.rb +5 -1
- data/lib/origen_testers/smartest_based_tester/base/processors/extract_flow_vars.rb +18 -1
- data/lib/origen_testers/smartest_based_tester/base/test_method.rb +25 -3
- data/lib/origen_testers/smartest_based_tester/base/variables_file.rb +1 -1
- data/lib/origen_testers/smartest_based_tester/base.rb +28 -4
- data/lib/origen_testers/smartest_based_tester/v93k_smt8/flow.rb +69 -5
- data/lib/origen_testers/smartest_based_tester/v93k_smt8/limits_workbook.rb +28 -26
- data/lib/origen_testers/smartest_based_tester/v93k_smt8/templates/template.flow.erb +3 -0
- data/lib/origen_testers/smartest_based_tester/v93k_smt8/test_suite.rb +111 -4
- data/lib/origen_testers/stil_based_tester/base.rb +77 -24
- data/lib/origen_testers/test/custom_test_interface.rb +36 -2
- data/lib/origen_testers/test/interface.rb +123 -0
- data/program/components/_prb1_main.rb +9 -0
- data/program/custom_tests.rb +3 -0
- data/program/flow_control.rb +37 -8
- data/templates/origen_guides/pattern/stil.md.erb +17 -0
- data/templates/origen_guides/program/flowapi.md.erb +26 -1
- data/templates/origen_guides/program/v93k.md.erb +14 -0
- data/templates/origen_guides/program/v93ksmt8.md.erb +25 -0
- metadata +3 -3
@@ -280,6 +280,9 @@ test :test2, if_flag: :my_pass_flag
|
|
280
280
|
unless_flag :my_pass_flag do
|
281
281
|
test :test3
|
282
282
|
end
|
283
|
+
|
284
|
+
log "Example of manually unsetting flag"
|
285
|
+
test :test4, on_pass: { unset_flag :my_custom_flag1 }
|
283
286
|
~~~
|
284
287
|
|
285
288
|
Note that flag names will usually be forced to uppercase, this is to institute a convention that
|
@@ -303,6 +306,14 @@ unless_enable "$MCEn_test" do
|
|
303
306
|
end
|
304
307
|
~~~
|
305
308
|
|
309
|
+
For custom environment libraries, there might be a need to reference a flag without using the native
|
310
|
+
flag API. `add_flag` will allow the flow and sub-flow to have access to the flag without adding to the flow.
|
311
|
+
|
312
|
+
~~~ruby
|
313
|
+
log "Example of manually adding a flag to a flow without calling the flag"
|
314
|
+
add_flag :my_custom_flag2
|
315
|
+
~~~
|
316
|
+
|
306
317
|
In all cases the `$` will be removed from the final flag name that appears in the test program.
|
307
318
|
|
308
319
|
Whenever you set a flag or automation initializes a variable, you can remove the variable from initialization flow by labeling as a global flag
|
@@ -352,7 +363,7 @@ end
|
|
352
363
|
~~~
|
353
364
|
|
354
365
|
|
355
|
-
#### Flow Loops for V93k
|
366
|
+
#### Flow Loops for V93k
|
356
367
|
Use flow loop control to permit re-running tests without using additional sequence labels.
|
357
368
|
|
358
369
|
~~~ruby
|
@@ -381,7 +392,21 @@ loop from: 0, to: 5, var: '$LOOP_VARIABLE', test_num_inc: 2 do
|
|
381
392
|
end
|
382
393
|
~~~
|
383
394
|
|
395
|
+
You can also provide a variable starting point:
|
396
|
+
~~~ruby
|
397
|
+
loop from: '$TEST_VARIABLE', to: 5, var: '$LOOP_VARIABLE' do
|
398
|
+
func :test_myloop6, number: 56600
|
399
|
+
end
|
400
|
+
~~~
|
401
|
+
|
384
402
|
Decrementing loops, having `from:` value > `to:` value and using negative `step:`, is also supported.
|
403
|
+
|
404
|
+
##### Loop Rules For Each Environment
|
405
|
+
|
406
|
+
`SMT7` cannot support a variable stop location. Only the `from:` parameter is allowed to be a variable.
|
407
|
+
|
408
|
+
`SMT8` cannot have a step other than -1 or 1. The limitations of the range flow restrict those steps.
|
409
|
+
The `to:` parameter can be a flow variable just like `from:`.
|
385
410
|
|
386
411
|
|
387
412
|
|
@@ -74,6 +74,20 @@ or to assign a spec in SMT8:
|
|
74
74
|
t.spec = 'my_spec_min'
|
75
75
|
~~~
|
76
76
|
|
77
|
+
The default namespace and folder paths are determined by your environment with `tester.package_namespace` and
|
78
|
+
`tester.spec_path`/`tester.seq_path` respectively. If you need to override these values for specific test suites
|
79
|
+
you have the following available:
|
80
|
+
|
81
|
+
~~~ruby
|
82
|
+
# Overrides spec namespace and folder path
|
83
|
+
t.spec_namespace
|
84
|
+
t.spec_path
|
85
|
+
# Overrides sequence and pattern namespace
|
86
|
+
t.seq_namespace
|
87
|
+
# Overrides sequence folder path
|
88
|
+
t.seq_path
|
89
|
+
~~~
|
90
|
+
|
77
91
|
If the test method provides parameters, you can set them in the same way. As a convenience,
|
78
92
|
Origen will automatically work out whether the reference is to a parameter of the test suite
|
79
93
|
or of the test method, and will assign it accordingly.
|
@@ -103,10 +103,35 @@ flow Main {
|
|
103
103
|
}
|
104
104
|
~~~
|
105
105
|
|
106
|
+
#### Auxiliary Flows
|
106
107
|
|
108
|
+
SMT8 utilizes auxiliary flows to perform recurring actions. `add_auxiliary_flow` API exists to symlink to a predefined auxiliary flow.
|
109
|
+
This API does not allow variables to be passed to or from the auxiliary flow since they are stand alone flows.
|
107
110
|
|
111
|
+
~~~ruby
|
112
|
+
add_auxiliary_flow :POWERDOWN, 'testflow.POWERDOWN'
|
113
|
+
~~~
|
114
|
+
|
115
|
+
~~~java
|
116
|
+
flow Main {
|
117
|
+
setup {
|
118
|
+
flow POWERDOWN calls testflow.POWERDOWN {}
|
119
|
+
}
|
108
120
|
|
121
|
+
execute {
|
122
|
+
POWERDOWN.execute();
|
123
|
+
}
|
124
|
+
}
|
125
|
+
~~~
|
109
126
|
|
127
|
+
#### Flow Variable Grouping
|
110
128
|
|
129
|
+
Sub-flow variable passing causes variables before and after the execution call to populate the flow.
|
130
|
+
If you wish to have a collapse-able block for the variables, you need to set the flow_variable_grouping variable to true.
|
131
|
+
|
132
|
+
~~~
|
133
|
+
# add this line to your origen_site_config.yml
|
134
|
+
flow_variable_grouping: true
|
135
|
+
~~~
|
111
136
|
|
112
137
|
% end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: origen_testers
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.52.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Stephen McGinty
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-
|
11
|
+
date: 2024-04-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: origen
|
@@ -601,7 +601,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
601
601
|
- !ruby/object:Gem::Version
|
602
602
|
version: '0'
|
603
603
|
requirements: []
|
604
|
-
rubygems_version: 3.
|
604
|
+
rubygems_version: 3.2.3
|
605
605
|
signing_key:
|
606
606
|
specification_version: 4
|
607
607
|
summary: This plugin provides Origen tester models to drive ATE type testers like
|