Sha256: 8a9b36d70eb2116e00126d197686c707f5cf7e557c27942280bfe96a5cb00ef2

Contents?: true

Size: 1.15 KB

Versions: 97

Compression:

Stored size: 1.15 KB

Contents

module CC
  module Analyzer
    class RaisingContainerListener < ContainerListener
      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

      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

      private

      attr_reader :failure_ex, :timeout_ex, :maximum_output_ex
    end
  end
end

Version data entries

97 entries across 97 versions & 2 rubygems

Version Path
codeclimate-0.78.0 lib/cc/analyzer/raising_container_listener.rb
codeclimate-0.77.0 lib/cc/analyzer/raising_container_listener.rb
codeclimate-0.76.0 lib/cc/analyzer/raising_container_listener.rb
codeclimate-0.75.0 lib/cc/analyzer/raising_container_listener.rb
codeclimate-0.74.0 lib/cc/analyzer/raising_container_listener.rb
codeclimate-0.73.0 lib/cc/analyzer/raising_container_listener.rb
codeclimate-0.72.0 lib/cc/analyzer/raising_container_listener.rb
codeclimate-0.71.2 lib/cc/analyzer/raising_container_listener.rb
codeclimate-0.71.1 lib/cc/analyzer/raising_container_listener.rb
codeclimate-0.71.0 lib/cc/analyzer/raising_container_listener.rb
codeclimate-0.70.6 lib/cc/analyzer/raising_container_listener.rb
codeclimate-0.70.5 lib/cc/analyzer/raising_container_listener.rb
codeclimate-0.70.4 lib/cc/analyzer/raising_container_listener.rb
codeclimate-0.70.3 lib/cc/analyzer/raising_container_listener.rb
codeclimate-0.70.2 lib/cc/analyzer/raising_container_listener.rb
codeclimate-0.70.1 lib/cc/analyzer/raising_container_listener.rb
codeclimate-0.70.0 lib/cc/analyzer/raising_container_listener.rb