Class: Megatest::Queue
Defined Under Namespace
Classes: Summary
Instance Attribute Summary collapse
-
#summary ⇒ Object
(also: #global_summary)
readonly
Returns the value of attribute summary.
#size, #test_cases_index
Instance Method Summary
collapse
#cleanup, #populated?, #record_lost_test, #retrying?
Constructor Details
#initialize(config) ⇒ Queue
Returns a new instance of Queue.
171
172
173
174
175
176
177
178
179
|
# File 'lib/megatest/queue.rb', line 171
def initialize(config)
super
@queue = nil
@summary = Summary.new
@success = true
@retries = Hash.new(0)
@leases = {}
end
|
Instance Attribute Details
#summary ⇒ Object
Also known as:
global_summary
Returns the value of attribute summary.
168
169
170
|
# File 'lib/megatest/queue.rb', line 168
def summary
@summary
end
|
Instance Method Details
#distributed? ⇒ Boolean
193
194
195
|
# File 'lib/megatest/queue.rb', line 193
def distributed?
false
end
|
#empty? ⇒ Boolean
205
206
207
|
# File 'lib/megatest/queue.rb', line 205
def empty?
@queue.empty? && @leases.empty?
end
|
#initialize_dup(_other) ⇒ Object
181
182
183
184
185
186
187
|
# File 'lib/megatest/queue.rb', line 181
def initialize_dup(_other)
super
@queue = @queue.dup
@summary = @summary.dup
@retries = @retries.dup
@leases = @leases.dup
end
|
#monitor ⇒ Object
201
202
203
|
# File 'lib/megatest/queue.rb', line 201
def monitor
nil
end
|
#pop_test ⇒ Object
222
223
224
225
226
227
|
# File 'lib/megatest/queue.rb', line 222
def pop_test
if test = @queue.pop
@leases[test.id] = true
end
test
end
|
#populate(test_cases) ⇒ Object
209
210
211
212
|
# File 'lib/megatest/queue.rb', line 209
def populate(test_cases)
super
@queue = test_cases.reverse
end
|
#record_result(result) ⇒ Object
229
230
231
232
233
234
235
236
237
238
239
240
|
# File 'lib/megatest/queue.rb', line 229
def record_result(result)
@leases.delete(result.test_id)
if result.failed? && !result.skipped?
if attempt_to_retry?(result)
result = result.retry
else
@success &&= result.ok?
end
end
@summary.record_result(result)
result
end
|
#remaining_size ⇒ Object
214
215
216
|
# File 'lib/megatest/queue.rb', line 214
def remaining_size
@queue.size + @leases.size
end
|
#sharded? ⇒ Boolean
197
198
199
|
# File 'lib/megatest/queue.rb', line 197
def sharded?
@config.workers_count > 1
end
|
#success? ⇒ Boolean
218
219
220
|
# File 'lib/megatest/queue.rb', line 218
def success?
@success && @queue.empty?
end
|
#to_a ⇒ Object
189
190
191
|
# File 'lib/megatest/queue.rb', line 189
def to_a
@queue.reverse
end
|