diff options
| author | Jack Nagel | 2014-06-11 21:05:31 -0500 |
|---|---|---|
| committer | Jack Nagel | 2014-06-11 21:23:05 -0500 |
| commit | 3d2a8e8520a1902871baf3746675bd02f5eab8d8 (patch) | |
| tree | 166a5972ab2740f38e0e39b3c4f8a7682a549cf1 /Library/Homebrew/test/test_compiler_selector.rb | |
| parent | 55adb98a572e78a4f5ae7891091de8b1991721dd (diff) | |
| download | homebrew-3d2a8e8520a1902871baf3746675bd02f5eab8d8.tar.bz2 | |
Decouple CompilerSelector from MacOS, clean up tests
Diffstat (limited to 'Library/Homebrew/test/test_compiler_selector.rb')
| -rw-r--r-- | Library/Homebrew/test/test_compiler_selector.rb | 48 |
1 files changed, 26 insertions, 22 deletions
diff --git a/Library/Homebrew/test/test_compiler_selector.rb b/Library/Homebrew/test/test_compiler_selector.rb index 9e80bf084..1c13aaf11 100644 --- a/Library/Homebrew/test/test_compiler_selector.rb +++ b/Library/Homebrew/test/test_compiler_selector.rb @@ -20,30 +20,32 @@ class CompilerSelectorTests < Test::Unit::TestCase end end - def setup - MacOS.stubs(:gcc_4_0_build_version).returns(nil) - MacOS.stubs(:gcc_build_version).returns(5666) - MacOS.stubs(:llvm_build_version).returns(2336) - MacOS.stubs(:clang_build_version).returns(425) - # Yes, this is ugly - we only want one GCC version to be available. - MacOS.send(:alias_method, :old_non_apple_gcc_version, :non_apple_gcc_version) - MacOS.send(:define_method, :non_apple_gcc_version) do |name| - if name == 'gcc-4.8' - '4.8.1' - else - nil - end + class CompilerVersions + 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) } + end + + def non_apple_gcc_version(name) + name == "gcc-4.8" ? "4.8.1" : nil end - @f = Double.new - @cc = :clang end - def teardown - MacOS.send(:alias_method, :non_apple_gcc_version, :old_non_apple_gcc_version) + def setup + @f = Double.new + @cc = :clang + @versions = CompilerVersions.new end def actual_cc - CompilerSelector.new(@f).compiler + CompilerSelector.new(@f, @versions).compiler end def test_all_compiler_failures @@ -96,7 +98,7 @@ class CompilerSelectorTests < Test::Unit::TestCase end def test_older_clang_precedence - MacOS.stubs(:clang_build_version).returns(211) + @versions = CompilerVersions.new(:clang_build_version => 211) @f << :gcc << 'gcc-4.8' assert_equal :llvm, actual_cc end @@ -107,14 +109,16 @@ class CompilerSelectorTests < Test::Unit::TestCase end def test_missing_gcc - MacOS.stubs(:gcc_build_version).returns(nil) + @versions = CompilerVersions.new( :gcc_build_version => nil) @f << :clang << :llvm << 'gcc-4.8' assert_raise(CompilerSelectionError) { actual_cc } end def test_missing_llvm_and_gcc - MacOS.stubs(:gcc_build_version).returns(nil) - MacOS.stubs(:llvm_build_version).returns(nil) + @versions = CompilerVersions.new( + :gcc_build_version => nil, + :llvm_build_version => nil + ) @f << :clang << 'gcc-4.8' assert_raise(CompilerSelectionError) { actual_cc } end |
