origen_testers 0.13.1 → 0.13.2
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/application.rb +151 -151
- data/config/boot.rb +13 -13
- data/config/commands.rb +85 -86
- data/config/users.rb +18 -18
- data/config/version.rb +8 -8
- data/lib/commands/build.rb +69 -69
- data/lib/commands/run.rb +48 -48
- data/lib/origen_testers.rb +47 -47
- data/lib/origen_testers/api.rb +381 -381
- data/lib/origen_testers/basic_test_setups.rb +105 -105
- data/lib/origen_testers/callback_handlers.rb +59 -59
- data/lib/origen_testers/command_based_tester.rb +45 -45
- data/lib/origen_testers/flow.rb +382 -382
- data/lib/origen_testers/generator.rb +283 -283
- data/lib/origen_testers/generator/identity_map.rb +23 -23
- data/lib/origen_testers/generator/placeholder.rb +11 -11
- data/lib/origen_testers/generator/test_numberer.rb +23 -23
- data/lib/origen_testers/igxl_based_tester.rb +12 -12
- data/lib/origen_testers/igxl_based_tester/base.rb +1100 -1099
- data/lib/origen_testers/igxl_based_tester/base/ac_specsets.rb +79 -79
- data/lib/origen_testers/igxl_based_tester/base/custom_test_instance.rb +169 -169
- data/lib/origen_testers/igxl_based_tester/base/dc_specsets.rb +98 -98
- data/lib/origen_testers/igxl_based_tester/base/edge.rb +60 -60
- data/lib/origen_testers/igxl_based_tester/base/edges.rb +24 -24
- data/lib/origen_testers/igxl_based_tester/base/edgeset.rb +39 -39
- data/lib/origen_testers/igxl_based_tester/base/edgesets.rb +130 -130
- data/lib/origen_testers/igxl_based_tester/base/flow.rb +460 -460
- data/lib/origen_testers/igxl_based_tester/base/flow_line.rb +276 -276
- data/lib/origen_testers/igxl_based_tester/base/generator.rb +607 -607
- data/lib/origen_testers/igxl_based_tester/base/global_specs.rb +83 -83
- data/lib/origen_testers/igxl_based_tester/base/job.rb +75 -75
- data/lib/origen_testers/igxl_based_tester/base/jobs.rb +44 -44
- data/lib/origen_testers/igxl_based_tester/base/level_io_se.rb +59 -59
- data/lib/origen_testers/igxl_based_tester/base/level_supply.rb +39 -39
- data/lib/origen_testers/igxl_based_tester/base/levels.rb +31 -31
- data/lib/origen_testers/igxl_based_tester/base/levelset.rb +110 -110
- data/lib/origen_testers/igxl_based_tester/base/patgroup.rb +109 -109
- data/lib/origen_testers/igxl_based_tester/base/patgroups.rb +38 -38
- data/lib/origen_testers/igxl_based_tester/base/patset.rb +68 -68
- data/lib/origen_testers/igxl_based_tester/base/patset_pattern.rb +56 -56
- data/lib/origen_testers/igxl_based_tester/base/patsets.rb +38 -38
- data/lib/origen_testers/igxl_based_tester/base/patsubr.rb +68 -68
- data/lib/origen_testers/igxl_based_tester/base/patsubr_pattern.rb +56 -56
- data/lib/origen_testers/igxl_based_tester/base/patsubrs.rb +38 -38
- data/lib/origen_testers/igxl_based_tester/base/pinmap.rb +93 -93
- data/lib/origen_testers/igxl_based_tester/base/references.rb +25 -25
- data/lib/origen_testers/igxl_based_tester/base/test_instance.rb +322 -322
- data/lib/origen_testers/igxl_based_tester/base/test_instance_group.rb +66 -66
- data/lib/origen_testers/igxl_based_tester/base/test_instances.rb +212 -212
- data/lib/origen_testers/igxl_based_tester/base/test_instances/custom_til.rb +37 -37
- data/lib/origen_testers/igxl_based_tester/base/timeset.rb +37 -37
- data/lib/origen_testers/igxl_based_tester/base/timesets.rb +49 -49
- data/lib/origen_testers/igxl_based_tester/base/timesets_basic.rb +49 -49
- data/lib/origen_testers/igxl_based_tester/files.rb +43 -43
- data/lib/origen_testers/igxl_based_tester/j750.rb +269 -269
- data/lib/origen_testers/igxl_based_tester/j750/custom_test_instance.rb +32 -32
- data/lib/origen_testers/igxl_based_tester/j750/flow.rb +10 -10
- data/lib/origen_testers/igxl_based_tester/j750/flow_line.rb +19 -19
- data/lib/origen_testers/igxl_based_tester/j750/generator.rb +19 -19
- data/lib/origen_testers/igxl_based_tester/j750/patgroup.rb +9 -9
- data/lib/origen_testers/igxl_based_tester/j750/patgroups.rb +10 -10
- data/lib/origen_testers/igxl_based_tester/j750/patset.rb +9 -9
- data/lib/origen_testers/igxl_based_tester/j750/patset_pattern.rb +18 -18
- data/lib/origen_testers/igxl_based_tester/j750/patsets.rb +10 -10
- data/lib/origen_testers/igxl_based_tester/j750/patsubr.rb +9 -9
- data/lib/origen_testers/igxl_based_tester/j750/patsubr_pattern.rb +18 -18
- data/lib/origen_testers/igxl_based_tester/j750/patsubrs.rb +10 -10
- data/lib/origen_testers/igxl_based_tester/j750/test_instance.rb +746 -746
- data/lib/origen_testers/igxl_based_tester/j750/test_instance_group.rb +9 -9
- data/lib/origen_testers/igxl_based_tester/j750/test_instances.rb +10 -10
- data/lib/origen_testers/igxl_based_tester/j750_hpt.rb +34 -34
- data/lib/origen_testers/igxl_based_tester/j750_hpt/custom_test_instance.rb +32 -32
- data/lib/origen_testers/igxl_based_tester/j750_hpt/flow.rb +9 -9
- data/lib/origen_testers/igxl_based_tester/j750_hpt/flow_line.rb +9 -9
- data/lib/origen_testers/igxl_based_tester/j750_hpt/generator.rb +19 -19
- data/lib/origen_testers/igxl_based_tester/j750_hpt/patgroup.rb +9 -9
- data/lib/origen_testers/igxl_based_tester/j750_hpt/patgroups.rb +9 -9
- data/lib/origen_testers/igxl_based_tester/j750_hpt/patset.rb +9 -9
- data/lib/origen_testers/igxl_based_tester/j750_hpt/patset_pattern.rb +9 -9
- data/lib/origen_testers/igxl_based_tester/j750_hpt/patsets.rb +9 -9
- data/lib/origen_testers/igxl_based_tester/j750_hpt/patsubr.rb +9 -9
- data/lib/origen_testers/igxl_based_tester/j750_hpt/patsubr_pattern.rb +9 -9
- data/lib/origen_testers/igxl_based_tester/j750_hpt/patsubrs.rb +9 -9
- data/lib/origen_testers/igxl_based_tester/j750_hpt/test_instance.rb +599 -599
- data/lib/origen_testers/igxl_based_tester/j750_hpt/test_instance_group.rb +9 -9
- data/lib/origen_testers/igxl_based_tester/j750_hpt/test_instances.rb +9 -9
- data/lib/origen_testers/igxl_based_tester/parser.rb +102 -102
- data/lib/origen_testers/igxl_based_tester/parser/ac_spec.rb +9 -9
- data/lib/origen_testers/igxl_based_tester/parser/dc_spec.rb +33 -33
- data/lib/origen_testers/igxl_based_tester/parser/dc_specs.rb +48 -48
- data/lib/origen_testers/igxl_based_tester/parser/descriptions.rb +339 -339
- data/lib/origen_testers/igxl_based_tester/parser/flow.rb +109 -109
- data/lib/origen_testers/igxl_based_tester/parser/flow_line.rb +203 -203
- data/lib/origen_testers/igxl_based_tester/parser/flows.rb +21 -21
- data/lib/origen_testers/igxl_based_tester/parser/pattern_set.rb +92 -92
- data/lib/origen_testers/igxl_based_tester/parser/pattern_sets.rb +31 -31
- data/lib/origen_testers/igxl_based_tester/parser/test_instance.rb +420 -420
- data/lib/origen_testers/igxl_based_tester/parser/test_instances.rb +24 -24
- data/lib/origen_testers/igxl_based_tester/parser/timeset.rb +13 -13
- data/lib/origen_testers/igxl_based_tester/ultraflex.rb +798 -798
- data/lib/origen_testers/igxl_based_tester/ultraflex/ac_specsets.rb +10 -10
- data/lib/origen_testers/igxl_based_tester/ultraflex/ate_hardware.rb +949 -949
- data/lib/origen_testers/igxl_based_tester/ultraflex/custom_test_instance.rb +36 -36
- data/lib/origen_testers/igxl_based_tester/ultraflex/dc_specsets.rb +10 -10
- data/lib/origen_testers/igxl_based_tester/ultraflex/edge.rb +9 -9
- data/lib/origen_testers/igxl_based_tester/ultraflex/edges.rb +9 -9
- data/lib/origen_testers/igxl_based_tester/ultraflex/edgeset.rb +9 -9
- data/lib/origen_testers/igxl_based_tester/ultraflex/edgesets.rb +10 -10
- data/lib/origen_testers/igxl_based_tester/ultraflex/flow.rb +158 -158
- data/lib/origen_testers/igxl_based_tester/ultraflex/flow_line.rb +19 -19
- data/lib/origen_testers/igxl_based_tester/ultraflex/generator.rb +19 -19
- data/lib/origen_testers/igxl_based_tester/ultraflex/global_specs.rb +10 -10
- data/lib/origen_testers/igxl_based_tester/ultraflex/job.rb +9 -9
- data/lib/origen_testers/igxl_based_tester/ultraflex/jobs.rb +10 -10
- data/lib/origen_testers/igxl_based_tester/ultraflex/level_io_se.rb +9 -9
- data/lib/origen_testers/igxl_based_tester/ultraflex/level_supply.rb +9 -9
- data/lib/origen_testers/igxl_based_tester/ultraflex/levels.rb +9 -9
- data/lib/origen_testers/igxl_based_tester/ultraflex/levelset.rb +10 -10
- data/lib/origen_testers/igxl_based_tester/ultraflex/patgroup.rb +9 -9
- data/lib/origen_testers/igxl_based_tester/ultraflex/patgroups.rb +10 -10
- data/lib/origen_testers/igxl_based_tester/ultraflex/patset.rb +9 -9
- data/lib/origen_testers/igxl_based_tester/ultraflex/patset_pattern.rb +18 -18
- data/lib/origen_testers/igxl_based_tester/ultraflex/patsets.rb +10 -10
- data/lib/origen_testers/igxl_based_tester/ultraflex/patsubr.rb +9 -9
- data/lib/origen_testers/igxl_based_tester/ultraflex/patsubr_pattern.rb +18 -18
- data/lib/origen_testers/igxl_based_tester/ultraflex/patsubrs.rb +10 -10
- data/lib/origen_testers/igxl_based_tester/ultraflex/pinmap.rb +10 -10
- data/lib/origen_testers/igxl_based_tester/ultraflex/references.rb +10 -10
- data/lib/origen_testers/igxl_based_tester/ultraflex/templates/ac_specsets.txt.erb +0 -0
- data/lib/origen_testers/igxl_based_tester/ultraflex/templates/dc_specsets.txt.erb +0 -0
- data/lib/origen_testers/igxl_based_tester/ultraflex/templates/edgesets.txt.erb +0 -0
- data/lib/origen_testers/igxl_based_tester/ultraflex/templates/global_specs.txt.erb +0 -0
- data/lib/origen_testers/igxl_based_tester/ultraflex/templates/jobs.txt.erb +0 -0
- data/lib/origen_testers/igxl_based_tester/ultraflex/templates/levelset.txt.erb +0 -0
- data/lib/origen_testers/igxl_based_tester/ultraflex/templates/pinmap.txt.erb +0 -0
- data/lib/origen_testers/igxl_based_tester/ultraflex/templates/references.txt.erb +0 -0
- data/lib/origen_testers/igxl_based_tester/ultraflex/templates/timesets.txt.erb +0 -0
- data/lib/origen_testers/igxl_based_tester/ultraflex/templates/timesets_basic.txt.erb +0 -0
- data/lib/origen_testers/igxl_based_tester/ultraflex/test_instance.rb +315 -315
- data/lib/origen_testers/igxl_based_tester/ultraflex/test_instance_group.rb +9 -9
- data/lib/origen_testers/igxl_based_tester/ultraflex/test_instances.rb +10 -10
- data/lib/origen_testers/igxl_based_tester/ultraflex/timeset.rb +9 -9
- data/lib/origen_testers/igxl_based_tester/ultraflex/timesets.rb +10 -10
- data/lib/origen_testers/igxl_based_tester/ultraflex/timesets_basic.rb +10 -10
- data/lib/origen_testers/interface.rb +345 -324
- data/lib/origen_testers/memory_style.rb +77 -77
- data/lib/origen_testers/no_interface.rb +7 -7
- data/lib/origen_testers/origen_ext/application/runner.rb +25 -25
- data/lib/origen_testers/origen_ext/generator.rb +54 -54
- data/lib/origen_testers/origen_ext/generator/flow.rb +91 -77
- data/lib/origen_testers/origen_ext/generator/resources.rb +21 -21
- data/lib/origen_testers/origen_ext/pins/pin.rb +78 -78
- data/lib/origen_testers/origen_ext/pins/pin_collection.rb +84 -84
- data/lib/origen_testers/parser.rb +22 -22
- data/lib/origen_testers/parser/description_lookup.rb +62 -62
- data/lib/origen_testers/parser/searchable_array.rb +30 -30
- data/lib/origen_testers/parser/searchable_hash.rb +30 -30
- data/lib/origen_testers/pattern_compilers.rb +116 -116
- data/lib/origen_testers/pattern_compilers/assembler.rb +88 -88
- data/lib/origen_testers/pattern_compilers/job.rb +96 -96
- data/lib/origen_testers/pattern_compilers/ultraflex_pattern_compiler.rb +599 -599
- data/lib/origen_testers/program_generators.rb +62 -62
- data/lib/origen_testers/smartest_based_tester.rb +8 -8
- data/lib/origen_testers/smartest_based_tester/base.rb +576 -567
- data/lib/origen_testers/smartest_based_tester/base/flow.rb +296 -291
- data/lib/origen_testers/smartest_based_tester/base/generator.rb +207 -194
- data/lib/origen_testers/smartest_based_tester/base/pattern_compiler.rb +32 -32
- data/lib/origen_testers/smartest_based_tester/base/pattern_master.rb +69 -69
- data/lib/origen_testers/smartest_based_tester/base/processors.rb +16 -16
- data/lib/origen_testers/smartest_based_tester/base/processors/adjacent_if_combiner.rb +106 -106
- data/lib/origen_testers/smartest_based_tester/base/processors/continue_implementer.rb +39 -39
- data/lib/origen_testers/smartest_based_tester/base/processors/empty_branch_cleaner.rb +21 -21
- data/lib/origen_testers/smartest_based_tester/base/processors/extract_run_flag_table.rb +33 -33
- data/lib/origen_testers/smartest_based_tester/base/processors/extract_set_variables.rb +22 -22
- data/lib/origen_testers/smartest_based_tester/base/processors/flag_optimizer.rb +188 -188
- data/lib/origen_testers/smartest_based_tester/base/processors/if_ran_cleaner.rb +34 -34
- data/lib/origen_testers/smartest_based_tester/base/test_method.rb +178 -164
- data/lib/origen_testers/smartest_based_tester/base/test_methods.rb +77 -73
- data/lib/origen_testers/smartest_based_tester/base/test_methods/ac_tml.rb +33 -33
- data/lib/origen_testers/smartest_based_tester/base/test_methods/base_tml.rb +38 -38
- data/lib/origen_testers/smartest_based_tester/base/test_methods/custom_tml.rb +19 -19
- data/lib/origen_testers/smartest_based_tester/base/test_methods/dc_tml.rb +147 -147
- data/lib/origen_testers/smartest_based_tester/base/test_methods/limits.rb +65 -65
- data/lib/origen_testers/smartest_based_tester/base/test_suite.rb +208 -193
- data/lib/origen_testers/smartest_based_tester/base/test_suites.rb +58 -54
- data/lib/origen_testers/smartest_based_tester/base/variables_file.rb +38 -38
- data/lib/origen_testers/smartest_based_tester/v93k.rb +8 -8
- data/lib/origen_testers/smartest_based_tester/v93k/builder.rb +89 -89
- data/lib/origen_testers/smartest_based_tester/v93k/builder/flow.rb +181 -181
- data/lib/origen_testers/smartest_based_tester/v93k/builder/pattern_master.rb +54 -54
- data/lib/origen_testers/smartest_based_tester/v93k/flow.rb +10 -10
- data/lib/origen_testers/smartest_based_tester/v93k/generator.rb +19 -19
- data/lib/origen_testers/smartest_based_tester/v93k/pattern_compiler.rb +10 -10
- data/lib/origen_testers/smartest_based_tester/v93k/pattern_master.rb +10 -10
- data/lib/origen_testers/smartest_based_tester/v93k/templates/template.aiv.erb +17 -17
- data/lib/origen_testers/smartest_based_tester/v93k/templates/template.pmfl.erb +13 -13
- data/lib/origen_testers/smartest_based_tester/v93k/templates/template.tf.erb +236 -214
- data/lib/origen_testers/smartest_based_tester/v93k/templates/vars.tf.erb +48 -48
- data/lib/origen_testers/smartest_based_tester/v93k/test_method.rb +9 -9
- data/lib/origen_testers/smartest_based_tester/v93k/test_methods.rb +9 -9
- data/lib/origen_testers/smartest_based_tester/v93k/test_suite.rb +9 -9
- data/lib/origen_testers/smartest_based_tester/v93k/test_suites.rb +9 -9
- data/lib/origen_testers/smartest_based_tester/v93k/variables_file.rb +10 -10
- data/lib/origen_testers/test/basic_interface.rb +17 -17
- data/lib/origen_testers/test/block.rb +21 -21
- data/lib/origen_testers/test/custom_test_interface.rb +111 -111
- data/lib/origen_testers/test/dut.rb +295 -295
- data/lib/origen_testers/test/dut2.rb +76 -76
- data/lib/origen_testers/test/dut3.rb +244 -244
- data/lib/origen_testers/test/interface.rb +503 -503
- data/lib/origen_testers/test/nvm.rb +94 -94
- data/lib/origen_testers/timing.rb +368 -368
- data/lib/origen_testers/vector.rb +207 -207
- data/lib/origen_testers/vector_based_tester.rb +41 -41
- data/lib/origen_testers/vector_generator.rb +655 -655
- data/lib/origen_testers/vector_pipeline.rb +302 -302
- data/pattern/bitmap.rb +7 -7
- data/pattern/dc_instr.rb +7 -7
- data/pattern/delay.rb +7 -7
- data/pattern/freq_counter.rb +6 -6
- data/pattern/mem_test.rb +8 -8
- data/pattern/multi_vector.rb +122 -122
- data/pattern/multi_vector_plus1.rb +125 -125
- data/pattern/nvm/j750/add_late_pins.rb +3 -3
- data/pattern/nvm/j750/iterator_postfix_test_x_bx.rb +8 -8
- data/pattern/nvm/j750/iterator_test_x_bx.rb +8 -8
- data/pattern/nvm/j750/j750_halt.rb +159 -159
- data/pattern/nvm/j750/j750_workout.rb +209 -209
- data/pattern/nvm/j750/timing.rb +73 -73
- data/pattern/read_write_reg.rb +61 -61
- data/pattern/reset.rb +4 -4
- data/pattern/subroutines.rb +69 -69
- data/pattern/tester_overlay.rb +61 -52
- data/pattern/tester_store.rb +28 -28
- data/program/_additional_erase.rb +7 -7
- data/program/_efa_resources.rb +7 -7
- data/program/_erase.rb +25 -25
- data/program/_erase_vfy.rb +5 -5
- data/program/_iv_resources.rb +10 -10
- data/program/basic_interface.rb +5 -5
- data/program/components/_prb1_main.rb +222 -222
- data/program/components/_temp.rb +6 -6
- data/program/custom_tests.rb +10 -10
- data/program/flow_control.rb +422 -422
- data/program/prb1.rb +11 -11
- data/program/prb1_resources.rb +28 -28
- data/program/prb2.rb +27 -27
- data/program/test.rb +29 -29
- data/program/uflex_resources.rb +199 -199
- data/templates/example.txt.erb +53 -53
- data/templates/j750/program_sheet.txt.erb +9 -9
- data/templates/manifest/v93k.yaml.erb +22 -22
- data/templates/web/index.md.erb +51 -51
- data/templates/web/layouts/_basic.html.erb +15 -15
- data/templates/web/partials/_navbar.html.erb +22 -22
- data/templates/web/release_notes.md.erb +5 -5
- metadata +2 -2
data/program/components/_temp.rb
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Flow.create do |options|
|
|
2
|
-
|
|
3
|
-
meas :bgap_voltage_meas, tnum: 1050, bin: 119, soft_bin: 2, hi_limit: 45
|
|
4
|
-
meas :bgap_voltage_meas1
|
|
5
|
-
|
|
6
|
-
end
|
|
1
|
+
Flow.create do |options|
|
|
2
|
+
|
|
3
|
+
meas :bgap_voltage_meas, tnum: 1050, bin: 119, soft_bin: 2, hi_limit: 45
|
|
4
|
+
meas :bgap_voltage_meas1
|
|
5
|
+
|
|
6
|
+
end
|
data/program/custom_tests.rb
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
# This flow is used to test custom test method API
|
|
2
|
-
Flow.create interface: 'OrigenTesters::Test::CustomTestInterface' do
|
|
3
|
-
|
|
4
|
-
custom :test1
|
|
5
|
-
|
|
6
|
-
custom :test2
|
|
7
|
-
|
|
8
|
-
custom :test3
|
|
9
|
-
|
|
10
|
-
end
|
|
1
|
+
# This flow is used to test custom test method API
|
|
2
|
+
Flow.create interface: 'OrigenTesters::Test::CustomTestInterface' do
|
|
3
|
+
|
|
4
|
+
custom :test1
|
|
5
|
+
|
|
6
|
+
custom :test2
|
|
7
|
+
|
|
8
|
+
custom :test3
|
|
9
|
+
|
|
10
|
+
end
|
data/program/flow_control.rb
CHANGED
|
@@ -1,422 +1,422 @@
|
|
|
1
|
-
# Flow to exercise the Flow Control API
|
|
2
|
-
#
|
|
3
|
-
# Some of the other flows also cover the flow control API and those tests are used
|
|
4
|
-
# to guarantee that the test ID references work when sub-flows are involved.
|
|
5
|
-
# This flow provides a full checkout of all flow control methods.
|
|
6
|
-
Flow.create interface: 'OrigenTesters::Test::Interface' do
|
|
7
|
-
|
|
8
|
-
self.resources_filename = 'flow_control'
|
|
9
|
-
|
|
10
|
-
log "Test that if_failed works"
|
|
11
|
-
func :read1, id: :t1, bin: 10
|
|
12
|
-
func :erase1, if_failed: :t1, bin: 12
|
|
13
|
-
|
|
14
|
-
log "Test the block form of if_failed"
|
|
15
|
-
func :read2, id: :t2, bin: 10
|
|
16
|
-
if_failed :t2 do
|
|
17
|
-
func :erase2
|
|
18
|
-
func :erase2
|
|
19
|
-
end
|
|
20
|
-
|
|
21
|
-
log "Test that if_passed works"
|
|
22
|
-
func :read1, id: :t3, bin: 10
|
|
23
|
-
func :pgm1, if_passed: :t3
|
|
24
|
-
|
|
25
|
-
log "Test the block form of if_passed"
|
|
26
|
-
func :read2, id: :t4, bin: 10
|
|
27
|
-
if_passed :t4 do
|
|
28
|
-
func :pgm1
|
|
29
|
-
func :pgm1
|
|
30
|
-
end
|
|
31
|
-
|
|
32
|
-
log "Test that if_ran works"
|
|
33
|
-
func :pgm, id: :t5, bin: 10
|
|
34
|
-
func :read0, if_ran: :t5
|
|
35
|
-
|
|
36
|
-
log "Test the block form of if_ran"
|
|
37
|
-
func :pgm, id: :t6, bin: 10
|
|
38
|
-
if_ran :t6 do
|
|
39
|
-
func :read0
|
|
40
|
-
func :read0
|
|
41
|
-
end
|
|
42
|
-
|
|
43
|
-
log "Test that unless_ran works"
|
|
44
|
-
func :pgm, id: :t7, bin: 10
|
|
45
|
-
func :read0, unless_ran: :t7
|
|
46
|
-
|
|
47
|
-
log "Test the block form of unless_ran"
|
|
48
|
-
func :pgm, id: :t8, bin: 10
|
|
49
|
-
unless_ran :t8 do
|
|
50
|
-
func :read0
|
|
51
|
-
func :read0
|
|
52
|
-
end
|
|
53
|
-
|
|
54
|
-
log "Test that if_job works"
|
|
55
|
-
func :cold_test, if_job: :fc
|
|
56
|
-
|
|
57
|
-
log "Test the block form of if_job"
|
|
58
|
-
if_job [:prb1, :prb2] do
|
|
59
|
-
func :probe_only_test1
|
|
60
|
-
func :probe_only_test2
|
|
61
|
-
end
|
|
62
|
-
|
|
63
|
-
log "Test that the block form of if_job can be overridden, prb9 should be removed"
|
|
64
|
-
if_job [:prb1, :prb2, :prb9] do
|
|
65
|
-
func :probe_only_test1
|
|
66
|
-
end
|
|
67
|
-
|
|
68
|
-
log "Test that unless_job works"
|
|
69
|
-
func :warmish_test, unless_job: :fc
|
|
70
|
-
|
|
71
|
-
log "Test the block form of unless_job"
|
|
72
|
-
unless_job [:prb1, :prb2] do
|
|
73
|
-
func :ft_only_test1
|
|
74
|
-
func :ft_only_test2
|
|
75
|
-
end
|
|
76
|
-
|
|
77
|
-
log "Test that if_enable works"
|
|
78
|
-
func :extra_test, if_enable: :extras
|
|
79
|
-
|
|
80
|
-
log "Test the block form of if_enable"
|
|
81
|
-
if_enable :cz do
|
|
82
|
-
func :cz_test1
|
|
83
|
-
func :cz_test2
|
|
84
|
-
end
|
|
85
|
-
|
|
86
|
-
log "Test that unless_enable works"
|
|
87
|
-
func :long_test, unless_enable: :quick
|
|
88
|
-
|
|
89
|
-
log "Test the block form of unless_enable"
|
|
90
|
-
unless_enable :quick do
|
|
91
|
-
func :long_test1
|
|
92
|
-
func :long_test2
|
|
93
|
-
end
|
|
94
|
-
|
|
95
|
-
log "Test that if_any_failed works"
|
|
96
|
-
func :test1, id: :ifa1
|
|
97
|
-
func :test2, id: :ifa2
|
|
98
|
-
func :test3, if_any_failed: [:ifa1, :ifa2]
|
|
99
|
-
|
|
100
|
-
log "Test the block form of if_any_failed"
|
|
101
|
-
func :test1, id: :oof_passcode1
|
|
102
|
-
func :test2, id: :oof_passcode2
|
|
103
|
-
if_any_failed :oof_passcode1, :oof_passcode2 do
|
|
104
|
-
func :test3
|
|
105
|
-
func :test4
|
|
106
|
-
end
|
|
107
|
-
|
|
108
|
-
log "Test that if_all_failed works"
|
|
109
|
-
func :test1, id: :ifall1
|
|
110
|
-
func :test2, id: :ifall2
|
|
111
|
-
func :test3, if_all_failed: [:ifall1, :ifall2]
|
|
112
|
-
|
|
113
|
-
log "Test the block form of if_all_failed"
|
|
114
|
-
func :test1, id: :ifallb1
|
|
115
|
-
func :test2, id: :ifallb2
|
|
116
|
-
if_all_failed [:ifallb1, :ifallb2] do
|
|
117
|
-
func :test3
|
|
118
|
-
func :test4
|
|
119
|
-
end
|
|
120
|
-
|
|
121
|
-
log "Test that if_any_passed works"
|
|
122
|
-
func :test1, id: :ifap1
|
|
123
|
-
func :test2, id: :ifap2
|
|
124
|
-
func :test3, if_any_passed: [:ifap1, :ifap2]
|
|
125
|
-
|
|
126
|
-
log "Test the block form of if_any_passed"
|
|
127
|
-
func :test1, id: :ifapb1
|
|
128
|
-
func :test2, id: :ifapb2
|
|
129
|
-
if_any_passed :ifapb1, :ifapb2 do
|
|
130
|
-
func :test3
|
|
131
|
-
func :test4
|
|
132
|
-
end
|
|
133
|
-
|
|
134
|
-
log "Test that if_all_passed works"
|
|
135
|
-
func :test1, id: :ifallp1
|
|
136
|
-
func :test2, id: :ifallp2
|
|
137
|
-
func :test3, if_all_passed: [:ifallp1, :ifallp2]
|
|
138
|
-
|
|
139
|
-
log "Test the block form of if_all_passed"
|
|
140
|
-
func :test1, id: :ifallpb1
|
|
141
|
-
func :test2, id: :ifallpb2
|
|
142
|
-
if_all_passed :ifallpb1, :ifallpb2 do
|
|
143
|
-
func :test3
|
|
144
|
-
func :test4
|
|
145
|
-
end
|
|
146
|
-
|
|
147
|
-
log "Test that group-level dependencies work"
|
|
148
|
-
group "grp1", id: :grp1 do
|
|
149
|
-
func :grp1_test1, bin: 5
|
|
150
|
-
func :grp1_test2, bin: 5
|
|
151
|
-
func :grp1_test3, bin: 5
|
|
152
|
-
end
|
|
153
|
-
|
|
154
|
-
group "grp2", if_failed: :grp1 do
|
|
155
|
-
func :grp2_test1, bin: 5
|
|
156
|
-
func :grp2_test2, bin: 5
|
|
157
|
-
func :grp2_test3, bin: 5
|
|
158
|
-
end
|
|
159
|
-
|
|
160
|
-
log "Another group-level dependencies test based on a real life use case"
|
|
161
|
-
func :gt1, bin: 90
|
|
162
|
-
group "gt_grp1", id: :gt_grp1 do
|
|
163
|
-
func :gt_grp1_test1, bin: 90, id: :gt_grp1
|
|
164
|
-
func :gt_grp1_test2, bin: 90, id: :gt_grp1
|
|
165
|
-
end
|
|
166
|
-
func :gt2, bin: 90, if_failed: :gt_grp1
|
|
167
|
-
group "gt_grp2", id: :gt_grp2, if_failed: :gt_grp1 do
|
|
168
|
-
# The if_failed and IDs here are redundant, but it should still generate
|
|
169
|
-
# valid output if an application were to do this
|
|
170
|
-
func :gt_grp2_test1, bin: 90, id: :gt_grp2, if_failed: :gt_grp1
|
|
171
|
-
func :gt_grp2_test2, bin: 90, id: :gt_grp2, if_failed: :gt_grp1
|
|
172
|
-
end
|
|
173
|
-
func :gt3, bin: 90, if_failed: :gt_grp2
|
|
174
|
-
|
|
175
|
-
log "Test that nested groups work"
|
|
176
|
-
group "level1" do
|
|
177
|
-
func :lev1_test1, bin: 5
|
|
178
|
-
func :lev1_test2, bin: 5
|
|
179
|
-
func :lev1_test3, id: :l1t3, bin: 10
|
|
180
|
-
func :lev1_test4, if_failed: :l1t3, bin: 12
|
|
181
|
-
func :lev1_test5, id: :l1t5, bin: 12
|
|
182
|
-
group "level2" do
|
|
183
|
-
func :lev2_test1, bin: 5
|
|
184
|
-
func :lev2_test2, bin: 5
|
|
185
|
-
func :lev2_test3, id: :l2t3, bin: 10
|
|
186
|
-
func :lev2_test4, if_failed: :l2t3, bin: 12
|
|
187
|
-
# Test dependency on a test from another group
|
|
188
|
-
func :lev2_test5, if_failed: :l1t5, bin: 12
|
|
189
|
-
end
|
|
190
|
-
end
|
|
191
|
-
|
|
192
|
-
log "Test nested conditions on a group"
|
|
193
|
-
func :nt1, bin: 10, id: :nt1
|
|
194
|
-
if_failed :nt1 do
|
|
195
|
-
func :nt2, bin: 11, id: :nt2
|
|
196
|
-
group "ntg1", id: :ntg1, if_passed: :nt2 do
|
|
197
|
-
func :nt3, bin: 12
|
|
198
|
-
end
|
|
199
|
-
group "ntg2", id: :ntg2, if_failed: :nt2 do
|
|
200
|
-
func :nt4, bin: 13
|
|
201
|
-
end
|
|
202
|
-
end
|
|
203
|
-
|
|
204
|
-
log "Embedded conditional tests 1"
|
|
205
|
-
func :test1, id: :ect1_1
|
|
206
|
-
if_failed :ect1_1 do
|
|
207
|
-
func :test2
|
|
208
|
-
func :test3, id: :ect1_3
|
|
209
|
-
if_failed :ect1_3 do
|
|
210
|
-
func :test4
|
|
211
|
-
end
|
|
212
|
-
end
|
|
213
|
-
|
|
214
|
-
log "Embedded conditional tests 2"
|
|
215
|
-
func :test1, id: :ect2_1
|
|
216
|
-
func :test2, id: :ect2_2
|
|
217
|
-
if_failed :ect2_1 do
|
|
218
|
-
func :test3, if_failed: :ect2_2
|
|
219
|
-
func :test4, if_enable: "en1"
|
|
220
|
-
if_enable "en2" do
|
|
221
|
-
func :test5
|
|
222
|
-
func :test6
|
|
223
|
-
end
|
|
224
|
-
func :test7
|
|
225
|
-
end
|
|
226
|
-
func :test8
|
|
227
|
-
|
|
228
|
-
log "Nested enable word test 1"
|
|
229
|
-
if_enable "word1" do
|
|
230
|
-
func :test1
|
|
231
|
-
if_enable "word2" do
|
|
232
|
-
func :test2
|
|
233
|
-
end
|
|
234
|
-
end
|
|
235
|
-
|
|
236
|
-
log "Nested enable word test 2"
|
|
237
|
-
if_enable "word1" do
|
|
238
|
-
func :test1
|
|
239
|
-
unless_enable "word2" do
|
|
240
|
-
func :test2
|
|
241
|
-
end
|
|
242
|
-
end
|
|
243
|
-
|
|
244
|
-
log "Nested enable word test 3"
|
|
245
|
-
if_enable ["word1", "word2"] do
|
|
246
|
-
func :test1
|
|
247
|
-
if_enable "word3" do
|
|
248
|
-
func :test2
|
|
249
|
-
end
|
|
250
|
-
end
|
|
251
|
-
|
|
252
|
-
log "Conditional enable test"
|
|
253
|
-
enable :nvm_minimum_ft, if_enable: "nvm_minimum_room", if_job: :fr
|
|
254
|
-
enable :nvm_minimum_ft, if_enable: "nvm_minimum_cold", if_job: :fc
|
|
255
|
-
disable :nvm_minimum_ft, if_enable: "nvm_minimum_hot", if_job: :fh
|
|
256
|
-
|
|
257
|
-
log "Test enable words that wrap a lot of tests"
|
|
258
|
-
if_enable :word1 do
|
|
259
|
-
5.times do
|
|
260
|
-
func :test1
|
|
261
|
-
end
|
|
262
|
-
if_enable :word2 do
|
|
263
|
-
4.times do
|
|
264
|
-
func :test1
|
|
265
|
-
end
|
|
266
|
-
func :test1, enable: :word3
|
|
267
|
-
end
|
|
268
|
-
end
|
|
269
|
-
|
|
270
|
-
if tester.j750?
|
|
271
|
-
log "This should generate an AND flag"
|
|
272
|
-
func :test1, id: :at1
|
|
273
|
-
func :test2, id: :at2
|
|
274
|
-
if_failed :at1 do
|
|
275
|
-
func :test3, if_failed: :at2
|
|
276
|
-
# This should re-use the AND flag, rather than create a duplicate
|
|
277
|
-
func :test4, if_failed: :at2
|
|
278
|
-
end
|
|
279
|
-
log "This should NOT generate an AND flag"
|
|
280
|
-
# Creating an AND flag here is logically correct, but creates un-necessary flow lines. Since
|
|
281
|
-
# the test at11 is already gated by the at21 condition, it does not need to be applied to any
|
|
282
|
-
# tests that are dependent on at11.
|
|
283
|
-
func :test1, id: :at11
|
|
284
|
-
if_failed :at11 do
|
|
285
|
-
func :test2, id: :at21
|
|
286
|
-
func :test3, if_failed: :at21
|
|
287
|
-
func :test4, if_failed: :at21
|
|
288
|
-
end
|
|
289
|
-
end
|
|
290
|
-
|
|
291
|
-
log "Manual flag setting"
|
|
292
|
-
test :test1, on_fail: { set_flag: :my_flag }, continue: true
|
|
293
|
-
test :test2, if_flag: :my_flag
|
|
294
|
-
unless_flag :my_flag do
|
|
295
|
-
test :test3
|
|
296
|
-
end
|
|
297
|
-
|
|
298
|
-
log "Mixed-case manual flags"
|
|
299
|
-
test :test1, on_fail: { set_flag: :$My_Mixed_Flag }, continue: true
|
|
300
|
-
test :test2, if_flag: "$My_Mixed_Flag"
|
|
301
|
-
unless_flag "$My_Mixed_Flag" do
|
|
302
|
-
test :test3
|
|
303
|
-
end
|
|
304
|
-
|
|
305
|
-
log "Mixed-case enables"
|
|
306
|
-
test :extra_test, if_enable: :$MCEn_extras
|
|
307
|
-
unless_enable "$MCEn_test" do
|
|
308
|
-
test :test1
|
|
309
|
-
test :test2
|
|
310
|
-
end
|
|
311
|
-
|
|
312
|
-
if tester.v93k?
|
|
313
|
-
log "This should retain the set-run-flag in the else conditional"
|
|
314
|
-
func :test22, id: :at22
|
|
315
|
-
|
|
316
|
-
if_failed :at22 do
|
|
317
|
-
func :test22a
|
|
318
|
-
func :test22b
|
|
319
|
-
end
|
|
320
|
-
|
|
321
|
-
func :test22c
|
|
322
|
-
func :test22d
|
|
323
|
-
|
|
324
|
-
if_failed :at22 do
|
|
325
|
-
func :test22e
|
|
326
|
-
func :test22f
|
|
327
|
-
end
|
|
328
|
-
end
|
|
329
|
-
|
|
330
|
-
if tester.v93k?
|
|
331
|
-
log "This should optimize away then/else branches that are empty"
|
|
332
|
-
func :test36, continue: true
|
|
333
|
-
func :test36b, bin: 12, continue:true
|
|
334
|
-
|
|
335
|
-
log "Tests of render"
|
|
336
|
-
|
|
337
|
-
render 'multi_bin;', if_flag: :my_flag
|
|
338
|
-
|
|
339
|
-
func :test36, on_fail: { render: 'multi_bin;' }, if_flag: :my_flag
|
|
340
|
-
end
|
|
341
|
-
|
|
342
|
-
log 'An optimization test case, this should not generate a flag on V93K'
|
|
343
|
-
func :test1, id: :t1a
|
|
344
|
-
|
|
345
|
-
if_passed :t1a do
|
|
346
|
-
func :test2
|
|
347
|
-
end
|
|
348
|
-
|
|
349
|
-
if_failed :t1a do
|
|
350
|
-
func :test3
|
|
351
|
-
bin 10
|
|
352
|
-
end
|
|
353
|
-
|
|
354
|
-
log 'The reverse optimization test case, this should not generate a flag on V93K'
|
|
355
|
-
func :test1, id: :t1b
|
|
356
|
-
|
|
357
|
-
if_failed :t1b do
|
|
358
|
-
func :test3
|
|
359
|
-
bin 10
|
|
360
|
-
end
|
|
361
|
-
|
|
362
|
-
if_passed :t1b do
|
|
363
|
-
func :test2
|
|
364
|
-
end
|
|
365
|
-
|
|
366
|
-
if tester.v93k?
|
|
367
|
-
log 'Nested optimization test case'
|
|
368
|
-
func :outer_test, id: :ot
|
|
369
|
-
if_failed :ot do
|
|
370
|
-
unless_flag :flag1 do
|
|
371
|
-
func :inner_test1, id: :it1
|
|
372
|
-
render 'multi_bin;', if_failed: :it1
|
|
373
|
-
end
|
|
374
|
-
end
|
|
375
|
-
|
|
376
|
-
log 'Nested flag optimization test case'
|
|
377
|
-
if_flag :flag1 do
|
|
378
|
-
func :test4, id: :nf_t4
|
|
379
|
-
if_failed :nf_t4 do
|
|
380
|
-
render 'multi_bin;', if_flag: :flag1
|
|
381
|
-
end
|
|
382
|
-
end
|
|
383
|
-
|
|
384
|
-
log 'The setting of flags used in later OR conditions should be preserved'
|
|
385
|
-
func :test2, id: :of1
|
|
386
|
-
func :test3, if_failed: :of1
|
|
387
|
-
func :test2, id: :of2
|
|
388
|
-
func :test3, if_failed: :of2
|
|
389
|
-
func :test4
|
|
390
|
-
func :test4, if_any_failed: [:of1, :of2]
|
|
391
|
-
|
|
392
|
-
log 'The setting of flags used in later AND conditions should be preserved'
|
|
393
|
-
func :test2, id: :af1
|
|
394
|
-
func :test3, if_failed: :af1
|
|
395
|
-
func :test2, id: :af2
|
|
396
|
-
func :test3, if_failed: :af2
|
|
397
|
-
func :test4
|
|
398
|
-
func :test4, if_all_failed: [:af1, :af2]
|
|
399
|
-
|
|
400
|
-
log 'Adjacent tests that set a flag and then use it in an OR condition should be valid'
|
|
401
|
-
func :test2, id: :of11
|
|
402
|
-
func :test2, id: :of12
|
|
403
|
-
func :test4, if_any_failed: [:of11, :of12]
|
|
404
|
-
|
|
405
|
-
log 'Adjacent tests that set a flag and then use it in an AND condition should be valid'
|
|
406
|
-
func :test2, id: :af11
|
|
407
|
-
func :test2, id: :af12
|
|
408
|
-
func :test4, if_all_failed: [:af11, :af12]
|
|
409
|
-
|
|
410
|
-
log 'Adjacent if combiner test case 1'
|
|
411
|
-
func :test1, if_enable: :my_enable_word
|
|
412
|
-
func :test2, unless_enable: :my_enable_word
|
|
413
|
-
func :test1, if_flag: :my_flag
|
|
414
|
-
func :test2, unless_flag: :my_flag
|
|
415
|
-
|
|
416
|
-
log 'Adjacent if combiner test case 2'
|
|
417
|
-
func :test2, unless_enable: :my_enable_word
|
|
418
|
-
func :test1, if_enable: :my_enable_word
|
|
419
|
-
func :test2, unless_flag: :my_flag
|
|
420
|
-
func :test1, if_flag: :my_flag
|
|
421
|
-
end
|
|
422
|
-
end
|
|
1
|
+
# Flow to exercise the Flow Control API
|
|
2
|
+
#
|
|
3
|
+
# Some of the other flows also cover the flow control API and those tests are used
|
|
4
|
+
# to guarantee that the test ID references work when sub-flows are involved.
|
|
5
|
+
# This flow provides a full checkout of all flow control methods.
|
|
6
|
+
Flow.create interface: 'OrigenTesters::Test::Interface', flow_name: "Flow Control Testing" do
|
|
7
|
+
|
|
8
|
+
self.resources_filename = 'flow_control'
|
|
9
|
+
|
|
10
|
+
log "Test that if_failed works"
|
|
11
|
+
func :read1, id: :t1, bin: 10
|
|
12
|
+
func :erase1, if_failed: :t1, bin: 12
|
|
13
|
+
|
|
14
|
+
log "Test the block form of if_failed"
|
|
15
|
+
func :read2, id: :t2, bin: 10
|
|
16
|
+
if_failed :t2 do
|
|
17
|
+
func :erase2
|
|
18
|
+
func :erase2
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
log "Test that if_passed works"
|
|
22
|
+
func :read1, id: :t3, bin: 10
|
|
23
|
+
func :pgm1, if_passed: :t3
|
|
24
|
+
|
|
25
|
+
log "Test the block form of if_passed"
|
|
26
|
+
func :read2, id: :t4, bin: 10
|
|
27
|
+
if_passed :t4 do
|
|
28
|
+
func :pgm1
|
|
29
|
+
func :pgm1
|
|
30
|
+
end
|
|
31
|
+
|
|
32
|
+
log "Test that if_ran works"
|
|
33
|
+
func :pgm, id: :t5, bin: 10
|
|
34
|
+
func :read0, if_ran: :t5
|
|
35
|
+
|
|
36
|
+
log "Test the block form of if_ran"
|
|
37
|
+
func :pgm, id: :t6, bin: 10
|
|
38
|
+
if_ran :t6 do
|
|
39
|
+
func :read0
|
|
40
|
+
func :read0
|
|
41
|
+
end
|
|
42
|
+
|
|
43
|
+
log "Test that unless_ran works"
|
|
44
|
+
func :pgm, id: :t7, bin: 10
|
|
45
|
+
func :read0, unless_ran: :t7
|
|
46
|
+
|
|
47
|
+
log "Test the block form of unless_ran"
|
|
48
|
+
func :pgm, id: :t8, bin: 10
|
|
49
|
+
unless_ran :t8 do
|
|
50
|
+
func :read0
|
|
51
|
+
func :read0
|
|
52
|
+
end
|
|
53
|
+
|
|
54
|
+
log "Test that if_job works"
|
|
55
|
+
func :cold_test, if_job: :fc
|
|
56
|
+
|
|
57
|
+
log "Test the block form of if_job"
|
|
58
|
+
if_job [:prb1, :prb2] do
|
|
59
|
+
func :probe_only_test1
|
|
60
|
+
func :probe_only_test2
|
|
61
|
+
end
|
|
62
|
+
|
|
63
|
+
log "Test that the block form of if_job can be overridden, prb9 should be removed"
|
|
64
|
+
if_job [:prb1, :prb2, :prb9] do
|
|
65
|
+
func :probe_only_test1
|
|
66
|
+
end
|
|
67
|
+
|
|
68
|
+
log "Test that unless_job works"
|
|
69
|
+
func :warmish_test, unless_job: :fc
|
|
70
|
+
|
|
71
|
+
log "Test the block form of unless_job"
|
|
72
|
+
unless_job [:prb1, :prb2] do
|
|
73
|
+
func :ft_only_test1
|
|
74
|
+
func :ft_only_test2
|
|
75
|
+
end
|
|
76
|
+
|
|
77
|
+
log "Test that if_enable works"
|
|
78
|
+
func :extra_test, if_enable: :extras
|
|
79
|
+
|
|
80
|
+
log "Test the block form of if_enable"
|
|
81
|
+
if_enable :cz do
|
|
82
|
+
func :cz_test1
|
|
83
|
+
func :cz_test2
|
|
84
|
+
end
|
|
85
|
+
|
|
86
|
+
log "Test that unless_enable works"
|
|
87
|
+
func :long_test, unless_enable: :quick
|
|
88
|
+
|
|
89
|
+
log "Test the block form of unless_enable"
|
|
90
|
+
unless_enable :quick do
|
|
91
|
+
func :long_test1
|
|
92
|
+
func :long_test2
|
|
93
|
+
end
|
|
94
|
+
|
|
95
|
+
log "Test that if_any_failed works"
|
|
96
|
+
func :test1, id: :ifa1
|
|
97
|
+
func :test2, id: :ifa2
|
|
98
|
+
func :test3, if_any_failed: [:ifa1, :ifa2]
|
|
99
|
+
|
|
100
|
+
log "Test the block form of if_any_failed"
|
|
101
|
+
func :test1, id: :oof_passcode1
|
|
102
|
+
func :test2, id: :oof_passcode2
|
|
103
|
+
if_any_failed :oof_passcode1, :oof_passcode2 do
|
|
104
|
+
func :test3
|
|
105
|
+
func :test4
|
|
106
|
+
end
|
|
107
|
+
|
|
108
|
+
log "Test that if_all_failed works"
|
|
109
|
+
func :test1, id: :ifall1
|
|
110
|
+
func :test2, id: :ifall2
|
|
111
|
+
func :test3, if_all_failed: [:ifall1, :ifall2]
|
|
112
|
+
|
|
113
|
+
log "Test the block form of if_all_failed"
|
|
114
|
+
func :test1, id: :ifallb1
|
|
115
|
+
func :test2, id: :ifallb2
|
|
116
|
+
if_all_failed [:ifallb1, :ifallb2] do
|
|
117
|
+
func :test3
|
|
118
|
+
func :test4
|
|
119
|
+
end
|
|
120
|
+
|
|
121
|
+
log "Test that if_any_passed works"
|
|
122
|
+
func :test1, id: :ifap1
|
|
123
|
+
func :test2, id: :ifap2
|
|
124
|
+
func :test3, if_any_passed: [:ifap1, :ifap2]
|
|
125
|
+
|
|
126
|
+
log "Test the block form of if_any_passed"
|
|
127
|
+
func :test1, id: :ifapb1
|
|
128
|
+
func :test2, id: :ifapb2
|
|
129
|
+
if_any_passed :ifapb1, :ifapb2 do
|
|
130
|
+
func :test3
|
|
131
|
+
func :test4
|
|
132
|
+
end
|
|
133
|
+
|
|
134
|
+
log "Test that if_all_passed works"
|
|
135
|
+
func :test1, id: :ifallp1
|
|
136
|
+
func :test2, id: :ifallp2
|
|
137
|
+
func :test3, if_all_passed: [:ifallp1, :ifallp2]
|
|
138
|
+
|
|
139
|
+
log "Test the block form of if_all_passed"
|
|
140
|
+
func :test1, id: :ifallpb1
|
|
141
|
+
func :test2, id: :ifallpb2
|
|
142
|
+
if_all_passed :ifallpb1, :ifallpb2 do
|
|
143
|
+
func :test3
|
|
144
|
+
func :test4
|
|
145
|
+
end
|
|
146
|
+
|
|
147
|
+
log "Test that group-level dependencies work"
|
|
148
|
+
group "grp1", id: :grp1 do
|
|
149
|
+
func :grp1_test1, bin: 5
|
|
150
|
+
func :grp1_test2, bin: 5
|
|
151
|
+
func :grp1_test3, bin: 5
|
|
152
|
+
end
|
|
153
|
+
|
|
154
|
+
group "grp2", if_failed: :grp1 do
|
|
155
|
+
func :grp2_test1, bin: 5
|
|
156
|
+
func :grp2_test2, bin: 5
|
|
157
|
+
func :grp2_test3, bin: 5
|
|
158
|
+
end
|
|
159
|
+
|
|
160
|
+
log "Another group-level dependencies test based on a real life use case"
|
|
161
|
+
func :gt1, bin: 90
|
|
162
|
+
group "gt_grp1", id: :gt_grp1 do
|
|
163
|
+
func :gt_grp1_test1, bin: 90, id: :gt_grp1
|
|
164
|
+
func :gt_grp1_test2, bin: 90, id: :gt_grp1
|
|
165
|
+
end
|
|
166
|
+
func :gt2, bin: 90, if_failed: :gt_grp1
|
|
167
|
+
group "gt_grp2", id: :gt_grp2, if_failed: :gt_grp1 do
|
|
168
|
+
# The if_failed and IDs here are redundant, but it should still generate
|
|
169
|
+
# valid output if an application were to do this
|
|
170
|
+
func :gt_grp2_test1, bin: 90, id: :gt_grp2, if_failed: :gt_grp1
|
|
171
|
+
func :gt_grp2_test2, bin: 90, id: :gt_grp2, if_failed: :gt_grp1
|
|
172
|
+
end
|
|
173
|
+
func :gt3, bin: 90, if_failed: :gt_grp2
|
|
174
|
+
|
|
175
|
+
log "Test that nested groups work"
|
|
176
|
+
group "level1" do
|
|
177
|
+
func :lev1_test1, bin: 5
|
|
178
|
+
func :lev1_test2, bin: 5
|
|
179
|
+
func :lev1_test3, id: :l1t3, bin: 10
|
|
180
|
+
func :lev1_test4, if_failed: :l1t3, bin: 12
|
|
181
|
+
func :lev1_test5, id: :l1t5, bin: 12
|
|
182
|
+
group "level2" do
|
|
183
|
+
func :lev2_test1, bin: 5
|
|
184
|
+
func :lev2_test2, bin: 5
|
|
185
|
+
func :lev2_test3, id: :l2t3, bin: 10
|
|
186
|
+
func :lev2_test4, if_failed: :l2t3, bin: 12
|
|
187
|
+
# Test dependency on a test from another group
|
|
188
|
+
func :lev2_test5, if_failed: :l1t5, bin: 12
|
|
189
|
+
end
|
|
190
|
+
end
|
|
191
|
+
|
|
192
|
+
log "Test nested conditions on a group"
|
|
193
|
+
func :nt1, bin: 10, id: :nt1
|
|
194
|
+
if_failed :nt1 do
|
|
195
|
+
func :nt2, bin: 11, id: :nt2
|
|
196
|
+
group "ntg1", id: :ntg1, if_passed: :nt2 do
|
|
197
|
+
func :nt3, bin: 12
|
|
198
|
+
end
|
|
199
|
+
group "ntg2", id: :ntg2, if_failed: :nt2 do
|
|
200
|
+
func :nt4, bin: 13
|
|
201
|
+
end
|
|
202
|
+
end
|
|
203
|
+
|
|
204
|
+
log "Embedded conditional tests 1"
|
|
205
|
+
func :test1, id: :ect1_1
|
|
206
|
+
if_failed :ect1_1 do
|
|
207
|
+
func :test2
|
|
208
|
+
func :test3, id: :ect1_3
|
|
209
|
+
if_failed :ect1_3 do
|
|
210
|
+
func :test4
|
|
211
|
+
end
|
|
212
|
+
end
|
|
213
|
+
|
|
214
|
+
log "Embedded conditional tests 2"
|
|
215
|
+
func :test1, id: :ect2_1
|
|
216
|
+
func :test2, id: :ect2_2
|
|
217
|
+
if_failed :ect2_1 do
|
|
218
|
+
func :test3, if_failed: :ect2_2
|
|
219
|
+
func :test4, if_enable: "en1"
|
|
220
|
+
if_enable "en2" do
|
|
221
|
+
func :test5
|
|
222
|
+
func :test6
|
|
223
|
+
end
|
|
224
|
+
func :test7
|
|
225
|
+
end
|
|
226
|
+
func :test8
|
|
227
|
+
|
|
228
|
+
log "Nested enable word test 1"
|
|
229
|
+
if_enable "word1" do
|
|
230
|
+
func :test1
|
|
231
|
+
if_enable "word2" do
|
|
232
|
+
func :test2
|
|
233
|
+
end
|
|
234
|
+
end
|
|
235
|
+
|
|
236
|
+
log "Nested enable word test 2"
|
|
237
|
+
if_enable "word1" do
|
|
238
|
+
func :test1
|
|
239
|
+
unless_enable "word2" do
|
|
240
|
+
func :test2
|
|
241
|
+
end
|
|
242
|
+
end
|
|
243
|
+
|
|
244
|
+
log "Nested enable word test 3"
|
|
245
|
+
if_enable ["word1", "word2"] do
|
|
246
|
+
func :test1
|
|
247
|
+
if_enable "word3" do
|
|
248
|
+
func :test2
|
|
249
|
+
end
|
|
250
|
+
end
|
|
251
|
+
|
|
252
|
+
log "Conditional enable test"
|
|
253
|
+
enable :nvm_minimum_ft, if_enable: "nvm_minimum_room", if_job: :fr
|
|
254
|
+
enable :nvm_minimum_ft, if_enable: "nvm_minimum_cold", if_job: :fc
|
|
255
|
+
disable :nvm_minimum_ft, if_enable: "nvm_minimum_hot", if_job: :fh
|
|
256
|
+
|
|
257
|
+
log "Test enable words that wrap a lot of tests"
|
|
258
|
+
if_enable :word1 do
|
|
259
|
+
5.times do
|
|
260
|
+
func :test1
|
|
261
|
+
end
|
|
262
|
+
if_enable :word2 do
|
|
263
|
+
4.times do
|
|
264
|
+
func :test1
|
|
265
|
+
end
|
|
266
|
+
func :test1, enable: :word3
|
|
267
|
+
end
|
|
268
|
+
end
|
|
269
|
+
|
|
270
|
+
if tester.j750?
|
|
271
|
+
log "This should generate an AND flag"
|
|
272
|
+
func :test1, id: :at1
|
|
273
|
+
func :test2, id: :at2
|
|
274
|
+
if_failed :at1 do
|
|
275
|
+
func :test3, if_failed: :at2
|
|
276
|
+
# This should re-use the AND flag, rather than create a duplicate
|
|
277
|
+
func :test4, if_failed: :at2
|
|
278
|
+
end
|
|
279
|
+
log "This should NOT generate an AND flag"
|
|
280
|
+
# Creating an AND flag here is logically correct, but creates un-necessary flow lines. Since
|
|
281
|
+
# the test at11 is already gated by the at21 condition, it does not need to be applied to any
|
|
282
|
+
# tests that are dependent on at11.
|
|
283
|
+
func :test1, id: :at11
|
|
284
|
+
if_failed :at11 do
|
|
285
|
+
func :test2, id: :at21
|
|
286
|
+
func :test3, if_failed: :at21
|
|
287
|
+
func :test4, if_failed: :at21
|
|
288
|
+
end
|
|
289
|
+
end
|
|
290
|
+
|
|
291
|
+
log "Manual flag setting"
|
|
292
|
+
test :test1, on_fail: { set_flag: :my_flag }, continue: true
|
|
293
|
+
test :test2, if_flag: :my_flag
|
|
294
|
+
unless_flag :my_flag do
|
|
295
|
+
test :test3
|
|
296
|
+
end
|
|
297
|
+
|
|
298
|
+
log "Mixed-case manual flags"
|
|
299
|
+
test :test1, on_fail: { set_flag: :$My_Mixed_Flag }, continue: true
|
|
300
|
+
test :test2, if_flag: "$My_Mixed_Flag"
|
|
301
|
+
unless_flag "$My_Mixed_Flag" do
|
|
302
|
+
test :test3
|
|
303
|
+
end
|
|
304
|
+
|
|
305
|
+
log "Mixed-case enables"
|
|
306
|
+
test :extra_test, if_enable: :$MCEn_extras
|
|
307
|
+
unless_enable "$MCEn_test" do
|
|
308
|
+
test :test1
|
|
309
|
+
test :test2
|
|
310
|
+
end
|
|
311
|
+
|
|
312
|
+
if tester.v93k?
|
|
313
|
+
log "This should retain the set-run-flag in the else conditional"
|
|
314
|
+
func :test22, id: :at22
|
|
315
|
+
|
|
316
|
+
if_failed :at22 do
|
|
317
|
+
func :test22a
|
|
318
|
+
func :test22b
|
|
319
|
+
end
|
|
320
|
+
|
|
321
|
+
func :test22c
|
|
322
|
+
func :test22d
|
|
323
|
+
|
|
324
|
+
if_failed :at22 do
|
|
325
|
+
func :test22e
|
|
326
|
+
func :test22f
|
|
327
|
+
end
|
|
328
|
+
end
|
|
329
|
+
|
|
330
|
+
if tester.v93k?
|
|
331
|
+
log "This should optimize away then/else branches that are empty"
|
|
332
|
+
func :test36, continue: true
|
|
333
|
+
func :test36b, bin: 12, continue:true
|
|
334
|
+
|
|
335
|
+
log "Tests of render"
|
|
336
|
+
|
|
337
|
+
render 'multi_bin;', if_flag: :my_flag
|
|
338
|
+
|
|
339
|
+
func :test36, on_fail: { render: 'multi_bin;' }, if_flag: :my_flag
|
|
340
|
+
end
|
|
341
|
+
|
|
342
|
+
log 'An optimization test case, this should not generate a flag on V93K'
|
|
343
|
+
func :test1, id: :t1a
|
|
344
|
+
|
|
345
|
+
if_passed :t1a do
|
|
346
|
+
func :test2
|
|
347
|
+
end
|
|
348
|
+
|
|
349
|
+
if_failed :t1a do
|
|
350
|
+
func :test3
|
|
351
|
+
bin 10
|
|
352
|
+
end
|
|
353
|
+
|
|
354
|
+
log 'The reverse optimization test case, this should not generate a flag on V93K'
|
|
355
|
+
func :test1, id: :t1b
|
|
356
|
+
|
|
357
|
+
if_failed :t1b do
|
|
358
|
+
func :test3
|
|
359
|
+
bin 10
|
|
360
|
+
end
|
|
361
|
+
|
|
362
|
+
if_passed :t1b do
|
|
363
|
+
func :test2
|
|
364
|
+
end
|
|
365
|
+
|
|
366
|
+
if tester.v93k?
|
|
367
|
+
log 'Nested optimization test case'
|
|
368
|
+
func :outer_test, id: :ot
|
|
369
|
+
if_failed :ot do
|
|
370
|
+
unless_flag :flag1 do
|
|
371
|
+
func :inner_test1, id: :it1
|
|
372
|
+
render 'multi_bin;', if_failed: :it1
|
|
373
|
+
end
|
|
374
|
+
end
|
|
375
|
+
|
|
376
|
+
log 'Nested flag optimization test case'
|
|
377
|
+
if_flag :flag1 do
|
|
378
|
+
func :test4, id: :nf_t4
|
|
379
|
+
if_failed :nf_t4 do
|
|
380
|
+
render 'multi_bin;', if_flag: :flag1
|
|
381
|
+
end
|
|
382
|
+
end
|
|
383
|
+
|
|
384
|
+
log 'The setting of flags used in later OR conditions should be preserved'
|
|
385
|
+
func :test2, id: :of1
|
|
386
|
+
func :test3, if_failed: :of1
|
|
387
|
+
func :test2, id: :of2
|
|
388
|
+
func :test3, if_failed: :of2
|
|
389
|
+
func :test4
|
|
390
|
+
func :test4, if_any_failed: [:of1, :of2]
|
|
391
|
+
|
|
392
|
+
log 'The setting of flags used in later AND conditions should be preserved'
|
|
393
|
+
func :test2, id: :af1
|
|
394
|
+
func :test3, if_failed: :af1
|
|
395
|
+
func :test2, id: :af2
|
|
396
|
+
func :test3, if_failed: :af2
|
|
397
|
+
func :test4
|
|
398
|
+
func :test4, if_all_failed: [:af1, :af2]
|
|
399
|
+
|
|
400
|
+
log 'Adjacent tests that set a flag and then use it in an OR condition should be valid'
|
|
401
|
+
func :test2, id: :of11
|
|
402
|
+
func :test2, id: :of12
|
|
403
|
+
func :test4, if_any_failed: [:of11, :of12]
|
|
404
|
+
|
|
405
|
+
log 'Adjacent tests that set a flag and then use it in an AND condition should be valid'
|
|
406
|
+
func :test2, id: :af11
|
|
407
|
+
func :test2, id: :af12
|
|
408
|
+
func :test4, if_all_failed: [:af11, :af12]
|
|
409
|
+
|
|
410
|
+
log 'Adjacent if combiner test case 1'
|
|
411
|
+
func :test1, if_enable: :my_enable_word
|
|
412
|
+
func :test2, unless_enable: :my_enable_word
|
|
413
|
+
func :test1, if_flag: :my_flag
|
|
414
|
+
func :test2, unless_flag: :my_flag
|
|
415
|
+
|
|
416
|
+
log 'Adjacent if combiner test case 2'
|
|
417
|
+
func :test2, unless_enable: :my_enable_word
|
|
418
|
+
func :test1, if_enable: :my_enable_word
|
|
419
|
+
func :test2, unless_flag: :my_flag
|
|
420
|
+
func :test1, if_flag: :my_flag
|
|
421
|
+
end
|
|
422
|
+
end
|