Skip to content
Snippets Groups Projects
Commit a55fa2c3 authored by Jack Nagel's avatar Jack Nagel
Browse files

Decouple CompilerSelector from ENV

parent f8b49597
No related branches found
No related tags found
Loading
......@@ -114,7 +114,7 @@ def install f
end
end
CompilerSelector.new(f).select_compiler if f.fails_with? ENV.compiler
ENV.send(CompilerSelector.new(f).compiler) if f.fails_with? ENV.compiler
f.brew do
if ARGV.flag? '--git'
......
......@@ -56,11 +56,11 @@ class CompilerSelector
end
end
def select_compiler
def compiler
begin
cc = @compilers.pop
end while @f.fails_with?(cc)
ENV.send(cc.name) unless cc.nil?
cc.nil? ? @old_compiler : cc.name
end
private
......
......@@ -2,14 +2,6 @@ require 'testing_env'
require 'test/testball'
class CompilerTests < Test::Unit::TestCase
def setup
%w{HOMEBREW_USE_CLANG HOMEBREW_USE_LLVM HOMEBREW_USE_GCC}.each { |v| ENV.delete(v) }
end
def teardown
ENV.send MacOS.default_compiler
end
def test_llvm_failure
f = TestLLVMFailure.new
cs = CompilerSelector.new(f)
......@@ -17,13 +9,10 @@ class CompilerTests < Test::Unit::TestCase
assert !(f.fails_with? :clang)
assert f.fails_with? :llvm
assert !(f.fails_with? :gcc)
cs.select_compiler
assert_equal case MacOS.clang_build_version
when 0..210 then :gcc
else :clang
end, ENV.compiler
end, cs.compiler
end
def test_all_compiler_failures
......@@ -33,10 +22,7 @@ class CompilerTests < Test::Unit::TestCase
assert f.fails_with? :clang
assert f.fails_with? :llvm
assert f.fails_with? :gcc
cs.select_compiler
assert_equal MacOS.default_compiler, ENV.compiler
assert_equal MacOS.default_compiler, cs.compiler
end
def test_no_compiler_failures
......@@ -49,10 +35,7 @@ class CompilerTests < Test::Unit::TestCase
when nil then f.fails_with? :gcc
else !(f.fails_with? :gcc)
end
cs.select_compiler
assert_equal MacOS.default_compiler, ENV.compiler
assert_equal MacOS.default_compiler, cs.compiler
end
def test_mixed_compiler_failures
......@@ -62,10 +45,7 @@ class CompilerTests < Test::Unit::TestCase
assert f.fails_with? :clang
assert !(f.fails_with? :llvm)
assert f.fails_with? :gcc
cs.select_compiler
assert_equal :llvm, ENV.compiler
assert_equal :llvm, cs.compiler
end
def test_more_mixed_compiler_failures
......@@ -75,10 +55,7 @@ class CompilerTests < Test::Unit::TestCase
assert !(f.fails_with? :clang)
assert f.fails_with? :llvm
assert f.fails_with? :gcc
cs.select_compiler
assert_equal :clang, ENV.compiler
assert_equal :clang, cs.compiler
end
def test_even_more_mixed_compiler_failures
......@@ -91,13 +68,10 @@ class CompilerTests < Test::Unit::TestCase
when nil then f.fails_with? :gcc
else !(f.fails_with? :gcc)
end
cs.select_compiler
assert_equal case MacOS.gcc_42_build_version
when nil then :llvm
else :gcc
end, ENV.compiler
end, cs.compiler
end
def test_block_with_no_build_compiler_failures
......@@ -107,9 +81,6 @@ class CompilerTests < Test::Unit::TestCase
assert f.fails_with? :clang
assert !(f.fails_with? :llvm)
assert !(f.fails_with? :gcc)
cs.select_compiler
assert_not_equal :clang, ENV.compiler
assert_not_equal :clang, cs.compiler
end
end
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment