diff options
| author | Jack Nagel | 2013-04-01 12:56:56 -0500 |
|---|---|---|
| committer | Jack Nagel | 2013-04-02 13:19:04 -0500 |
| commit | 725704f7fb3bf86bbdb2341b48ba1c8045d0f664 (patch) | |
| tree | 56dca3ac1b645a0094394dfdb35150b19f7449c1 /Library/Homebrew/test/test_compiler_selector.rb | |
| parent | e4cbfe11ec7fd646f231ed6418f7f06d55e21b0a (diff) | |
| download | homebrew-725704f7fb3bf86bbdb2341b48ba1c8045d0f664.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 |
