11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
|
# File 'lib/minitest/queue/lazy_entry_resolver.rb', line 11
def call(entry)
parsed = CI::Queue::QueueEntry.parse(entry)
class_name, method_name = parsed.fetch(:test_id).split('#', 2)
if CI::Queue::QueueEntry.load_error_payload?(parsed[:file_path])
payload = CI::Queue::QueueEntry.decode_load_error(parsed[:file_path])
if payload
error = StandardError.new("#{payload['error_class']}: #{payload['error_message']}")
error.set_backtrace(payload['backtrace']) if payload['backtrace']
load_error = CI::Queue::FileLoadError.new(payload['file_path'], error)
return Minitest::Queue::LazySingleExample.new(
class_name,
method_name,
payload['file_path'],
loader: @loader,
resolver: @resolver,
load_error: load_error,
queue_entry: entry,
)
else
error = StandardError.new("Corrupt load error payload for #{class_name}##{method_name}")
load_error = CI::Queue::FileLoadError.new("unknown", error)
return Minitest::Queue::LazySingleExample.new(
class_name,
method_name,
nil,
loader: @loader,
resolver: @resolver,
load_error: load_error,
queue_entry: entry,
)
end
end
Minitest::Queue::LazySingleExample.new(
class_name,
method_name,
parsed[:file_path],
loader: @loader,
resolver: @resolver,
queue_entry: entry,
)
end
|