Sha256: ffc8e041f48e87f55b18d888b89b2b14d4c12af8302918a80fe61eb9f048abf3

Contents?: true

Size: 1.07 KB

Versions: 4

Compression:

Stored size: 1.07 KB

Contents

require 'ceedling/plugin'
require 'ceedling/constants'

class RawOutputReport < Plugin
  def setup
    @log_paths = {}
  end

  def post_test_fixture_execute(arg_hash)
    output = strip_output(arg_hash[:shell_result][:output])
    write_raw_output_log(arg_hash, output)
  end

  private

  def strip_output(raw_output)
    output = ""
    raw_output.each_line do |line|
      next if line =~ /^\n$/
      next if line =~ /^.*:\d+:.*:(IGNORE|PASS|FAIL)/
      return output if line =~/^-----------------------\n$/
      output << line
    end
  end
  def write_raw_output_log(arg_hash, output)
    logging = generate_log_path(arg_hash)
    @ceedling[:file_wrapper].write(logging[:path], output , logging[:flags]) unless logging.nil?
  end

  def generate_log_path(arg_hash)
    f_name = File.basename(arg_hash[:result_file], '.pass')
    base_path = File.join(PROJECT_BUILD_ARTIFACTS_ROOT, arg_hash[:context].to_s)
    file_path = File.join(base_path, f_name + '.log')

    if @ceedling[:file_wrapper].exist?(base_path)
      return { path: file_path, flags: 'w' }
    end

    nil
  end
end

Version data entries

4 entries across 4 versions & 1 rubygems

Version Path
ceedling-0.31.1 plugins/raw_output_report/lib/raw_output_report.rb
ceedling-0.31.0 plugins/raw_output_report/lib/raw_output_report.rb
ceedling-0.30.0 plugins/raw_output_report/lib/raw_output_report.rb
ceedling-0.28.3 plugins/raw_output_report/lib/raw_output_report.rb