diff options
Diffstat (limited to 'Library/Homebrew/test/test_compiler_selector.rb')
| -rw-r--r-- | Library/Homebrew/test/test_compiler_selector.rb | 45 |
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 |
