aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/test/test_compiler_selector.rb
diff options
context:
space:
mode:
Diffstat (limited to 'Library/Homebrew/test/test_compiler_selector.rb')
-rw-r--r--Library/Homebrew/test/test_compiler_selector.rb45
1 files changed, 24 insertions, 21 deletions
diff --git a/Library/Homebrew/test/test_compiler_selector.rb b/Library/Homebrew/test/test_compiler_selector.rb
index 413e92657..a4a2986a0 100644
--- a/Library/Homebrew/test/test_compiler_selector.rb
+++ b/Library/Homebrew/test/test_compiler_selector.rb
@@ -14,17 +14,18 @@ class CompilerSelectorTests < Homebrew::TestCase
attr_accessor :gcc_4_0_build_version, :gcc_build_version,
:llvm_build_version, :clang_build_version
- def initialize(versions={})
- {
- :gcc_4_0_build_version => nil,
- :gcc_build_version => 5666,
- :llvm_build_version => 2336,
- :clang_build_version => 425,
- }.merge(versions).each { |k, v| instance_variable_set("@#{k}", v) }
+ def initialize
+ @gcc_4_0_build_version = nil
+ @gcc_build_version = 5666
+ @llvm_build_version = 2336
+ @clang_build_version = 425
end
def non_apple_gcc_version(name)
- name == "gcc-4.8" ? "4.8.1" : nil
+ case name
+ when "gcc-4.8" then "4.8.1"
+ when "gcc-4.7" then "4.7.1"
+ end
end
end
@@ -32,14 +33,17 @@ class CompilerSelectorTests < Homebrew::TestCase
@f = Double.new
@cc = :clang
@versions = CompilerVersions.new
+ @selector = CompilerSelector.new(
+ @f, @versions, [:clang, :gcc, :llvm, :gnu]
+ )
end
def actual_cc
- CompilerSelector.new(@f, @versions).compiler
+ @selector.compiler
end
def test_all_compiler_failures
- @f << :clang << :llvm << :gcc << { :gcc => "4.8" }
+ @f << :clang << :llvm << :gcc << { :gcc => "4.8" } << { :gcc => "4.7" }
assert_raises(CompilerSelectionError) { actual_cc }
end
@@ -68,17 +72,17 @@ class CompilerSelectorTests < Homebrew::TestCase
end
def test_mixed_failures_1
- @f << :clang << :llvm
- assert_equal :gcc, actual_cc
+ @f << :clang << :gcc
+ assert_equal :llvm, actual_cc
end
def test_mixed_failures_2
- @f << :gcc << :clang << { :gcc => "4.8" }
- assert_equal :llvm, actual_cc
+ @f << :clang << :llvm
+ assert_equal :gcc, actual_cc
end
def test_mixed_failures_3
- @f << :llvm << :gcc
+ @f << :gcc << :llvm
assert_equal :clang, actual_cc
end
@@ -87,10 +91,9 @@ class CompilerSelectorTests < Homebrew::TestCase
assert_equal :gcc, actual_cc
end
- def test_older_clang_precedence
- @versions.clang_build_version = 211
- @f << :gcc << { :gcc => "4.8" }
- assert_equal :llvm, actual_cc
+ def test_mixed_failures_5
+ @f << :clang << :gcc << :llvm << { :gcc => "4.8" }
+ assert_equal "gcc-4.7", actual_cc
end
def test_llvm_precedence
@@ -100,13 +103,13 @@ class CompilerSelectorTests < Homebrew::TestCase
def test_missing_gcc
@versions.gcc_build_version = nil
- @f << :clang << :llvm << { :gcc => "4.8" }
+ @f << :clang << :llvm << { :gcc => "4.8" } << { :gcc => "4.7" }
assert_raises(CompilerSelectionError) { actual_cc }
end
def test_missing_llvm_and_gcc
@versions.gcc_build_version = @versions.llvm_build_version = nil
- @f << :clang << { :gcc => "4.8" }
+ @f << :clang << { :gcc => "4.8" } << { :gcc => "4.7" }
assert_raises(CompilerSelectionError) { actual_cc }
end
end