@@ -129,10 +129,7 @@ module CC::Analyzer
129
129
end
130
130
131
131
it "times out slow containers" do
132
- old_timeout = ENV [ "CONTAINER_TIMEOUT_SECONDS" ]
133
- ENV [ "CONTAINER_TIMEOUT_SECONDS" ] = "1"
134
-
135
- begin
132
+ with_timeout ( 1 ) do
136
133
listener = TestContainerListener . new
137
134
listener . expects ( :finished ) . never
138
135
container = Container . new (
@@ -153,8 +150,6 @@ module CC::Analyzer
153
150
@container_result . exit_status . wont_equal nil
154
151
@container_result . duration . must_be :>= , 0
155
152
@container_result . duration . must_be :< , 2_000
156
- ensure
157
- ENV [ "CONTAINER_TIMEOUT_SECONDS" ] = old_timeout
158
153
end
159
154
end
160
155
@@ -171,24 +166,14 @@ module CC::Analyzer
171
166
listener : listener ,
172
167
)
173
168
container . on_output do |str |
169
+ sleep 0.5
174
170
stdout_lines << str
175
171
end
176
172
177
- slow_read_stdout = Proc . new do |out |
178
- Thread . new do
179
- out . each_line ( container . instance_variable_get ( :@output_delimeter ) ) do |chunk |
180
- sleep 0.5
181
- output = chunk . chomp ( container . instance_variable_get ( :@output_delimeter ) )
182
- container . instance_variable_get ( :@on_output ) . call ( output )
183
- end
184
- end
185
- end
186
- container . stub :read_stdout , slow_read_stdout do
187
- run_container ( container )
173
+ run_container ( container )
188
174
189
- assert_container_stopped
190
- @container_result . timed_out? . must_equal false
191
- end
175
+ assert_container_stopped
176
+ @container_result . timed_out? . must_equal false
192
177
end
193
178
194
179
it "stops containers that emit more than the configured maximum output bytes" do
@@ -277,5 +262,13 @@ def expect_spawn(args, status: nil, out: StringIO.new, err: StringIO.new)
277
262
278
263
return [ pid , out , err ]
279
264
end
265
+
266
+ def with_timeout ( timeout )
267
+ old_timeout = ENV [ "CONTAINER_TIMEOUT_SECONDS" ]
268
+ ENV [ "CONTAINER_TIMEOUT_SECONDS" ] = timeout . to_s
269
+ yield
270
+ ensure
271
+ ENV [ "CONTAINER_TIMEOUT_SECONDS" ] = old_timeout
272
+ end
280
273
end
281
274
end
0 commit comments