origen 0.2.6 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (158) hide show
  1. checksums.yaml +4 -4
  2. data/bin/origen +3 -1
  3. data/config/boot.rb +1 -7
  4. data/config/commands.rb +0 -1
  5. data/config/version.rb +2 -2
  6. data/lib/c99/{j750_interface.rb → ate_interface.rb} +3 -11
  7. data/lib/c99/doc_interface.rb +1 -1
  8. data/lib/origen.rb +9 -30
  9. data/lib/origen/application.rb +10 -8
  10. data/lib/origen/application/configuration.rb +13 -26
  11. data/lib/origen/application/plugins.rb +122 -0
  12. data/lib/origen/application/plugins_manager.rb +16 -254
  13. data/lib/origen/application/release.rb +2 -2
  14. data/lib/origen/application/runner.rb +2 -4
  15. data/lib/origen/chips.rb +0 -0
  16. data/lib/origen/chips/chip.rb +0 -0
  17. data/lib/origen/chips/design_entry.rb +0 -0
  18. data/lib/origen/chips/doc_entry.rb +0 -0
  19. data/lib/origen/chips/note.rb +0 -0
  20. data/lib/origen/commands.rb +4 -44
  21. data/lib/origen/commands/compile.rb +1 -2
  22. data/lib/origen/commands/generate.rb +1 -1
  23. data/lib/origen/commands/interactive.rb +1 -2
  24. data/lib/origen/commands/plugin.rb +49 -56
  25. data/lib/origen/commands/program.rb +1 -1
  26. data/lib/origen/commands/rc.rb +2 -2
  27. data/lib/origen/commands/version.rb +2 -17
  28. data/lib/origen/commands_global.rb +3 -0
  29. data/lib/origen/file_handler.rb +10 -10
  30. data/lib/origen/generator.rb +1 -1
  31. data/lib/origen/generator/job.rb +1 -1
  32. data/lib/origen/generator/pattern.rb +2 -2
  33. data/lib/origen/generator/pattern_finder.rb +10 -9
  34. data/lib/origen/pins/pin.rb +0 -0
  35. data/lib/origen/regression_manager.rb +0 -0
  36. data/lib/origen/remote_manager.rb +2 -8
  37. data/lib/origen/revision_control/design_sync.rb +0 -0
  38. data/lib/origen/revision_control/git.rb +0 -0
  39. data/lib/origen/specs.rb +0 -0
  40. data/lib/origen/specs/checkers.rb +0 -0
  41. data/lib/origen/specs/creation_info.rb +0 -0
  42. data/lib/origen/specs/exhibit.rb +0 -0
  43. data/lib/origen/specs/spec.rb +0 -0
  44. data/lib/origen/utility.rb +0 -1
  45. data/lib/origen/utility/diff.rb +0 -0
  46. metadata +42 -119
  47. data/lib/origen/import_manager.rb +0 -596
  48. data/lib/origen/nvm.rb +0 -6
  49. data/lib/origen/nvm/block_array.rb +0 -72
  50. data/lib/origen/tester.rb +0 -56
  51. data/lib/origen/tester/api.rb +0 -277
  52. data/lib/origen/tester/bdm/bdm.rb +0 -25
  53. data/lib/origen/tester/doc/doc.rb +0 -226
  54. data/lib/origen/tester/doc/generator.rb +0 -126
  55. data/lib/origen/tester/doc/generator/flow.rb +0 -71
  56. data/lib/origen/tester/doc/generator/flow_line.rb +0 -203
  57. data/lib/origen/tester/doc/generator/test.rb +0 -68
  58. data/lib/origen/tester/doc/generator/test_group.rb +0 -66
  59. data/lib/origen/tester/doc/generator/tests.rb +0 -47
  60. data/lib/origen/tester/doc/model.rb +0 -162
  61. data/lib/origen/tester/generator.rb +0 -271
  62. data/lib/origen/tester/generator/flow_control_api.rb +0 -606
  63. data/lib/origen/tester/generator/identity_map.rb +0 -25
  64. data/lib/origen/tester/generator/placeholder.rb +0 -13
  65. data/lib/origen/tester/generator/test_numberer.rb +0 -25
  66. data/lib/origen/tester/interface.rb +0 -154
  67. data/lib/origen/tester/j750/files.rb +0 -45
  68. data/lib/origen/tester/j750/generator.rb +0 -203
  69. data/lib/origen/tester/j750/generator/flow.rb +0 -123
  70. data/lib/origen/tester/j750/generator/flow_line.rb +0 -288
  71. data/lib/origen/tester/j750/generator/patgroup.rb +0 -111
  72. data/lib/origen/tester/j750/generator/patgroups.rb +0 -41
  73. data/lib/origen/tester/j750/generator/patset.rb +0 -111
  74. data/lib/origen/tester/j750/generator/patsets.rb +0 -41
  75. data/lib/origen/tester/j750/generator/templates/flow.txt.erb +0 -9
  76. data/lib/origen/tester/j750/generator/templates/instances.txt.erb +0 -16
  77. data/lib/origen/tester/j750/generator/templates/patgroups.txt.erb +0 -8
  78. data/lib/origen/tester/j750/generator/templates/patsets.txt.erb +0 -10
  79. data/lib/origen/tester/j750/generator/test_instance.rb +0 -846
  80. data/lib/origen/tester/j750/generator/test_instance_group.rb +0 -60
  81. data/lib/origen/tester/j750/generator/test_instances.rb +0 -182
  82. data/lib/origen/tester/j750/j750.rb +0 -845
  83. data/lib/origen/tester/j750/j750_hpt.rb +0 -35
  84. data/lib/origen/tester/j750/parser.rb +0 -104
  85. data/lib/origen/tester/j750/parser/ac_spec.rb +0 -11
  86. data/lib/origen/tester/j750/parser/ac_specs.rb +0 -0
  87. data/lib/origen/tester/j750/parser/dc_spec.rb +0 -36
  88. data/lib/origen/tester/j750/parser/dc_specs.rb +0 -50
  89. data/lib/origen/tester/j750/parser/descriptions.rb +0 -340
  90. data/lib/origen/tester/j750/parser/flow.rb +0 -111
  91. data/lib/origen/tester/j750/parser/flow_line.rb +0 -207
  92. data/lib/origen/tester/j750/parser/flows.rb +0 -23
  93. data/lib/origen/tester/j750/parser/pattern_set.rb +0 -94
  94. data/lib/origen/tester/j750/parser/pattern_sets.rb +0 -33
  95. data/lib/origen/tester/j750/parser/test_instance.rb +0 -322
  96. data/lib/origen/tester/j750/parser/test_instances.rb +0 -26
  97. data/lib/origen/tester/j750/parser/timeset.rb +0 -15
  98. data/lib/origen/tester/j750/parser/timesets.rb +0 -0
  99. data/lib/origen/tester/jlink/jlink.rb +0 -33
  100. data/lib/origen/tester/parser.rb +0 -24
  101. data/lib/origen/tester/parser/description_lookup.rb +0 -64
  102. data/lib/origen/tester/parser/searchable_array.rb +0 -32
  103. data/lib/origen/tester/parser/searchable_hash.rb +0 -32
  104. data/lib/origen/tester/time.rb +0 -338
  105. data/lib/origen/tester/timing.rb +0 -253
  106. data/lib/origen/tester/ultraflex/files.rb +0 -45
  107. data/lib/origen/tester/ultraflex/generator.rb +0 -200
  108. data/lib/origen/tester/ultraflex/generator/flow.rb +0 -119
  109. data/lib/origen/tester/ultraflex/generator/flow_line.rb +0 -269
  110. data/lib/origen/tester/ultraflex/generator/patgroup.rb +0 -111
  111. data/lib/origen/tester/ultraflex/generator/patgroups.rb +0 -41
  112. data/lib/origen/tester/ultraflex/generator/patset.rb +0 -111
  113. data/lib/origen/tester/ultraflex/generator/patsets.rb +0 -41
  114. data/lib/origen/tester/ultraflex/generator/templates/flow.txt.erb +0 -9
  115. data/lib/origen/tester/ultraflex/generator/templates/instances.txt.erb +0 -16
  116. data/lib/origen/tester/ultraflex/generator/templates/patgroups.txt.erb +0 -8
  117. data/lib/origen/tester/ultraflex/generator/templates/patsets.txt.erb +0 -10
  118. data/lib/origen/tester/ultraflex/generator/test_instance.rb +0 -622
  119. data/lib/origen/tester/ultraflex/generator/test_instance_group.rb +0 -60
  120. data/lib/origen/tester/ultraflex/generator/test_instances.rb +0 -174
  121. data/lib/origen/tester/ultraflex/parser.rb +0 -104
  122. data/lib/origen/tester/ultraflex/parser/ac_spec.rb +0 -11
  123. data/lib/origen/tester/ultraflex/parser/ac_specs.rb +0 -0
  124. data/lib/origen/tester/ultraflex/parser/dc_spec.rb +0 -36
  125. data/lib/origen/tester/ultraflex/parser/dc_specs.rb +0 -50
  126. data/lib/origen/tester/ultraflex/parser/descriptions.rb +0 -342
  127. data/lib/origen/tester/ultraflex/parser/flow.rb +0 -111
  128. data/lib/origen/tester/ultraflex/parser/flow_line.rb +0 -207
  129. data/lib/origen/tester/ultraflex/parser/flows.rb +0 -23
  130. data/lib/origen/tester/ultraflex/parser/pattern_set.rb +0 -94
  131. data/lib/origen/tester/ultraflex/parser/pattern_sets.rb +0 -33
  132. data/lib/origen/tester/ultraflex/parser/test_instance.rb +0 -262
  133. data/lib/origen/tester/ultraflex/parser/test_instances.rb +0 -26
  134. data/lib/origen/tester/ultraflex/parser/timeset.rb +0 -15
  135. data/lib/origen/tester/ultraflex/parser/timesets.rb +0 -0
  136. data/lib/origen/tester/ultraflex/ultraflex.rb +0 -759
  137. data/lib/origen/tester/v93k/generator.rb +0 -80
  138. data/lib/origen/tester/v93k/generator/flow.rb +0 -63
  139. data/lib/origen/tester/v93k/generator/flow_node.rb +0 -17
  140. data/lib/origen/tester/v93k/generator/flow_node/print.rb +0 -10
  141. data/lib/origen/tester/v93k/generator/pattern.rb +0 -16
  142. data/lib/origen/tester/v93k/generator/pattern_master.rb +0 -54
  143. data/lib/origen/tester/v93k/generator/templates/_test_method.txt.erb +0 -6
  144. data/lib/origen/tester/v93k/generator/templates/_test_suite.txt.erb +0 -11
  145. data/lib/origen/tester/v93k/generator/templates/template.flow.erb +0 -121
  146. data/lib/origen/tester/v93k/generator/templates/template.pmfl.erb +0 -9
  147. data/lib/origen/tester/v93k/generator/test_function.rb +0 -103
  148. data/lib/origen/tester/v93k/generator/test_functions.rb +0 -79
  149. data/lib/origen/tester/v93k/generator/test_method.rb +0 -46
  150. data/lib/origen/tester/v93k/generator/test_methods.rb +0 -75
  151. data/lib/origen/tester/v93k/generator/test_suite.rb +0 -54
  152. data/lib/origen/tester/v93k/generator/test_suites.rb +0 -65
  153. data/lib/origen/tester/v93k/v93k.rb +0 -420
  154. data/lib/origen/tester/vector.rb +0 -86
  155. data/lib/origen/tester/vector_generator.rb +0 -637
  156. data/lib/origen/tester/vector_pipeline.rb +0 -150
  157. data/lib/origen/utility/design_sync.rb +0 -494
  158. data/lib/origen/version_checker.rb +0 -117
