Sha256: d647a47f8aebedd44260b9ead68cf0a160145332aa21148f3b4e22deffdab72e

Contents?: true

Size: 1.08 KB

Versions: 1

Compression:

Stored size: 1.08 KB

Contents

# frozen_string_literal: true

# Provides the result of running an integration test.
#
# @api private
class TestRunner

  # @param (see #initialize)
  # @return [void]
  def self.result(testcase, file)
    new(testcase, file).result
  end

  # @param testcase [String]
  # @param file [String]
  # @return [TestRunner]
  def initialize(testcase, file)
    @testcase = testcase
    @file     = file
  end

  # @return [void]
  def result
    print "\e[36m#{file}: "
    if expected == actual
      print "\e[32mPassed.\e[39m\n"
      exit 0;
    else
      print "\e[31mFailed.\e[39m\n"
      puts "\e[33mExpected:\e[39m"
      puts expected.inspect
      puts "\e[34mActual:\e[39m"
      puts actual.inspect
      exit 1;
    end
  end

  protected

  # @!attribute [r] testcase
  # @return [String]
  attr_reader :testcase

  # @!attribute [r] file
  # @return [String]
  attr_reader :file

  private

  # @return [String]
  def actual
    File.read("/tmp/#{testcase}.out")
  end

  # @return [String]
  def expected
    File.read(File.expand_path("../expected/#{testcase}.out", file))
  end

end # TestRunner

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
vedeu-0.8.20 integrations/test_runner.rb