Rewrite fails_with tests as tests for CompilerFailure
This commit is contained in:
parent
329e357d9a
commit
356c391dfb
52
Library/Homebrew/test/test_compiler_failure.rb
Normal file
52
Library/Homebrew/test/test_compiler_failure.rb
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
require "testing_env"
|
||||||
|
require "compilers"
|
||||||
|
|
||||||
|
class CompilerFailureTests < Homebrew::TestCase
|
||||||
|
Compiler = Struct.new(:name, :version)
|
||||||
|
|
||||||
|
def assert_fails_with(compiler, failure)
|
||||||
|
assert_operator failure, :===, compiler
|
||||||
|
end
|
||||||
|
|
||||||
|
def refute_fails_with(compiler, failure)
|
||||||
|
refute_operator failure, :===, compiler
|
||||||
|
end
|
||||||
|
|
||||||
|
def compiler(name, version)
|
||||||
|
Compiler.new(name, version)
|
||||||
|
end
|
||||||
|
|
||||||
|
def create(spec, &block)
|
||||||
|
CompilerFailure.create(spec, &block)
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_create_with_symbol
|
||||||
|
failure = create(:clang)
|
||||||
|
assert_fails_with compiler(:clang, 425), failure
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_create_with_block
|
||||||
|
failure = create(:clang) { build 211 }
|
||||||
|
assert_fails_with compiler(:clang, 210), failure
|
||||||
|
refute_fails_with compiler(:clang, 318), failure
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_create_with_block_without_build
|
||||||
|
failure = create(:clang) { }
|
||||||
|
assert_fails_with compiler(:clang, 425), failure
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_create_with_hash
|
||||||
|
failure = create(:gcc => "4.8")
|
||||||
|
assert_fails_with compiler("gcc-4.8", "4.8"), failure
|
||||||
|
assert_fails_with compiler("gcc-4.8", "4.8.1"), failure
|
||||||
|
refute_fails_with compiler("gcc-4.7", "4.7"), failure
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_create_with_hash_and_version
|
||||||
|
failure = create(:gcc => "4.8") { version "4.8.1" }
|
||||||
|
assert_fails_with compiler("gcc-4.8", "4.8"), failure
|
||||||
|
assert_fails_with compiler("gcc-4.8", "4.8.1"), failure
|
||||||
|
refute_fails_with compiler("gcc-4.8", "4.8.2"), failure
|
||||||
|
end
|
||||||
|
end
|
||||||
@ -1,66 +0,0 @@
|
|||||||
require 'testing_env'
|
|
||||||
require 'software_spec'
|
|
||||||
|
|
||||||
class FailsWithTests < Homebrew::TestCase
|
|
||||||
def assert_fails_with(cc)
|
|
||||||
assert @spec.fails_with?(cc)
|
|
||||||
end
|
|
||||||
|
|
||||||
def refute_fails_with(cc)
|
|
||||||
refute @spec.fails_with?(cc)
|
|
||||||
end
|
|
||||||
|
|
||||||
def fails_with(*args, &block)
|
|
||||||
@spec.fails_with(*args, &block)
|
|
||||||
end
|
|
||||||
|
|
||||||
def build_cc(name, version)
|
|
||||||
Compiler.new(name, version)
|
|
||||||
end
|
|
||||||
|
|
||||||
def setup
|
|
||||||
@spec = SoftwareSpec.new
|
|
||||||
end
|
|
||||||
|
|
||||||
def test_fails_with_symbol
|
|
||||||
fails_with :clang
|
|
||||||
cc = build_cc(:clang, 425)
|
|
||||||
assert_fails_with cc
|
|
||||||
end
|
|
||||||
|
|
||||||
def test_fails_with_build
|
|
||||||
fails_with(:clang) { build 211 }
|
|
||||||
cc = build_cc(:clang, 318)
|
|
||||||
refute_fails_with cc
|
|
||||||
end
|
|
||||||
|
|
||||||
def test_fails_with_block_without_build
|
|
||||||
fails_with(:clang)
|
|
||||||
cc = build_cc(:clang, 425)
|
|
||||||
assert_fails_with cc
|
|
||||||
end
|
|
||||||
|
|
||||||
def test_non_apple_gcc_version
|
|
||||||
fails_with(:gcc => '4.8')
|
|
||||||
assert_fails_with build_cc("gcc-4.8", "4.8")
|
|
||||||
assert_fails_with build_cc("gcc-4.8", "4.8.1")
|
|
||||||
end
|
|
||||||
|
|
||||||
def test_multiple_failures
|
|
||||||
fails_with(:llvm)
|
|
||||||
fails_with(:clang)
|
|
||||||
gcc = build_cc(:gcc, 5666)
|
|
||||||
llvm = build_cc(:llvm, 2336)
|
|
||||||
clang = build_cc(:clang, 425)
|
|
||||||
assert_fails_with llvm
|
|
||||||
assert_fails_with clang
|
|
||||||
refute_fails_with gcc
|
|
||||||
end
|
|
||||||
|
|
||||||
def test_fails_with_version
|
|
||||||
fails_with(:gcc => '4.8') { version '4.8.1' }
|
|
||||||
assert_fails_with build_cc("gcc-4.8", "4.8")
|
|
||||||
assert_fails_with build_cc("gcc-4.8", "4.8.1")
|
|
||||||
refute_fails_with build_cc("gcc-4.8", "4.8.2")
|
|
||||||
end
|
|
||||||
end
|
|
||||||
Loading…
x
Reference in New Issue
Block a user