Class: CC::Analyzer::RaisingContainerListener
- Inherits:
-
ContainerListener
- Object
- ContainerListener
- CC::Analyzer::RaisingContainerListener
- Defined in:
- lib/cc/analyzer/raising_container_listener.rb
Instance Method Summary collapse
- #finished(engine, _details, result) ⇒ Object
-
#initialize(failure_ex, timeout_ex = nil, maximum_output_ex = nil) ⇒ RaisingContainerListener
constructor
A new instance of RaisingContainerListener.
Methods inherited from ContainerListener
Constructor Details
#initialize(failure_ex, timeout_ex = nil, maximum_output_ex = nil) ⇒ RaisingContainerListener
Returns a new instance of RaisingContainerListener.
4 5 6 7 8 |
# File 'lib/cc/analyzer/raising_container_listener.rb', line 4 def initialize(failure_ex, timeout_ex = nil, maximum_output_ex = nil) @failure_ex = failure_ex @timeout_ex = timeout_ex || failure_ex @maximum_output_ex = maximum_output_ex || failure_ex end |
Instance Method Details
#finished(engine, _details, result) ⇒ Object
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/cc/analyzer/raising_container_listener.rb', line 10 def finished(engine, _details, result) if result.timed_out? = "engine #{engine.name} ran for #{result.duration / 1000}" << " seconds and was killed" raise timeout_ex.new(, engine.name) elsif result.maximum_output_exceeded? = "engine #{engine.name} produced too much output" << " (#{result.output_byte_count} bytes)" raise maximum_output_ex.new(, engine.name) elsif result.exit_status.nonzero? = "engine #{engine.name} failed" << " with status #{result.exit_status}" << " and stderr \n#{result.stderr}" raise failure_ex.new(, engine.name) end end |