From 725704f7fb3bf86bbdb2341b48ba1c8045d0f664 Mon Sep 17 00:00:00 2001 From: Jack Nagel Date: Mon, 1 Apr 2013 12:56:56 -0500 Subject: Isolate compiler selector tests --- Library/Homebrew/test/test_compiler_selector.rb | 89 +++++++++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 Library/Homebrew/test/test_compiler_selector.rb (limited to 'Library/Homebrew/test/test_compiler_selector.rb') 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 -- cgit v1.2.3