class CC::Analyzer::RaisingContainerListener
Attributes
failure_ex[R]
maximum_output_ex[R]
timeout_ex[R]
Public Class Methods
new(failure_ex, timeout_ex = nil, maximum_output_ex = nil)
click to toggle source
# 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
Public Instance Methods
finished(engine, _details, result)
click to toggle source
# File lib/cc/analyzer/raising_container_listener.rb, line 10 def finished(engine, _details, result) if result.timed_out? message = "engine #{engine.name} ran for #{result.duration / 1000}" message << " seconds and was killed" raise timeout_ex.new(message, engine.name) elsif result.maximum_output_exceeded? message = "engine #{engine.name} produced too much output" message << " (#{result.output_byte_count} bytes)" raise maximum_output_ex.new(message, engine.name) elsif result.exit_status.nonzero? message = "engine #{engine.name} failed" message << " with status #{result.exit_status}" message << " and stderr \n#{result.stderr}" raise failure_ex.new(message, engine.name) end end