lib/cc/analyzer/container/result.rb (65 lines of code) (raw):
module CC
module Analyzer
class Container
class Result
attr_reader \
:container_name,
:duration,
:exit_status,
:output_byte_count,
:stderr,
:stdout
def initialize(
container_name: "",
duration: 0,
exit_status: 0,
maximum_output_exceeded: false,
output_byte_count: 0,
skipped: false,
stderr: "",
stdout: "",
timed_out: false
)
@container_name = container_name
@duration = duration
@exit_status = exit_status
@maximum_output_exceeded = maximum_output_exceeded
@output_byte_count = output_byte_count
@skipped = skipped
@stderr = stderr
@stdout = stdout
@timed_out = timed_out
end
def self.skipped(ex)
new(
exit_status: 0,
skipped: true,
stderr: ex.message,
)
end
def merge_from_exception(ex)
self.exit_status = 99
self.stderr = ex.message
self
end
def timed_out?
@timed_out
end
def maximum_output_exceeded?
@maximum_output_exceeded
end
def errored?
timed_out? ||
maximum_output_exceeded? ||
exit_status.nil? ||
exit_status.nonzero?
end
def skipped?
@skipped
end
private
attr_writer :exit_status, :stderr
end
end
end
end