@@ -76,6 +76,34 @@ def test_retrying_test
7676 assert_equal 0 , summary . error_reports . size
7777 end
7878
79+ def test_retrying_test_reverse
80+ yielded = false
81+
82+ test = nil
83+
84+ @queue . poll do |_test |
85+ test = _test
86+ assert_equal "a" , test . method_name
87+ @reporter . record ( result ( test . method_name ) )
88+
89+ assert_equal 0 , summary . error_reports . size
90+
91+ yielded = true
92+ break
93+ end
94+
95+ assert yielded , "@queue.poll didn't yield"
96+
97+ second_queue = worker ( 2 )
98+ second_reporter = BuildStatusRecorder . new ( build : second_queue . build )
99+ second_reporter . start
100+
101+ # pretend we reserved the same test again
102+ reserve ( second_queue , "a" )
103+ second_reporter . record ( result ( "a" , failure : "Something went wrong" ) )
104+ assert_equal 0 , summary . error_reports . size
105+ end
106+
79107 def test_static_queue_record_success
80108 static_queue = CI ::Queue ::Static . new ( [ 'test_example' ] , CI ::Queue ::Configuration . new ( build_id : '42' , worker_id : '1' ) )
81109 static_reporter = BuildStatusRecorder . new ( build : static_queue . build )
@@ -97,16 +125,20 @@ def reserve(queue, method_name)
97125 end
98126
99127 def worker ( id )
100- CI ::Queue ::Redis . new (
101- @redis_url ,
102- CI ::Queue ::Configuration . new (
103- build_id : '42' ,
104- worker_id : id . to_s ,
105- timeout : 0.2 ,
106- ) ,
107- ) . populate ( [
108- Minitest ::Queue ::SingleExample . new ( "Minitest::Test" , "a" )
109- ] )
128+ result = nil
129+ capture_io do
130+ result = CI ::Queue ::Redis . new (
131+ @redis_url ,
132+ CI ::Queue ::Configuration . new (
133+ build_id : '42' ,
134+ worker_id : id . to_s ,
135+ timeout : 0.2 ,
136+ ) ,
137+ ) . populate ( [
138+ Minitest ::Queue ::SingleExample . new ( "Minitest::Test" , "a" )
139+ ] )
140+ end
141+ result
110142 end
111143
112144 def summary
0 commit comments