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.96.0 lib/cc/analyzer/raising_container_listener.rb
codeclimate-0.95.0 lib/cc/analyzer/raising_container_listener.rb
codeclimate-0.94.1 lib/cc/analyzer/raising_container_listener.rb
codeclimate-0.94.0 lib/cc/analyzer/raising_container_listener.rb
codeclimate-0.93.0 lib/cc/analyzer/raising_container_listener.rb
codeclimate-0.92.1 lib/cc/analyzer/raising_container_listener.rb
codeclimate-0.92.0 lib/cc/analyzer/raising_container_listener.rb
codeclimate-0.91.0 lib/cc/analyzer/raising_container_listener.rb
codeclimate-0.90.0 lib/cc/analyzer/raising_container_listener.rb
codeclimate-0.89.0 lib/cc/analyzer/raising_container_listener.rb
codeclimate-0.88.0 lib/cc/analyzer/raising_container_listener.rb
codeclimate-0.87.5 lib/cc/analyzer/raising_container_listener.rb
codeclimate-0.87.4 lib/cc/analyzer/raising_container_listener.rb
codeclimate-0.87.3 lib/cc/analyzer/raising_container_listener.rb
codeclimate-0.87.2 lib/cc/analyzer/raising_container_listener.rb
codeclimate-0.87.1 lib/cc/analyzer/raising_container_listener.rb
codeclimate-0.87.0 lib/cc/analyzer/raising_container_listener.rb
codeclimate-0.86.0 lib/cc/analyzer/raising_container_listener.rb
codeclimate-0.85.29 lib/cc/analyzer/raising_container_listener.rb
codeclimate-0.85.28 lib/cc/analyzer/raising_container_listener.rb