53 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			53 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
| require "testing_env"
 | |
| require "compilers"
 | |
| 
 | |
| class CompilerFailureTests < Homebrew::TestCase
 | |
|   Compiler = Struct.new(:name, :version)
 | |
| 
 | |
|   def assert_fails_with(compiler, failure)
 | |
|     assert_operator failure, :fails_with?, compiler
 | |
|   end
 | |
| 
 | |
|   def refute_fails_with(compiler, failure)
 | |
|     refute_operator failure, :fails_with?, compiler
 | |
|   end
 | |
| 
 | |
|   def compiler(name, version)
 | |
|     Compiler.new(name, version)
 | |
|   end
 | |
| 
 | |
|   def create(spec, &block)
 | |
|     CompilerFailure.create(spec, &block)
 | |
|   end
 | |
| 
 | |
|   def test_create_with_symbol
 | |
|     failure = create(:clang)
 | |
|     assert_fails_with compiler(:clang, 425), failure
 | |
|   end
 | |
| 
 | |
|   def test_create_with_block
 | |
|     failure = create(:clang) { build 211 }
 | |
|     assert_fails_with compiler(:clang, 210), failure
 | |
|     refute_fails_with compiler(:clang, 318), failure
 | |
|   end
 | |
| 
 | |
|   def test_create_with_block_without_build
 | |
|     failure = create(:clang) {}
 | |
|     assert_fails_with compiler(:clang, 425), failure
 | |
|   end
 | |
| 
 | |
|   def test_create_with_hash
 | |
|     failure = create(gcc: "4.8")
 | |
|     assert_fails_with compiler("gcc-4.8", "4.8"), failure
 | |
|     assert_fails_with compiler("gcc-4.8", "4.8.1"), failure
 | |
|     refute_fails_with compiler("gcc-4.7", "4.7"), failure
 | |
|   end
 | |
| 
 | |
|   def test_create_with_hash_and_version
 | |
|     failure = create(gcc: "4.8") { version "4.8.1" }
 | |
|     assert_fails_with compiler("gcc-4.8", "4.8"), failure
 | |
|     assert_fails_with compiler("gcc-4.8", "4.8.1"), failure
 | |
|     refute_fails_with compiler("gcc-4.8", "4.8.2"), failure
 | |
|   end
 | |
| end
 | 
