Class: OrigenTesters::SmartestBasedTester::Base::TestSuite
- Inherits:
-
Object
- Object
- OrigenTesters::SmartestBasedTester::Base::TestSuite
show all
- Defined in:
- lib/origen_testers/smartest_based_tester/base/test_suite.rb
Constant Summary
collapse
- ATTRS =
%w(name
comment
timing_equation timing_spec timing_set
level_equation level_spec level_set
analog_set
pattern
context
test_type
test_method
test_number
test_level
bypass
set_pass
set_fail
hold
hold_on_fail
output_on_pass
output_on_fail
pass_value
fail_value
per_pin_on_pass
per_pin_on_fail
log_mixed_signal_waveform
fail_per_label
ffc_enable
log_first
ffv_enable
frg_enable
hardware_dsp_disable
)
- ALIASES =
{
tim_equ_set: :timing_equation,
tim_spec_set: :timing_spec,
timset: :timing_set,
timeset: :timing_set,
time_set: :timing_set,
lev_equ_set: :level_equation,
lev_spec_set: :level_spec,
levset: :level_set,
levels: :level_set,
pin_levels: :level_set,
anaset: :analog_set,
test_num: :test_number,
test_function: :test_method,
value_on_pass: :pass_value,
value_on_fail: :fail_value,
seqlbl: :pattern,
mx_waves_enable: :log_mixed_signal_waveform,
hw_dsp_disable: :hardware_dsp_disable,
ffc_on_fail: :log_first
}
- DEFAULTS =
{
output_on_pass: true,
output_on_fail: true,
pass_value: true,
fail_value: true,
per_pin_on_pass: true,
per_pin_on_fail: true
}
Instance Attribute Summary collapse
Instance Method Summary
collapse
Constructor Details
#initialize(name, attrs = {}) ⇒ TestSuite
Returns a new instance of TestSuite.
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
|
# File 'lib/origen_testers/smartest_based_tester/base/test_suite.rb', line 88
def initialize(name, attrs = {})
@name = name
if interface.unique_test_names == :signature
if interface.flow.sig
@name = "#{name}_#{interface.flow.sig}"
end
elsif interface.unique_test_names == :flowname || interface.unique_test_names == :flow_name
@name = "#{name}_#{interface.flow.name.to_s.symbolize}"
elsif interface.unique_test_names == :preflowname || interface.unique_test_names == :pre_flow_name
@name = "#{interface.flow.name.to_s.symbolize}_#{name}"
elsif interface.unique_test_names
utn_string = interface.unique_test_names.to_s
if utn_string =~ /^prepend_/
utn_string = utn_string.gsub(/^prepend_/, '')
@name = "#{utn_string}_#{name}"
else
utn_string = utn_string.gsub(/^append_/, '')
@name = "#{name}_#{utn_string}"
end
end
DEFAULTS.each do |k, v|
send("#{k}=", v)
end
attrs.each do |k, v|
send("#{k}=", v) if respond_to?("#{k}=") && k.to_sym != :name
end
end
|
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(method, *args, &block) ⇒ Object
154
155
156
157
158
159
160
|
# File 'lib/origen_testers/smartest_based_tester/base/test_suite.rb', line 154
def method_missing(method, *args, &block)
if test_method && test_method.respond_to?(method)
test_method.send(method, *args, &block)
else
super
end
end
|
Instance Attribute Details
Returns the value of attribute meta.
5
6
7
|
# File 'lib/origen_testers/smartest_based_tester/base/test_suite.rb', line 5
def meta
@meta
end
|
Instance Method Details
#inspect ⇒ Object
123
124
125
|
# File 'lib/origen_testers/smartest_based_tester/base/test_suite.rb', line 123
def inspect
"<TestSuite: #{name}>"
end
|
#interface ⇒ Object
166
167
168
|
# File 'lib/origen_testers/smartest_based_tester/base/test_suite.rb', line 166
def interface
Origen.interface
end
|
#lines ⇒ Object
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
|
# File 'lib/origen_testers/smartest_based_tester/base/test_suite.rb', line 132
def lines
l = []
l << " comment = \"#{}\";" if
l << " ffc_on_fail = #{wrap_if_string(log_first)};" if log_first
l << " local_flags = #{flags};"
l << ' override = 1;'
l << " override_anaset = #{wrap_if_string(analog_set)};" if analog_set
l << " override_lev_equ_set = #{wrap_if_string(level_equation)};" if level_equation
l << " override_lev_spec_set = #{wrap_if_string(level_spec)};" if level_spec
l << " override_levset = #{wrap_if_string(level_set)};" if level_set
l << " override_seqlbl = #{wrap_if_string(pattern)};" if pattern
l << " override_test_number = #{test_number};" if test_number
l << " override_testf = #{test_method.id};" if test_method
l << " override_tim_equ_set = #{wrap_if_string(timing_equation)};" if timing_equation
l << " override_tim_spec_set = #{wrap_if_string(timing_spec)};" if timing_spec
l << " override_timset = #{wrap_if_string(timing_set)};" if timing_set
l << ' site_control = "parallel:";'
l << ' site_match = 2;'
l << " test_level = #{test_level};" if test_level
l
end
|
#name=(val, options = {}) ⇒ Object
The name is immutable once the test_suite is created, this will raise an error when called
128
129
130
|
# File 'lib/origen_testers/smartest_based_tester/base/test_suite.rb', line 128
def name=(val, options = {})
fail 'Once assigned the name of a test suite cannot be changed!'
end
|
#pattern=(name) ⇒ Object
118
119
120
121
|
# File 'lib/origen_testers/smartest_based_tester/base/test_suite.rb', line 118
def pattern=(name)
Origen.interface.record_pattern_reference(name) if name
@pattern = name
end
|
#respond_to?(method) ⇒ Boolean
162
163
164
|
# File 'lib/origen_testers/smartest_based_tester/base/test_suite.rb', line 162
def respond_to?(method)
(test_method && test_method.respond_to?(method)) || super
end
|
170
171
172
|
# File 'lib/origen_testers/smartest_based_tester/base/test_suite.rb', line 170
def to_meta
meta || {}
end
|