@@ -1,322 +0,0 @@
1
- module Origen
2
- module Tester
3
- class J750
4
- class Parser
5
- class TestInstance
6
- attr_accessor :parser
7
-
8
- TYPES = %w(
9
- functional board_pmu empty pin_pmu power_supply mto_memory
10
- )
11
-
12
- TYPE_ALIASES = {
13
- functional_t: :functional,
14
- boardpmu_t: :board_pmu,
15
- nvmboardpmucal_t: :board_pmu,
16
- nvmboardpmumeasure_t: :board_pmu,
17
- empty_t: :empty,
18
- pinpmu_t: :pin_pmu,
19
- nvmpinpmucal_t: :pin_pmu,
20
- nvmpinpmumeas_t: :pin_pmu,
21
- powersupply_t: :power_supply,
22
- mtomemory_t: :mto_memory
23
- }
24
-
25
- attributes = %w(
26
- test_name proc_type proc_name proc_called_as dc_category dc_selector ac_category ac_selector
27
- time_sets edge_sets pin_levels overlay
28
- )
29
- 80.times do |i|
30
- attributes << "arg#{i}"
31
- end
32
- attributes << 'comment'
33
-
34
- ATTRS = attributes
35
-
36
- ALIASES = {
37
- name: :test_name,
38
-
39
- functional: {
40
- pattern: :arg0,
41
- start_func: :arg1,
42
- pre_pat_func: :arg2,
43
- pre_test_func: :arg3,
44
- post_test_func: :arg4,
45
- post_pat_func: :arg5,
46
- end_func: :arg6,
47
- set_pass_fail: :arg7,
48
- start_func_args: :arg13,
49
- pre_pat_func_args: :arg14,
50
- pre_test_func_args: :arg15,
51
- post_test_func_args: :arg16,
52
- post_pat_func_args: :arg17,
53
- end_func_args: :arg18,
54
- wait_flags: :arg21,
55
- wait_time: :arg22,
56
- pat_flag_func: :arg23,
57
- pat_flag_func_args: :arg24,
58
- relay_mode: :arg25,
59
- threading: :arg26,
60
- match_all_sites: :arg27,
61
- capture_mode: :arg30,
62
- capture_what: :arg31,
63
- capture_memory: :arg32,
64
- capture_size: :arg33,
65
- datalog_mode: :arg34,
66
- data_type: :arg35
67
- },
68
-
69
- board_pmu: {
70
- hsp_start: :arg0,
71
- start_func: :arg1,
72
- pre_pat_func: :arg2,
73
- pre_test_func: :arg3,
74
- post_test_func: :arg4,
75
- post_pat_func: :arg5,
76
- end_func: :arg6,
77
- precond_pat: :arg7,
78
- hold_state_pat: :arg8,
79
- holdstate_pat: :arg8,
80
- pattern: :arg8,
81
- pcp_stop: :arg9,
82
- wait_flags: :arg10,
83
- start_lo: :arg11,
84
- init_lo: :arg11,
85
- start_hi: :arg12,
86
- init_hi: :arg12,
87
- start_hiz: :arg13,
88
- init_hiz: :arg13,
89
- float_pins: :arg14,
90
- pinlist: :arg15,
91
- measure_mode: :arg16,
92
- irange: :arg17,
93
- clamp: :arg18,
94
- vrange: :arg19,
95
- sampling_time: :arg20,
96
- samples: :arg21,
97
- setting_time: :arg22,
98
- hi_lo_lim_valid: :arg23,
99
- hi_limit: :arg24,
100
- lo_limit: :arg25,
101
- force_cond_1: :arg26,
102
- force_cond_2: :arg27,
103
- gang_pins_tested: :arg28,
104
- relay_mode: :arg29,
105
- wait_time_out: :arg30,
106
- start_func_args: :arg31,
107
- pre_pat_func_args: :arg32,
108
- pre_test_func_args: :arg33,
109
- post_test_func_args: :arg34,
110
- post_pat_func_args: :arg35,
111
- end_func_args: :arg36,
112
- pcp_start: :arg37,
113
- pcp_check_pg: :arg38,
114
- hsp_stop: :arg39,
115
- hsp_check_pg: :arg40,
116
- resume_pat: :arg41,
117
- utility_pins_1: :arg42,
118
- utility_pins_0: :arg43,
119
- pre_charge_enable: :arg44,
120
- pre_charge: :arg45,
121
- threading: :arg46
122
- },
123
-
124
- pin_pmu: {
125
- hsp_start: :arg0,
126
- start_func: :arg1,
127
- pre_pat_func: :arg2,
128
- pre_test_func: :arg3,
129
- post_test_func: :arg4,
130
- post_pat_func: :arg5,
131
- end_func: :arg6,
132
- precond_pat: :arg7,
133
- hold_state_pat: :arg8,
134
- holdstate_pat: :arg8,
135
- pattern: :arg8,
136
- pcp_stop: :arg9,
137
- wait_flags: :arg10,
138
- start_lo: :arg11,
139
- init_lo: :arg11,
140
- start_hi: :arg12,
141
- init_hi: :arg12,
142
- start_hiz: :arg13,
143
- init_hiz: :arg13,
144
- float_pins: :arg14,
145
- pinlist: :arg15,
146
- measure_mode: :arg16,
147
- irange: :arg17,
148
- setting_time: :arg18,
149
- hi_lo_lim_valid: :arg19,
150
- hi_limit: :arg20,
151
- lo_limit: :arg21,
152
- force_cond_1: :arg22,
153
- force_cond_2: :arg23,
154
- fload: :arg24,
155
- f_load: :arg24,
156
- relay_mode: :arg25,
157
- wait_time_out: :arg26,
158
- start_func_args: :arg27,
159
- pre_pat_func_args: :arg28,
160
- pre_test_func_args: :arg29,
161
- post_test_func_args: :arg30,
162
- post_pat_func_args: :arg31,
163
- end_func_args: :arg32,
164
- pcp_start: :arg33,
165
- pcp_check_pg: :arg34,
166
- hsp_stop: :arg35,
167
- hsp_check_pg: :arg36,
168
- sampling_time: :arg37,
169
- samples: :arg38,
170
- resume_pat: :arg39,
171
- vcl: :arg40,
172
- vch: :arg41,
173
- utility_pins_1: :arg42,
174
- utility_pins_0: :arg43,
175
- pre_charge_enable: :arg44,
176
- pre_charge: :arg45,
177
- threading: :arg46
178
- },
179
- mto_memory: {
180
- pattern: :arg0,
181
- start_func: :arg1,
182
- pre_pat_func: :arg2,
183
- pre_test_func: :arg3,
184
- post_test_func: :arg4,
185
- post_pat_func: :arg5,
186
- end_of_body_func: :arg6,
187
- set_pass_fail: :arg7,
188
- float_pins: :arg11,
189
- start_of_body_func_args: :arg12,
190
- pre_pat_func_args: :arg13,
191
- pre_test_func_args: :arg14,
192
- post_test_func_args: :arg15,
193
- post_pat_func_args: :arg16,
194
- end_of_body_func_args: :arg17,
195
- utility_pins_1: :arg18,
196
- utility_pins_0: :arg19,
197
- wait_flags: :arg20,
198
- wait_time_out: :arg21,
199
- pat_flag_f: :arg22,
200
- pat_flag_func_args: :arg23,
201
- relay_mode: :arg24,
202
- x_enable_mask: :arg29,
203
- x_shift_direction: :arg30,
204
- x_shift_input: :arg31,
205
- y_enable_mask: :arg36,
206
- y_shift_direction: :arg37,
207
- y_shift_input: :arg38,
208
- dga: :arg39,
209
- dgb: :arg40,
210
- dgc: :arg41,
211
- dgd: :arg42,
212
- dg_enable_mask: :arg43,
213
- dg_shift_direction: :arg44,
214
- dg_shift_input: :arg45,
215
- x_coincidence_enable_mask: :arg46,
216
- y_coincidence_enable_mask: :arg47,
217
- two_bit_dg_setup: :arg48,
218
- x_scramble_algorithm: :arg49,
219
- y_scramble_algorithm: :arg50,
220
- topo_inversion_algorithm: :arg51,
221
- utility_counter_a: :arg52,
222
- utility_counter_b: :arg53,
223
- utility_counter_c: :arg54,
224
- dut_data_source: :arg55,
225
- scramble_addr: :arg56,
226
- speed_mode: :arg57,
227
- resource_map: :arg58,
228
- receive_data: :arg59,
229
- data_to_capture: :arg60,
230
- capture_marker: :arg61,
231
- enable_wrapping: :arg62,
232
- capture_scrambled_address: :arg63,
233
- mapmem_0_input_set: :arg64,
234
- mapmem_1_input_set: :arg65,
235
- threading: :arg69,
236
- match_all_sites: :arg70
237
- }
238
- }
239
-
240
- # Make readers for each low level attribute
241
- ATTRS.each do |attr|
242
- attr_reader attr
243
- end
244
-
245
- # And the aliases
246
- ALIASES.each do |_alias, attr|
247
- define_method("#{_alias}") do
248
- send(attr)
249
- end
250
- end
251
-
252
- def initialize(line, options = {})
253
- @parser = options[:parser]
254
- @line = line
255
- parse
256
- if valid?
257
- ATTRS.each_with_index do |attr, i|
258
- instance_variable_set("@#{attr}", components[i + 1])
259
- end
260
- if ALIASES[type]
261
- ALIASES[type].each do |_alias, attr|
262
- define_singleton_method("#{_alias}") do
263
- send(attr)
264
- end
265
- end
266
- end
267
- end
268
- end
269
-
270
- def inspect # :nodoc:
271
- "<TestInstance: #{name}, Type: #{type}>"
272
- end
273
-
274
- def description
275
- parser.descriptions.test_instance(name: name)
276
- end
277
-
278
- def type
279
- TYPE_ALIASES[proc_name.downcase.to_sym] || :unsupported
280
- end
281
-
282
- def parse
283
- @components = @line.split("\t") unless @line.strip.empty?
284
- end
285
-
286
- def valid?
287
- components[4] && ['Excel Macro', 'VB DLL'].include?(components[4])
288
- end
289
-
290
- def components
291
- @components ||= []
292
- end
293
-
294
- # Returns an array of all pattern names referenced in this test instance
295
- def patterns
296
- if self.respond_to?(:pattern)
297
- pattern.split(',').map do |pat|
298
- extract_pattern_from_patset(pat)
299
- end.flatten.map { |pat| pat.gsub(/.*[\\\/]/, '').gsub(/\..*/, '') }
300
- end
301
- end
302
-
303
- def extract_pattern_from_patset(patset)
304
- pset = parser.pattern_sets.where(name: patset, exact: true)
305
- if pset.size > 1
306
- puts "Warning multiple pattern sets called #{patset} found, using the first one"
307
- end
308
- if pset.size == 0
309
- patset
310
- else
311
- pset.first.pattern_names
312
- end
313
- end
314
-
315
- def vdd
316
- parser.dc_specs.where(name: 'VDD', exact: true).first.lookup(dc_category, dc_selector)
317
- end
318
- end
319
- end
320
- end
321
- end
322
- end
@@ -1,26 +0,0 @@
1
- module Origen
2
- module Tester
3
- class J750
4
- class Parser
5
- class TestInstances < Origen::Tester::Parser::SearchableHash
6
- attr_accessor :parser
7
-
8
- def initialize(options = {})
9
- @parser = options[:parser]
10
- end
11
-
12
- def import(file)
13
- File.readlines(file).each do |line|
14
- l = TestInstance.new(line, parser: parser)
15
- self[l.name] = l if l.valid?
16
- end
17
- end
18
-
19
- def inspect
20
- "<TestInstances: #{size}>"
21
- end
22
- end
23
- end
24
- end
25
- end
26
- end
@@ -1,15 +0,0 @@
1
- module Origen
2
- module Tester
3
- class J750
4
- class Parser
5
- class Timeset
6
- attr_accessor :parser
7
-
8
- def initialize(options = {})
9
- @parser = options[:parser]
10
- end
11
- end
12
- end
13
- end
14
- end
15
- end
File without changes
@@ -1,33 +0,0 @@
1
- module Origen
2
- module Tester
3
- class JLink < CommandBasedTester
4
- def initialize
5
- super
6
- # The minimum time unit is 1ms
7
- set_timeset('default', 1_000_000)
8
- @pat_extension = 'jlk'
9
- @comment_char = '//'
10
- end
11
-
12
- def delay(cycles)
13
- microcode "Sleep #{cycles_to_ms(cycles)}"
14
- end
15
-
16
- def write_byte(address, data)
17
- microcode "w1 0x#{address.to_s(16).upcase}, 0x#{data.to_s(16).upcase}"
18
- end
19
-
20
- def write_word(address, data)
21
- microcode "w2 0x#{address.to_s(16).upcase}, 0x#{data.to_s(16).upcase}"
22
- end
23
-
24
- def write_longword(address, data)
25
- microcode "w4 0x#{address.to_s(16).upcase}, 0x#{data.to_s(16).upcase}"
26
- end
27
-
28
- def read(address, number_of_regs = 1)
29
- microcode "mem 0x#{address.to_s(16)}, #{number_of_regs}"
30
- end
31
- end
32
- end
33
- end
@@ -1,24 +0,0 @@
1
- module Origen
2
- module Tester
3
- module Parser
4
- autoload :SearchableArray, 'origen/tester/parser/searchable_array'
5
- autoload :SearchableHash, 'origen/tester/parser/searchable_hash'
6
- autoload :DescriptionLookup, 'origen/tester/parser/description_lookup'
7
-
8
- def parse(*args, &block)
9
- parser.parse(*args, &block)
10
- end
11
-
12
- # Returns a SearchableArray containing all tests parsed from flows, this is intended to
13
- # be the main API for accessing parsed test program attributes and should be a consistent
14
- # method that is implemented accross all tester models.
15
- #
16
- # Direct access to the underlying structure (which will be specific to the tester model)
17
- # can be achieved through the parser method, which returns an instance of J750::Parser
18
- # $tester.parser.test_instances
19
- def tests
20
- parser.flow_items
21
- end
22
- end
23
- end
24
- end
@@ -1,64 +0,0 @@
1
- module Origen
2
- module Tester
3
- module Parser
4
- class DescriptionLookup
5
- def initialize
6
- @store = { flow: {}, test: {}, usage: {} }
7
- end
8
-
9
- def for_flow(name, _options = {})
10
- k = flow_key(name)
11
- @store[:flow][k] || []
12
- end
13
-
14
- def for_test_definition(name, _options = {})
15
- n = name_key(name)
16
- @store[:test][n] || []
17
- end
18
-
19
- def for_test_usage(name, flow, _options = {})
20
- k = flow_key(flow)
21
- n = name_key(name)
22
- @store[:usage][k] ||= {}
23
- @store[:usage][k][n] || []
24
- end
25
-
26
- def add_for_flow(flow, description, _options = {})
27
- k = flow_key(flow)
28
- @store[:flow][k] ||= []
29
- [description].flatten.each do |d|
30
- @store[:flow][k] << d
31
- end
32
- end
33
-
34
- def add_for_test_definition(test, description, _option = {})
35
- n = name_key(test)
36
- @store[:test][n] ||= []
37
- [description].flatten.each do |d|
38
- @store[:test][n] << d
39
- end
40
- end
41
-
42
- def add_for_test_usage(test, flow, description, _option = {})
43
- k = flow_key(flow)
44
- n = name_key(test)
45
- @store[:usage][k] ||= {}
46
- @store[:usage][k][n] ||= []
47
- [description].flatten.each do |d|
48
- @store[:usage][k][n] << d
49
- end
50
- end
51
-
52
- private
53
-
54
- def flow_key(flow)
55
- Pathname.new(flow).basename('.*').to_s
56
- end
57
-
58
- def name_key(name)
59
- name.to_s.downcase
60
- end
61
- end
62
- end
63
- end
64
- end