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.
Files changed (258) hide show
  1. checksums.yaml +4 -4
  2. data/config/application.rb +151 -151
  3. data/config/boot.rb +13 -13
  4. data/config/commands.rb +85 -86
  5. data/config/users.rb +18 -18
  6. data/config/version.rb +8 -8
  7. data/lib/commands/build.rb +69 -69
  8. data/lib/commands/run.rb +48 -48
  9. data/lib/origen_testers.rb +47 -47
  10. data/lib/origen_testers/api.rb +381 -381
  11. data/lib/origen_testers/basic_test_setups.rb +105 -105
  12. data/lib/origen_testers/callback_handlers.rb +59 -59
  13. data/lib/origen_testers/command_based_tester.rb +45 -45
  14. data/lib/origen_testers/flow.rb +382 -382
  15. data/lib/origen_testers/generator.rb +283 -283
  16. data/lib/origen_testers/generator/identity_map.rb +23 -23
  17. data/lib/origen_testers/generator/placeholder.rb +11 -11
  18. data/lib/origen_testers/generator/test_numberer.rb +23 -23
  19. data/lib/origen_testers/igxl_based_tester.rb +12 -12
  20. data/lib/origen_testers/igxl_based_tester/base.rb +1100 -1099
  21. data/lib/origen_testers/igxl_based_tester/base/ac_specsets.rb +79 -79
  22. data/lib/origen_testers/igxl_based_tester/base/custom_test_instance.rb +169 -169
  23. data/lib/origen_testers/igxl_based_tester/base/dc_specsets.rb +98 -98
  24. data/lib/origen_testers/igxl_based_tester/base/edge.rb +60 -60
  25. data/lib/origen_testers/igxl_based_tester/base/edges.rb +24 -24
  26. data/lib/origen_testers/igxl_based_tester/base/edgeset.rb +39 -39
  27. data/lib/origen_testers/igxl_based_tester/base/edgesets.rb +130 -130
  28. data/lib/origen_testers/igxl_based_tester/base/flow.rb +460 -460
  29. data/lib/origen_testers/igxl_based_tester/base/flow_line.rb +276 -276
  30. data/lib/origen_testers/igxl_based_tester/base/generator.rb +607 -607
  31. data/lib/origen_testers/igxl_based_tester/base/global_specs.rb +83 -83
  32. data/lib/origen_testers/igxl_based_tester/base/job.rb +75 -75
  33. data/lib/origen_testers/igxl_based_tester/base/jobs.rb +44 -44
  34. data/lib/origen_testers/igxl_based_tester/base/level_io_se.rb +59 -59
  35. data/lib/origen_testers/igxl_based_tester/base/level_supply.rb +39 -39
  36. data/lib/origen_testers/igxl_based_tester/base/levels.rb +31 -31
  37. data/lib/origen_testers/igxl_based_tester/base/levelset.rb +110 -110
  38. data/lib/origen_testers/igxl_based_tester/base/patgroup.rb +109 -109
  39. data/lib/origen_testers/igxl_based_tester/base/patgroups.rb +38 -38
  40. data/lib/origen_testers/igxl_based_tester/base/patset.rb +68 -68
  41. data/lib/origen_testers/igxl_based_tester/base/patset_pattern.rb +56 -56
  42. data/lib/origen_testers/igxl_based_tester/base/patsets.rb +38 -38
  43. data/lib/origen_testers/igxl_based_tester/base/patsubr.rb +68 -68
  44. data/lib/origen_testers/igxl_based_tester/base/patsubr_pattern.rb +56 -56
  45. data/lib/origen_testers/igxl_based_tester/base/patsubrs.rb +38 -38
  46. data/lib/origen_testers/igxl_based_tester/base/pinmap.rb +93 -93
  47. data/lib/origen_testers/igxl_based_tester/base/references.rb +25 -25
  48. data/lib/origen_testers/igxl_based_tester/base/test_instance.rb +322 -322
  49. data/lib/origen_testers/igxl_based_tester/base/test_instance_group.rb +66 -66
  50. data/lib/origen_testers/igxl_based_tester/base/test_instances.rb +212 -212
  51. data/lib/origen_testers/igxl_based_tester/base/test_instances/custom_til.rb +37 -37
  52. data/lib/origen_testers/igxl_based_tester/base/timeset.rb +37 -37
  53. data/lib/origen_testers/igxl_based_tester/base/timesets.rb +49 -49
  54. data/lib/origen_testers/igxl_based_tester/base/timesets_basic.rb +49 -49
  55. data/lib/origen_testers/igxl_based_tester/files.rb +43 -43
  56. data/lib/origen_testers/igxl_based_tester/j750.rb +269 -269
  57. data/lib/origen_testers/igxl_based_tester/j750/custom_test_instance.rb +32 -32
  58. data/lib/origen_testers/igxl_based_tester/j750/flow.rb +10 -10
  59. data/lib/origen_testers/igxl_based_tester/j750/flow_line.rb +19 -19
  60. data/lib/origen_testers/igxl_based_tester/j750/generator.rb +19 -19
  61. data/lib/origen_testers/igxl_based_tester/j750/patgroup.rb +9 -9
  62. data/lib/origen_testers/igxl_based_tester/j750/patgroups.rb +10 -10
  63. data/lib/origen_testers/igxl_based_tester/j750/patset.rb +9 -9
  64. data/lib/origen_testers/igxl_based_tester/j750/patset_pattern.rb +18 -18
  65. data/lib/origen_testers/igxl_based_tester/j750/patsets.rb +10 -10
  66. data/lib/origen_testers/igxl_based_tester/j750/patsubr.rb +9 -9
  67. data/lib/origen_testers/igxl_based_tester/j750/patsubr_pattern.rb +18 -18
  68. data/lib/origen_testers/igxl_based_tester/j750/patsubrs.rb +10 -10
  69. data/lib/origen_testers/igxl_based_tester/j750/test_instance.rb +746 -746
  70. data/lib/origen_testers/igxl_based_tester/j750/test_instance_group.rb +9 -9
  71. data/lib/origen_testers/igxl_based_tester/j750/test_instances.rb +10 -10
  72. data/lib/origen_testers/igxl_based_tester/j750_hpt.rb +34 -34
  73. data/lib/origen_testers/igxl_based_tester/j750_hpt/custom_test_instance.rb +32 -32
  74. data/lib/origen_testers/igxl_based_tester/j750_hpt/flow.rb +9 -9
  75. data/lib/origen_testers/igxl_based_tester/j750_hpt/flow_line.rb +9 -9
  76. data/lib/origen_testers/igxl_based_tester/j750_hpt/generator.rb +19 -19
  77. data/lib/origen_testers/igxl_based_tester/j750_hpt/patgroup.rb +9 -9
  78. data/lib/origen_testers/igxl_based_tester/j750_hpt/patgroups.rb +9 -9
  79. data/lib/origen_testers/igxl_based_tester/j750_hpt/patset.rb +9 -9
  80. data/lib/origen_testers/igxl_based_tester/j750_hpt/patset_pattern.rb +9 -9
  81. data/lib/origen_testers/igxl_based_tester/j750_hpt/patsets.rb +9 -9
  82. data/lib/origen_testers/igxl_based_tester/j750_hpt/patsubr.rb +9 -9
  83. data/lib/origen_testers/igxl_based_tester/j750_hpt/patsubr_pattern.rb +9 -9
  84. data/lib/origen_testers/igxl_based_tester/j750_hpt/patsubrs.rb +9 -9
  85. data/lib/origen_testers/igxl_based_tester/j750_hpt/test_instance.rb +599 -599
  86. data/lib/origen_testers/igxl_based_tester/j750_hpt/test_instance_group.rb +9 -9
  87. data/lib/origen_testers/igxl_based_tester/j750_hpt/test_instances.rb +9 -9
  88. data/lib/origen_testers/igxl_based_tester/parser.rb +102 -102
  89. data/lib/origen_testers/igxl_based_tester/parser/ac_spec.rb +9 -9
  90. data/lib/origen_testers/igxl_based_tester/parser/dc_spec.rb +33 -33
  91. data/lib/origen_testers/igxl_based_tester/parser/dc_specs.rb +48 -48
  92. data/lib/origen_testers/igxl_based_tester/parser/descriptions.rb +339 -339
  93. data/lib/origen_testers/igxl_based_tester/parser/flow.rb +109 -109
  94. data/lib/origen_testers/igxl_based_tester/parser/flow_line.rb +203 -203
  95. data/lib/origen_testers/igxl_based_tester/parser/flows.rb +21 -21
  96. data/lib/origen_testers/igxl_based_tester/parser/pattern_set.rb +92 -92
  97. data/lib/origen_testers/igxl_based_tester/parser/pattern_sets.rb +31 -31
  98. data/lib/origen_testers/igxl_based_tester/parser/test_instance.rb +420 -420
  99. data/lib/origen_testers/igxl_based_tester/parser/test_instances.rb +24 -24
  100. data/lib/origen_testers/igxl_based_tester/parser/timeset.rb +13 -13
  101. data/lib/origen_testers/igxl_based_tester/ultraflex.rb +798 -798
  102. data/lib/origen_testers/igxl_based_tester/ultraflex/ac_specsets.rb +10 -10
  103. data/lib/origen_testers/igxl_based_tester/ultraflex/ate_hardware.rb +949 -949
  104. data/lib/origen_testers/igxl_based_tester/ultraflex/custom_test_instance.rb +36 -36
  105. data/lib/origen_testers/igxl_based_tester/ultraflex/dc_specsets.rb +10 -10
  106. data/lib/origen_testers/igxl_based_tester/ultraflex/edge.rb +9 -9
  107. data/lib/origen_testers/igxl_based_tester/ultraflex/edges.rb +9 -9
  108. data/lib/origen_testers/igxl_based_tester/ultraflex/edgeset.rb +9 -9
  109. data/lib/origen_testers/igxl_based_tester/ultraflex/edgesets.rb +10 -10
  110. data/lib/origen_testers/igxl_based_tester/ultraflex/flow.rb +158 -158
  111. data/lib/origen_testers/igxl_based_tester/ultraflex/flow_line.rb +19 -19
  112. data/lib/origen_testers/igxl_based_tester/ultraflex/generator.rb +19 -19
  113. data/lib/origen_testers/igxl_based_tester/ultraflex/global_specs.rb +10 -10
  114. data/lib/origen_testers/igxl_based_tester/ultraflex/job.rb +9 -9
  115. data/lib/origen_testers/igxl_based_tester/ultraflex/jobs.rb +10 -10
  116. data/lib/origen_testers/igxl_based_tester/ultraflex/level_io_se.rb +9 -9
  117. data/lib/origen_testers/igxl_based_tester/ultraflex/level_supply.rb +9 -9
  118. data/lib/origen_testers/igxl_based_tester/ultraflex/levels.rb +9 -9
  119. data/lib/origen_testers/igxl_based_tester/ultraflex/levelset.rb +10 -10
  120. data/lib/origen_testers/igxl_based_tester/ultraflex/patgroup.rb +9 -9
  121. data/lib/origen_testers/igxl_based_tester/ultraflex/patgroups.rb +10 -10
  122. data/lib/origen_testers/igxl_based_tester/ultraflex/patset.rb +9 -9
  123. data/lib/origen_testers/igxl_based_tester/ultraflex/patset_pattern.rb +18 -18
  124. data/lib/origen_testers/igxl_based_tester/ultraflex/patsets.rb +10 -10
  125. data/lib/origen_testers/igxl_based_tester/ultraflex/patsubr.rb +9 -9
  126. data/lib/origen_testers/igxl_based_tester/ultraflex/patsubr_pattern.rb +18 -18
  127. data/lib/origen_testers/igxl_based_tester/ultraflex/patsubrs.rb +10 -10
  128. data/lib/origen_testers/igxl_based_tester/ultraflex/pinmap.rb +10 -10
  129. data/lib/origen_testers/igxl_based_tester/ultraflex/references.rb +10 -10
  130. data/lib/origen_testers/igxl_based_tester/ultraflex/templates/ac_specsets.txt.erb +0 -0
  131. data/lib/origen_testers/igxl_based_tester/ultraflex/templates/dc_specsets.txt.erb +0 -0
  132. data/lib/origen_testers/igxl_based_tester/ultraflex/templates/edgesets.txt.erb +0 -0
  133. data/lib/origen_testers/igxl_based_tester/ultraflex/templates/global_specs.txt.erb +0 -0
  134. data/lib/origen_testers/igxl_based_tester/ultraflex/templates/jobs.txt.erb +0 -0
  135. data/lib/origen_testers/igxl_based_tester/ultraflex/templates/levelset.txt.erb +0 -0
  136. data/lib/origen_testers/igxl_based_tester/ultraflex/templates/pinmap.txt.erb +0 -0
  137. data/lib/origen_testers/igxl_based_tester/ultraflex/templates/references.txt.erb +0 -0
  138. data/lib/origen_testers/igxl_based_tester/ultraflex/templates/timesets.txt.erb +0 -0
  139. data/lib/origen_testers/igxl_based_tester/ultraflex/templates/timesets_basic.txt.erb +0 -0
  140. data/lib/origen_testers/igxl_based_tester/ultraflex/test_instance.rb +315 -315
  141. data/lib/origen_testers/igxl_based_tester/ultraflex/test_instance_group.rb +9 -9
  142. data/lib/origen_testers/igxl_based_tester/ultraflex/test_instances.rb +10 -10
  143. data/lib/origen_testers/igxl_based_tester/ultraflex/timeset.rb +9 -9
  144. data/lib/origen_testers/igxl_based_tester/ultraflex/timesets.rb +10 -10
  145. data/lib/origen_testers/igxl_based_tester/ultraflex/timesets_basic.rb +10 -10
  146. data/lib/origen_testers/interface.rb +345 -324
  147. data/lib/origen_testers/memory_style.rb +77 -77
  148. data/lib/origen_testers/no_interface.rb +7 -7
  149. data/lib/origen_testers/origen_ext/application/runner.rb +25 -25
  150. data/lib/origen_testers/origen_ext/generator.rb +54 -54
  151. data/lib/origen_testers/origen_ext/generator/flow.rb +91 -77
  152. data/lib/origen_testers/origen_ext/generator/resources.rb +21 -21
  153. data/lib/origen_testers/origen_ext/pins/pin.rb +78 -78
  154. data/lib/origen_testers/origen_ext/pins/pin_collection.rb +84 -84
  155. data/lib/origen_testers/parser.rb +22 -22
  156. data/lib/origen_testers/parser/description_lookup.rb +62 -62
  157. data/lib/origen_testers/parser/searchable_array.rb +30 -30
  158. data/lib/origen_testers/parser/searchable_hash.rb +30 -30
  159. data/lib/origen_testers/pattern_compilers.rb +116 -116
  160. data/lib/origen_testers/pattern_compilers/assembler.rb +88 -88
  161. data/lib/origen_testers/pattern_compilers/job.rb +96 -96
  162. data/lib/origen_testers/pattern_compilers/ultraflex_pattern_compiler.rb +599 -599
  163. data/lib/origen_testers/program_generators.rb +62 -62
  164. data/lib/origen_testers/smartest_based_tester.rb +8 -8
  165. data/lib/origen_testers/smartest_based_tester/base.rb +576 -567
  166. data/lib/origen_testers/smartest_based_tester/base/flow.rb +296 -291
  167. data/lib/origen_testers/smartest_based_tester/base/generator.rb +207 -194
  168. data/lib/origen_testers/smartest_based_tester/base/pattern_compiler.rb +32 -32
  169. data/lib/origen_testers/smartest_based_tester/base/pattern_master.rb +69 -69
  170. data/lib/origen_testers/smartest_based_tester/base/processors.rb +16 -16
  171. data/lib/origen_testers/smartest_based_tester/base/processors/adjacent_if_combiner.rb +106 -106
  172. data/lib/origen_testers/smartest_based_tester/base/processors/continue_implementer.rb +39 -39
  173. data/lib/origen_testers/smartest_based_tester/base/processors/empty_branch_cleaner.rb +21 -21
  174. data/lib/origen_testers/smartest_based_tester/base/processors/extract_run_flag_table.rb +33 -33
  175. data/lib/origen_testers/smartest_based_tester/base/processors/extract_set_variables.rb +22 -22
  176. data/lib/origen_testers/smartest_based_tester/base/processors/flag_optimizer.rb +188 -188
  177. data/lib/origen_testers/smartest_based_tester/base/processors/if_ran_cleaner.rb +34 -34
  178. data/lib/origen_testers/smartest_based_tester/base/test_method.rb +178 -164
  179. data/lib/origen_testers/smartest_based_tester/base/test_methods.rb +77 -73
  180. data/lib/origen_testers/smartest_based_tester/base/test_methods/ac_tml.rb +33 -33
  181. data/lib/origen_testers/smartest_based_tester/base/test_methods/base_tml.rb +38 -38
  182. data/lib/origen_testers/smartest_based_tester/base/test_methods/custom_tml.rb +19 -19
  183. data/lib/origen_testers/smartest_based_tester/base/test_methods/dc_tml.rb +147 -147
  184. data/lib/origen_testers/smartest_based_tester/base/test_methods/limits.rb +65 -65
  185. data/lib/origen_testers/smartest_based_tester/base/test_suite.rb +208 -193
  186. data/lib/origen_testers/smartest_based_tester/base/test_suites.rb +58 -54
  187. data/lib/origen_testers/smartest_based_tester/base/variables_file.rb +38 -38
  188. data/lib/origen_testers/smartest_based_tester/v93k.rb +8 -8
  189. data/lib/origen_testers/smartest_based_tester/v93k/builder.rb +89 -89
  190. data/lib/origen_testers/smartest_based_tester/v93k/builder/flow.rb +181 -181
  191. data/lib/origen_testers/smartest_based_tester/v93k/builder/pattern_master.rb +54 -54
  192. data/lib/origen_testers/smartest_based_tester/v93k/flow.rb +10 -10
  193. data/lib/origen_testers/smartest_based_tester/v93k/generator.rb +19 -19
  194. data/lib/origen_testers/smartest_based_tester/v93k/pattern_compiler.rb +10 -10
  195. data/lib/origen_testers/smartest_based_tester/v93k/pattern_master.rb +10 -10
  196. data/lib/origen_testers/smartest_based_tester/v93k/templates/template.aiv.erb +17 -17
  197. data/lib/origen_testers/smartest_based_tester/v93k/templates/template.pmfl.erb +13 -13
  198. data/lib/origen_testers/smartest_based_tester/v93k/templates/template.tf.erb +236 -214
  199. data/lib/origen_testers/smartest_based_tester/v93k/templates/vars.tf.erb +48 -48
  200. data/lib/origen_testers/smartest_based_tester/v93k/test_method.rb +9 -9
  201. data/lib/origen_testers/smartest_based_tester/v93k/test_methods.rb +9 -9
  202. data/lib/origen_testers/smartest_based_tester/v93k/test_suite.rb +9 -9
  203. data/lib/origen_testers/smartest_based_tester/v93k/test_suites.rb +9 -9
  204. data/lib/origen_testers/smartest_based_tester/v93k/variables_file.rb +10 -10
  205. data/lib/origen_testers/test/basic_interface.rb +17 -17
  206. data/lib/origen_testers/test/block.rb +21 -21
  207. data/lib/origen_testers/test/custom_test_interface.rb +111 -111
  208. data/lib/origen_testers/test/dut.rb +295 -295
  209. data/lib/origen_testers/test/dut2.rb +76 -76
  210. data/lib/origen_testers/test/dut3.rb +244 -244
  211. data/lib/origen_testers/test/interface.rb +503 -503
  212. data/lib/origen_testers/test/nvm.rb +94 -94
  213. data/lib/origen_testers/timing.rb +368 -368
  214. data/lib/origen_testers/vector.rb +207 -207
  215. data/lib/origen_testers/vector_based_tester.rb +41 -41
  216. data/lib/origen_testers/vector_generator.rb +655 -655
  217. data/lib/origen_testers/vector_pipeline.rb +302 -302
  218. data/pattern/bitmap.rb +7 -7
  219. data/pattern/dc_instr.rb +7 -7
  220. data/pattern/delay.rb +7 -7
  221. data/pattern/freq_counter.rb +6 -6
  222. data/pattern/mem_test.rb +8 -8
  223. data/pattern/multi_vector.rb +122 -122
  224. data/pattern/multi_vector_plus1.rb +125 -125
  225. data/pattern/nvm/j750/add_late_pins.rb +3 -3
  226. data/pattern/nvm/j750/iterator_postfix_test_x_bx.rb +8 -8
  227. data/pattern/nvm/j750/iterator_test_x_bx.rb +8 -8
  228. data/pattern/nvm/j750/j750_halt.rb +159 -159
  229. data/pattern/nvm/j750/j750_workout.rb +209 -209
  230. data/pattern/nvm/j750/timing.rb +73 -73
  231. data/pattern/read_write_reg.rb +61 -61
  232. data/pattern/reset.rb +4 -4
  233. data/pattern/subroutines.rb +69 -69
  234. data/pattern/tester_overlay.rb +61 -52
  235. data/pattern/tester_store.rb +28 -28
  236. data/program/_additional_erase.rb +7 -7
  237. data/program/_efa_resources.rb +7 -7
  238. data/program/_erase.rb +25 -25
  239. data/program/_erase_vfy.rb +5 -5
  240. data/program/_iv_resources.rb +10 -10
  241. data/program/basic_interface.rb +5 -5
  242. data/program/components/_prb1_main.rb +222 -222
  243. data/program/components/_temp.rb +6 -6
  244. data/program/custom_tests.rb +10 -10
  245. data/program/flow_control.rb +422 -422
  246. data/program/prb1.rb +11 -11
  247. data/program/prb1_resources.rb +28 -28
  248. data/program/prb2.rb +27 -27
  249. data/program/test.rb +29 -29
  250. data/program/uflex_resources.rb +199 -199
  251. data/templates/example.txt.erb +53 -53
  252. data/templates/j750/program_sheet.txt.erb +9 -9
  253. data/templates/manifest/v93k.yaml.erb +22 -22
  254. data/templates/web/index.md.erb +51 -51
  255. data/templates/web/layouts/_basic.html.erb +15 -15
  256. data/templates/web/partials/_navbar.html.erb +22 -22
  257. data/templates/web/release_notes.md.erb +5 -5
  258. metadata +2 -2
