Sha256: a5859bec13181cfb21febe3f19a78d0ca9b95eca9e74454fedc6e2584a2d0c2c

Contents?: true

Size: 1.29 KB

Versions: 9

Compression:

Stored size: 1.29 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, filename)
    new(testcase, filename).result
  end

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

  # @return [void]
  def result
    print "\e[36m#{filename}: "

    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] filename
  # @return [String]
  attr_reader :filename

  private

  # @return [String]
  def actual
    @_actual ||= File.read(actual_path)
  end

  # @return [String]
  def expected
    @_expected ||= File.read(File.expand_path(expected_path, filename))
  end

  # @return [String]
  def actual_path
    Dir.tmpdir + "/#{testcase}.out"
  end

  # @return [String]
  def expected_path
    "../expected/#{testcase}.out"
  end

end # TestRunner

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
vedeu-0.8.32 integrations/test_runner.rb
vedeu-0.8.31 integrations/test_runner.rb
vedeu-0.8.30 integrations/test_runner.rb
vedeu-0.8.29 integrations/test_runner.rb
vedeu-0.8.28 integrations/test_runner.rb
vedeu-0.8.27 integrations/test_runner.rb
vedeu-0.8.26 integrations/test_runner.rb
vedeu-0.8.25 integrations/test_runner.rb
vedeu-0.8.24 integrations/test_runner.rb