origen 0.2.6 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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