@@ -1,21 +1,21 @@
1
- # This shim is temporary to help NXP transition to Origen from
2
- # our original internal version (RGen)
3
- if defined? RGen::ORIGENTRANSITION
4
- require 'rgen/generator/resources'
5
- else
6
- require 'origen/generator/resources'
7
- end
8
- module Origen
9
- class Generator
10
- class Resources
11
- alias_method :orig_create, :create
12
-
13
- # Patching to make resources_mode apply much earlier
14
- def create(options = {}, &block)
15
- OrigenTesters::Interface.with_resources_mode do
16
- orig_create(options, &block)
17
- end
18
- end
19
- end
20
- end
21
- end
1
+ # This shim is temporary to help NXP transition to Origen from
2
+ # our original internal version (RGen)
3
+ if defined? RGen::ORIGENTRANSITION
4
+ require 'rgen/generator/resources'
5
+ else
6
+ require 'origen/generator/resources'
7
+ end
8
+ module Origen
9
+ class Generator
10
+ class Resources
11
+ alias_method :orig_create, :create
12
+
13
+ # Patching to make resources_mode apply much earlier
14
+ def create(options = {}, &block)
15
+ OrigenTesters::Interface.with_resources_mode do
16
+ orig_create(options, &block)
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
@@ -1,78 +1,78 @@
1
- # This code is used to extend Origen Core's pin class with additional functionality
2
-
3
- require 'origen/pins/pin'
4
-
5
- module Origen
6
- module Pins
7
- class Pin
8
- # Returns the channel number for the pin on a given tester site (default = 0), based on a given tester channel
9
- # map (default_channelmap). Optionally user can specify site or channelmap.
10
- def channel(options = {})
11
- options = {
12
- chanmapname: $tester.default_channelmap, # Default is to use default_channelmap
13
- site: 0 # Default is to use site 0.
14
- }.merge(options)
15
- unless $tester.channelmap[options[:chanmapname]]
16
- fail "You must first import the tester channel map (e.g. $tester.channelmap = \"probe_x32\") before calling pin.channel"
17
- end
18
-
19
- channelinfo = Struct.new(:channel, :chanmapname, :site)
20
- channelinfo.new($tester.get_tester_channel(options[:chanmapname], name, options[:site]), options[:chanmapname], options[:site])
21
- end
22
-
23
- # Returns the instrument type for the pin on a given tester site (default = 0), based on a given tester channel
24
- # map (default_channelmap) and a given tester configuration (default_testerconfig).
25
- # Optionally user can specify site, channelmap, or testerconfig.
26
- def instrument_type(options = {})
27
- options = {
28
- chanmapname: $tester.default_channelmap, # Default is to use default_channelmap
29
- site: 0, # Default is to use site 0.
30
- testerconfigname: $tester.default_testerconfig # Default is to use default_testerconfig
31
- }.merge(options)
32
-
33
- unless $tester.channelmap[options[:chanmapname]]
34
- fail "You must first import the tester channel map (e.g. $tester.channelmap = \"probe_x32\") before calling pin.channel"
35
- end
36
- unless $tester.testerconfig[options[:testerconfigname]]
37
- fail "You must first import the tester configuration (e.g. $tester.testerconfig = \"UflexConfigA\") before calling pin.instrument_type"
38
- end
39
-
40
- instrumentinfo = Struct.new(:instrument, :chanmapname, :site, :testerconfigname)
41
- instrumentinfo.new($tester.get_tester_instrument(options[:testerconfigname], $tester.get_tester_channel(options[:chanmapname], name, options[:site]).split('.')[0].to_i), options[:chanmapname], options[:site], options[:testerconfigname])
42
- end
43
-
44
- # Returns ATE Hardware information for the pin (channel # and instrument type) on a given tester site
45
- # (default = 0), based on a given tester channelmap (default_channelmap) and a given tester
46
- # configuration (default_testerconfig). # Optionally user can specify site, channelmap, or testerconfig.
47
- def ate_hardware(options = {})
48
- options = {
49
- chanmapname: $tester.default_channelmap, # Default is to use default_channelmap
50
- site: 0, # Default is to use site 0.
51
- testerconfigname: $tester.default_testerconfig # Default is to use default_testerconfig
52
- }.merge(options)
53
-
54
- unless $tester.channelmap[options[:chanmapname]]
55
- fail "You must first import the tester channel map (e.g. $tester.channelmap = \"probe_x32\") before calling pin.channel"
56
- end
57
- unless $tester.testerconfig[options[:testerconfigname]]
58
- fail "You must first import the tester configuration (e.g. $tester.testerconfig = \"UflexConfigA\") before calling pin.instrument_type"
59
- end
60
- if Origen.top_level.power_pin_groups.keys.include?(name) # Power Pin Groups do not need :ppmu, but need :supply
61
- instrumentinfo = Struct.new(:channel, :instrument, :chanmapname, :site, :testerconfigname, :supply)
62
- @channel = $tester.get_tester_channel(options[:chanmapname], name, options[:site])
63
- @instrument = $tester.get_tester_instrument(options[:testerconfigname], $tester.get_tester_channel(options[:chanmapname], name, options[:site]).split('.')[0].to_i) + $tester.is_vhdvs_hc(options[:chanmapname], name, options[:site]).to_s + $tester.is_hexvs_plus(options[:testerconfigname], @channel.split('.')[0].to_i).to_s + $tester.is_vhdvs_plus(options[:testerconfigname], @channel.split('.')[0].to_i).to_s + $tester.merged_channels(options[:chanmapname], name, options[:site]).to_s
64
- @supply = $tester.ate_hardware(@instrument).supply
65
- instrumentinfo.new(@channel, @instrument, options[:chanmapname], options[:site], options[:testerconfigname], @supply)
66
- else
67
- if $tester.get_tester_channel(options[:chanmapname], name, options[:site]).split('.')[0].to_i == 24
68
- instrumentinfo = Struct.new(:channel, :instrument, :chanmapname, :site, :testerconfigname)
69
- instrumentinfo.new($tester.get_tester_channel(options[:chanmapname], name, options[:site]), $tester.get_tester_instrument(options[:testerconfigname], $tester.get_tester_channel(options[:chanmapname], name, options[:site]).split('.')[0].to_i), options[:chanmapname], options[:site], options[:testerconfigname])
70
- else
71
- instrumentinfo = Struct.new(:channel, :instrument, :chanmapname, :site, :testerconfigname, :ppmu)
72
- instrumentinfo.new($tester.get_tester_channel(options[:chanmapname], name, options[:site]), $tester.get_tester_instrument(options[:testerconfigname], $tester.get_tester_channel(options[:chanmapname], name, options[:site]).split('.')[0].to_i), options[:chanmapname], options[:site], options[:testerconfigname], $tester.ate_hardware($tester.get_tester_instrument(options[:testerconfigname], $tester.get_tester_channel(options[:chanmapname], name, options[:site]).split('.')[0].to_i)).ppmu)
73
- end
74
- end
75
- end
76
- end
77
- end
78
- end
1
+ # This code is used to extend Origen Core's pin class with additional functionality
2
+
3
+ require 'origen/pins/pin'
4
+
5
+ module Origen
6
+ module Pins
7
+ class Pin
8
+ # Returns the channel number for the pin on a given tester site (default = 0), based on a given tester channel
9
+ # map (default_channelmap). Optionally user can specify site or channelmap.
10
+ def channel(options = {})
11
+ options = {
12
+ chanmapname: $tester.default_channelmap, # Default is to use default_channelmap
13
+ site: 0 # Default is to use site 0.
14
+ }.merge(options)
15
+ unless $tester.channelmap[options[:chanmapname]]
16
+ fail "You must first import the tester channel map (e.g. $tester.channelmap = \"probe_x32\") before calling pin.channel"
17
+ end
18
+
19
+ channelinfo = Struct.new(:channel, :chanmapname, :site)
20
+ channelinfo.new($tester.get_tester_channel(options[:chanmapname], name, options[:site]), options[:chanmapname], options[:site])
21
+ end
22
+
23
+ # Returns the instrument type for the pin on a given tester site (default = 0), based on a given tester channel
24
+ # map (default_channelmap) and a given tester configuration (default_testerconfig).
25
+ # Optionally user can specify site, channelmap, or testerconfig.
26
+ def instrument_type(options = {})
27
+ options = {
28
+ chanmapname: $tester.default_channelmap, # Default is to use default_channelmap
29
+ site: 0, # Default is to use site 0.
30
+ testerconfigname: $tester.default_testerconfig # Default is to use default_testerconfig
31
+ }.merge(options)
32
+
33
+ unless $tester.channelmap[options[:chanmapname]]
34
+ fail "You must first import the tester channel map (e.g. $tester.channelmap = \"probe_x32\") before calling pin.channel"
35
+ end
36
+ unless $tester.testerconfig[options[:testerconfigname]]
37
+ fail "You must first import the tester configuration (e.g. $tester.testerconfig = \"UflexConfigA\") before calling pin.instrument_type"
38
+ end
39
+
40
+ instrumentinfo = Struct.new(:instrument, :chanmapname, :site, :testerconfigname)
41
+ instrumentinfo.new($tester.get_tester_instrument(options[:testerconfigname], $tester.get_tester_channel(options[:chanmapname], name, options[:site]).split('.')[0].to_i), options[:chanmapname], options[:site], options[:testerconfigname])
42
+ end
43
+
44
+ # Returns ATE Hardware information for the pin (channel # and instrument type) on a given tester site
45
+ # (default = 0), based on a given tester channelmap (default_channelmap) and a given tester
46
+ # configuration (default_testerconfig). # Optionally user can specify site, channelmap, or testerconfig.
47
+ def ate_hardware(options = {})
48
+ options = {
49
+ chanmapname: $tester.default_channelmap, # Default is to use default_channelmap
50
+ site: 0, # Default is to use site 0.
51
+ testerconfigname: $tester.default_testerconfig # Default is to use default_testerconfig
52
+ }.merge(options)
53
+
54
+ unless $tester.channelmap[options[:chanmapname]]
55
+ fail "You must first import the tester channel map (e.g. $tester.channelmap = \"probe_x32\") before calling pin.channel"
56
+ end
57
+ unless $tester.testerconfig[options[:testerconfigname]]
58
+ fail "You must first import the tester configuration (e.g. $tester.testerconfig = \"UflexConfigA\") before calling pin.instrument_type"
59
+ end
60
+ if Origen.top_level.power_pin_groups.keys.include?(name) # Power Pin Groups do not need :ppmu, but need :supply
61
+ instrumentinfo = Struct.new(:channel, :instrument, :chanmapname, :site, :testerconfigname, :supply)
62
+ @channel = $tester.get_tester_channel(options[:chanmapname], name, options[:site])
63
+ @instrument = $tester.get_tester_instrument(options[:testerconfigname], $tester.get_tester_channel(options[:chanmapname], name, options[:site]).split('.')[0].to_i) + $tester.is_vhdvs_hc(options[:chanmapname], name, options[:site]).to_s + $tester.is_hexvs_plus(options[:testerconfigname], @channel.split('.')[0].to_i).to_s + $tester.is_vhdvs_plus(options[:testerconfigname], @channel.split('.')[0].to_i).to_s + $tester.merged_channels(options[:chanmapname], name, options[:site]).to_s
64
+ @supply = $tester.ate_hardware(@instrument).supply
65
+ instrumentinfo.new(@channel, @instrument, options[:chanmapname], options[:site], options[:testerconfigname], @supply)
66
+ else
67
+ if $tester.get_tester_channel(options[:chanmapname], name, options[:site]).split('.')[0].to_i == 24
68
+ instrumentinfo = Struct.new(:channel, :instrument, :chanmapname, :site, :testerconfigname)
69
+ instrumentinfo.new($tester.get_tester_channel(options[:chanmapname], name, options[:site]), $tester.get_tester_instrument(options[:testerconfigname], $tester.get_tester_channel(options[:chanmapname], name, options[:site]).split('.')[0].to_i), options[:chanmapname], options[:site], options[:testerconfigname])
70
+ else
71
+ instrumentinfo = Struct.new(:channel, :instrument, :chanmapname, :site, :testerconfigname, :ppmu)
72
+ instrumentinfo.new($tester.get_tester_channel(options[:chanmapname], name, options[:site]), $tester.get_tester_instrument(options[:testerconfigname], $tester.get_tester_channel(options[:chanmapname], name, options[:site]).split('.')[0].to_i), options[:chanmapname], options[:site], options[:testerconfigname], $tester.ate_hardware($tester.get_tester_instrument(options[:testerconfigname], $tester.get_tester_channel(options[:chanmapname], name, options[:site]).split('.')[0].to_i)).ppmu)
73
+ end
74
+ end
75
+ end
76
+ end
77
+ end
78
+ end
@@ -1,84 +1,84 @@
1
- # This code is used to extend Origen Core's pin_collection class with additional functionality
2
-
3
- require 'origen/pins/pin_collection'
4
-
5
- module Origen
6
- module Pins
7
- class PinCollection
8
- # Returns the channel number for the pin_collection on a given tester site (default = 0), based on a given tester channel
9
- # map (default_channelmap). Optionally user can specify site or channelmap.
10
- def channel(options = {})
11
- options = {
12
- chanmapname: $tester.default_channelmap, # Default is to use default_channelmap
13
- site: 0 # Default is to use site 0.
14
- }.merge(options)
15
- unless $tester.channelmap[options[:chanmapname]]
16
- fail "You must first import the tester channel map (e.g. $tester.channelmap = \"probe_x32\") before calling pin.channel"
17
- end
18
-
19
- channelinfo = Struct.new(:channel, :chanmapname, :site)
20
- channelinfo.new($tester.get_tester_channel(options[:chanmapname], name, options[:site]), options[:chanmapname], options[:site])
21
- end
22
-
23
- # Returns the instrument type for the pin_collection on a given tester site (default = 0), based on a given tester channel
24
- # map (default_channelmap) and a given tester configuration (default_testerconfig).
25
- # Optionally user can specify site, channelmap, or testerconfig.
26
- def instrument_type(options = {})
27
- options = {
28
- chanmapname: $tester.default_channelmap, # Default is to use default_channelmap
29
- site: 0, # Default is to use site 0.
30
- testerconfigname: $tester.default_testerconfig # Default is to use default_testerconfig
31
- }.merge(options)
32
-
33
- unless $tester.channelmap[options[:chanmapname]]
34
- fail "You must first import the tester channel map (e.g. $tester.channelmap = \"probe_x32\") before calling pin.channel"
35
- end
36
- unless $tester.testerconfig[options[:testerconfigname]]
37
- fail "You must first import the tester configuration (e.g. $tester.testerconfig = \"UflexConfigA\") before calling pin.instrument_type"
38
- end
39
-
40
- instrumentinfo = Struct.new(:instrument, :chanmapname, :site, :testerconfigname)
41
- instrumentinfo.new($tester.get_tester_instrument(options[:testerconfigname], $tester.get_tester_channel(options[:chanmapname], name, options[:site]).split('.')[0].to_i), options[:chanmapname], options[:site], options[:testerconfigname])
42
- end
43
-
44
- # Returns ATE Hardware information for the pin_collection (channel # and instrument type) on a given tester site
45
- # (default = 0), based on a given tester channelmap (default_channelmap) and a given tester
46
- # configuration (default_testerconfig). # Optionally user can specify site, channelmap, or testerconfig.
47
- def ate_hardware(options = {})
48
- options = {
49
- chanmapname: $tester.default_channelmap, # Default is to use default_channelmap
50
- site: 0, # Default is to use site 0.
51
- testerconfigname: $tester.default_testerconfig # Default is to use default_testerconfig
52
- }.merge(options)
53
-
54
- unless $tester.channelmap[options[:chanmapname]]
55
- fail "You must first import the tester channel map (e.g. $tester.channelmap = \"probe_x32\") before calling pin.channel"
56
- end
57
- unless $tester.testerconfig[options[:testerconfigname]]
58
- fail "You must first import the tester configuration (e.g. $tester.testerconfig = \"UflexConfigA\") before calling pin.instrument_type"
59
- end
60
-
61
- if Origen.top_level.power_pin_groups.keys.include?(name) # Power Pin Groups do not need :ppmu, but need :supply
62
- instrumentinfo = Struct.new(:channel, :instrument, :chanmapname, :site, :testerconfigname, :supply)
63
- @channel = $tester.get_tester_channel(options[:chanmapname], name, options[:site])
64
- @instrument = $tester.get_tester_instrument(options[:testerconfigname], $tester.get_tester_channel(options[:chanmapname], name, options[:site]).split('.')[0].to_i) + $tester.is_vhdvs_hc(options[:chanmapname], name, options[:site]).to_s + $tester.is_hexvs_plus(options[:testerconfigname], @channel.split('.')[0].to_i).to_s + $tester.is_vhdvs_plus(options[:testerconfigname], @channel.split('.')[0].to_i).to_s + $tester.merged_channels(options[:chanmapname], name, options[:site]).to_s
65
- @supply = $tester.ate_hardware(@instrument).supply
66
- instrumentinfo.new(@channel, @instrument, options[:chanmapname], options[:site], options[:testerconfigname], @supply)
67
- else # Collecting information of individual members and put in arrays
68
- instrumentinfo = Struct.new(:members, :channel, :instrument, :chanmapname, :site, :testerconfigname, :ppmu)
69
- @members = []
70
- @channel = []
71
- @instrument = []
72
- @ppmu = []
73
- Origen.top_level.pin_groups(name).map(&:id).each do |pinname|
74
- @members << Origen.top_level.pins(pinname).name
75
- @channel << $tester.get_tester_channel(options[:chanmapname], Origen.top_level.pins(pinname).name, options[:site])
76
- @instrument << $tester.get_tester_instrument(options[:testerconfigname], $tester.get_tester_channel(options[:chanmapname], Origen.top_level.pins(pinname).name, options[:site]).split('.')[0].to_i)
77
- @ppmu << $tester.ate_hardware($tester.get_tester_instrument(options[:testerconfigname], $tester.get_tester_channel(options[:chanmapname], Origen.top_level.pins(pinname).name, options[:site]).split('.')[0].to_i)).ppmu
78
- end
79
- instrumentinfo.new(@members, @channel, @instrument, options[:chanmapname], options[:site], options[:testerconfigname], @ppmu)
80
- end
81
- end
82
- end
83
- end
84
- end
1
+ # This code is used to extend Origen Core's pin_collection class with additional functionality
2
+
3
+ require 'origen/pins/pin_collection'
4
+
5
+ module Origen
6
+ module Pins
7
+ class PinCollection
8
+ # Returns the channel number for the pin_collection on a given tester site (default = 0), based on a given tester channel
9
+ # map (default_channelmap). Optionally user can specify site or channelmap.
10
+ def channel(options = {})
11
+ options = {
12
+ chanmapname: $tester.default_channelmap, # Default is to use default_channelmap
13
+ site: 0 # Default is to use site 0.
14
+ }.merge(options)
15
+ unless $tester.channelmap[options[:chanmapname]]
16
+ fail "You must first import the tester channel map (e.g. $tester.channelmap = \"probe_x32\") before calling pin.channel"
17
+ end
18
+
19
+ channelinfo = Struct.new(:channel, :chanmapname, :site)
20
+ channelinfo.new($tester.get_tester_channel(options[:chanmapname], name, options[:site]), options[:chanmapname], options[:site])
21
+ end
22
+
23
+ # Returns the instrument type for the pin_collection on a given tester site (default = 0), based on a given tester channel
24
+ # map (default_channelmap) and a given tester configuration (default_testerconfig).
25
+ # Optionally user can specify site, channelmap, or testerconfig.
26
+ def instrument_type(options = {})
27
+ options = {
28
+ chanmapname: $tester.default_channelmap, # Default is to use default_channelmap
29
+ site: 0, # Default is to use site 0.
30
+ testerconfigname: $tester.default_testerconfig # Default is to use default_testerconfig
31
+ }.merge(options)
32
+
33
+ unless $tester.channelmap[options[:chanmapname]]
34
+ fail "You must first import the tester channel map (e.g. $tester.channelmap = \"probe_x32\") before calling pin.channel"
35
+ end
36
+ unless $tester.testerconfig[options[:testerconfigname]]
37
+ fail "You must first import the tester configuration (e.g. $tester.testerconfig = \"UflexConfigA\") before calling pin.instrument_type"
38
+ end
39
+
40
+ instrumentinfo = Struct.new(:instrument, :chanmapname, :site, :testerconfigname)
41
+ instrumentinfo.new($tester.get_tester_instrument(options[:testerconfigname], $tester.get_tester_channel(options[:chanmapname], name, options[:site]).split('.')[0].to_i), options[:chanmapname], options[:site], options[:testerconfigname])
42
+ end
43
+
44
+ # Returns ATE Hardware information for the pin_collection (channel # and instrument type) on a given tester site
45
+ # (default = 0), based on a given tester channelmap (default_channelmap) and a given tester
46
+ # configuration (default_testerconfig). # Optionally user can specify site, channelmap, or testerconfig.
47
+ def ate_hardware(options = {})
48
+ options = {
49
+ chanmapname: $tester.default_channelmap, # Default is to use default_channelmap
50
+ site: 0, # Default is to use site 0.
51
+ testerconfigname: $tester.default_testerconfig # Default is to use default_testerconfig
52
+ }.merge(options)
53
+
54
+ unless $tester.channelmap[options[:chanmapname]]
55
+ fail "You must first import the tester channel map (e.g. $tester.channelmap = \"probe_x32\") before calling pin.channel"
56
+ end
57
+ unless $tester.testerconfig[options[:testerconfigname]]
58
+ fail "You must first import the tester configuration (e.g. $tester.testerconfig = \"UflexConfigA\") before calling pin.instrument_type"
59
+ end
60
+
61
+ if Origen.top_level.power_pin_groups.keys.include?(name) # Power Pin Groups do not need :ppmu, but need :supply
62
+ instrumentinfo = Struct.new(:channel, :instrument, :chanmapname, :site, :testerconfigname, :supply)
63
+ @channel = $tester.get_tester_channel(options[:chanmapname], name, options[:site])
64
+ @instrument = $tester.get_tester_instrument(options[:testerconfigname], $tester.get_tester_channel(options[:chanmapname], name, options[:site]).split('.')[0].to_i) + $tester.is_vhdvs_hc(options[:chanmapname], name, options[:site]).to_s + $tester.is_hexvs_plus(options[:testerconfigname], @channel.split('.')[0].to_i).to_s + $tester.is_vhdvs_plus(options[:testerconfigname], @channel.split('.')[0].to_i).to_s + $tester.merged_channels(options[:chanmapname], name, options[:site]).to_s
65
+ @supply = $tester.ate_hardware(@instrument).supply
66
+ instrumentinfo.new(@channel, @instrument, options[:chanmapname], options[:site], options[:testerconfigname], @supply)
67
+ else # Collecting information of individual members and put in arrays
68
+ instrumentinfo = Struct.new(:members, :channel, :instrument, :chanmapname, :site, :testerconfigname, :ppmu)
69
+ @members = []
70
+ @channel = []
71
+ @instrument = []
72
+ @ppmu = []
73
+ Origen.top_level.pin_groups(name).map(&:id).each do |pinname|
74
+ @members << Origen.top_level.pins(pinname).name
75
+ @channel << $tester.get_tester_channel(options[:chanmapname], Origen.top_level.pins(pinname).name, options[:site])
76
+ @instrument << $tester.get_tester_instrument(options[:testerconfigname], $tester.get_tester_channel(options[:chanmapname], Origen.top_level.pins(pinname).name, options[:site]).split('.')[0].to_i)
77
+ @ppmu << $tester.ate_hardware($tester.get_tester_instrument(options[:testerconfigname], $tester.get_tester_channel(options[:chanmapname], Origen.top_level.pins(pinname).name, options[:site]).split('.')[0].to_i)).ppmu
78
+ end
79
+ instrumentinfo.new(@members, @channel, @instrument, options[:chanmapname], options[:site], options[:testerconfigname], @ppmu)
80
+ end
81
+ end
82
+ end
83
+ end
84
+ end
@@ -1,22 +1,22 @@
1
- module OrigenTesters
2
- module Parser
3
- autoload :SearchableArray, 'origen_testers/parser/searchable_array'
4
- autoload :SearchableHash, 'origen_testers/parser/searchable_hash'
5
- autoload :DescriptionLookup, 'origen_testers/parser/description_lookup'
6
-
7
- def parse(*args, &block)
8
- parser.parse(*args, &block)
9
- end
10
-
11
- # Returns a SearchableArray containing all tests parsed from flows, this is intended to
12
- # be the main API for accessing parsed test program attributes and should be a consistent
13
- # method that is implemented accross all tester models.
14
- #
15
- # Direct access to the underlying structure (which will be specific to the tester model)
16
- # can be achieved through the parser method, which returns an instance of J750::Parser
17
- # $tester.parser.test_instances
18
- def tests
19
- parser.flow_items
20
- end
21
- end
22
- end
1
+ module OrigenTesters
2
+ module Parser
3
+ autoload :SearchableArray, 'origen_testers/parser/searchable_array'
4
+ autoload :SearchableHash, 'origen_testers/parser/searchable_hash'
5
+ autoload :DescriptionLookup, 'origen_testers/parser/description_lookup'
6
+
7
+ def parse(*args, &block)
8
+ parser.parse(*args, &block)
9
+ end
10
+
11
+ # Returns a SearchableArray containing all tests parsed from flows, this is intended to
12
+ # be the main API for accessing parsed test program attributes and should be a consistent
13
+ # method that is implemented accross all tester models.
14
+ #
15
+ # Direct access to the underlying structure (which will be specific to the tester model)
16
+ # can be achieved through the parser method, which returns an instance of J750::Parser
17
+ # $tester.parser.test_instances
18
+ def tests
19
+ parser.flow_items
20
+ end
21
+ end
22
+ end
@@ -1,62 +1,62 @@
1
- module OrigenTesters
2
- module Parser
3
- class DescriptionLookup
4
- def initialize
5
- @store = { flow: {}, test: {}, usage: {} }
6
- end
7
-
8
- def for_flow(name, options = {})
9
- k = flow_key(name)
10
- @store[:flow][k] || []
11
- end
12
-
13
- def for_test_definition(name, options = {})
14
- n = name_key(name)
15
- @store[:test][n] || []
16
- end
17
-
18
- def for_test_usage(name, flow, options = {})
19
- k = flow_key(flow)
20
- n = name_key(name)
21
- @store[:usage][k] ||= {}
22
- @store[:usage][k][n] || []
23
- end
24
-
25
- def add_for_flow(flow, description, options = {})
26
- k = flow_key(flow)
27
- @store[:flow][k] ||= []
28
- [description].flatten.each do |d|
29
- @store[:flow][k] << d
30
- end
31
- end
32
-
33
- def add_for_test_definition(test, description, option = {})
34
- n = name_key(test)
35
- @store[:test][n] ||= []
36
- [description].flatten.each do |d|
37
- @store[:test][n] << d
38
- end
39
- end
40
-
41
- def add_for_test_usage(test, flow, description, option = {})
42
- k = flow_key(flow)
43
- n = name_key(test)
44
- @store[:usage][k] ||= {}
45
- @store[:usage][k][n] ||= []
46
- [description].flatten.each do |d|
47
- @store[:usage][k][n] << d
48
- end
49
- end
50
-
51
- private
52
-
53
- def flow_key(flow)
54
- Pathname.new(flow).basename('.*').to_s
55
- end
56
-
57
- def name_key(name)
58
- name.to_s.downcase
59
- end
60
- end
61
- end
62
- end
1
+ module OrigenTesters
2
+ module Parser
3
+ class DescriptionLookup
4
+ def initialize
5
+ @store = { flow: {}, test: {}, usage: {} }
6
+ end
7
+
8
+ def for_flow(name, options = {})
9
+ k = flow_key(name)
10
+ @store[:flow][k] || []
11
+ end
12
+
13
+ def for_test_definition(name, options = {})
14
+ n = name_key(name)
15
+ @store[:test][n] || []
16
+ end
17
+
18
+ def for_test_usage(name, flow, options = {})
19
+ k = flow_key(flow)
20
+ n = name_key(name)
21
+ @store[:usage][k] ||= {}
22
+ @store[:usage][k][n] || []
23
+ end
24
+
25
+ def add_for_flow(flow, description, options = {})
26
+ k = flow_key(flow)
27
+ @store[:flow][k] ||= []
28
+ [description].flatten.each do |d|
29
+ @store[:flow][k] << d
30
+ end
31
+ end
32
+
33
+ def add_for_test_definition(test, description, option = {})
34
+ n = name_key(test)
35
+ @store[:test][n] ||= []
36
+ [description].flatten.each do |d|
37
+ @store[:test][n] << d
38
+ end
39
+ end
40
+
41
+ def add_for_test_usage(test, flow, description, option = {})
42
+ k = flow_key(flow)
43
+ n = name_key(test)
44
+ @store[:usage][k] ||= {}
45
+ @store[:usage][k][n] ||= []
46
+ [description].flatten.each do |d|
47
+ @store[:usage][k][n] << d
48
+ end
49
+ end
50
+
51
+ private
52
+
53
+ def flow_key(flow)
54
+ Pathname.new(flow).basename('.*').to_s
55
+ end
56
+
57
+ def name_key(name)
58
+ name.to_s.downcase
59
+ end
60
+ end
61
+ end
62
+ end