diff options
| author | Jack Nagel | 2013-04-01 12:56:56 -0500 |
|---|---|---|
| committer | Jack Nagel | 2013-04-02 13:19:04 -0500 |
| commit | 2f49fd07b14875e7fad02ee8b8ac93af87ff7f72 (patch) | |
| tree | 02034d92d10a7d9933c8e557a184372926a1b2f2 /Library/Homebrew/test/test_compiler_selector.rb | |
| parent | c679e557ba735b932eee7c37facf6ec147c265d0 (diff) | |
| download | brew-2f49fd07b14875e7fad02ee8b8ac93af87ff7f72.tar.bz2 | |
Isolate compiler selector tests
Diffstat (limited to 'Library/Homebrew/test/test_compiler_selector.rb')
| -rw-r--r-- | Library/Homebrew/test/test_compiler_selector.rb | 89 |
1 files changed, 89 insertions, 0 deletions
diff --git a/Library/Homebrew/test/test_compiler_selector.rb b/Library/Homebrew/test/test_compiler_selector.rb new file mode 100644 index 000000000..6e3a36366 --- /dev/null +++ b/Library/Homebrew/test/test_compiler_selector.rb @@ -0,0 +1,89 @@ +require 'testing_env' +require 'compilers' + +class CompilerSelectorTests < Test::Unit::TestCase + class Double + def initialize + @failures = [] + end + + def <<(cc) + @failures << cc + end + + def fails_with?(cc) + return false if cc.nil? + @failures.include?(cc.name) + end + end + + def setup + MacOS.stubs(:gcc_build_version).returns(5666) + MacOS.stubs(:llvm_build_version).returns(2336) + MacOS.stubs(:clang_build_version).returns(425) + @f = Double.new + @cc = :clang + end + + def actual_cc + CompilerSelector.new(@f, @cc).compiler + end + + def test_all_compiler_failures + @f << :clang << :llvm << :gcc + assert_equal @cc, actual_cc + end + + def test_no_compiler_failures + assert_equal @cc, actual_cc + end + + def test_fails_with_clang + @f << :clang + assert_equal :llvm, actual_cc + end + + def test_fails_with_llvm + @f << :llvm + assert_equal :clang, actual_cc + end + + def test_fails_with_gcc + @f << :gcc + assert_equal :clang, actual_cc + end + + def test_mixed_failures_1 + @f << :clang << :llvm + assert_equal :gcc, actual_cc + end + + def test_mixed_failures_2 + @f << :gcc << :clang + assert_equal :llvm, actual_cc + end + + def test_mixed_failures_3 + @f << :llvm << :gcc + assert_equal :clang, actual_cc + end + + def test_older_clang_precedence + MacOS.stubs(:clang_build_version).returns(211) + @f << :gcc + assert_equal :llvm, actual_cc + end + + def test_missing_gcc + MacOS.stubs(:gcc_build_version).returns(nil) + @f << :clang << :llvm + assert_equal @cc, actual_cc + end + + def test_missing_llvm_and_gcc + MacOS.stubs(:gcc_build_version).returns(nil) + MacOS.stubs(:llvm_build_version).returns(nil) + @f << :clang + assert_equal @cc, actual_cc + end +end |
