aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/test/test_compiler_failure.rb
diff options
context:
space:
mode:
Diffstat (limited to 'Library/Homebrew/test/test_compiler_failure.rb')
-rw-r--r--Library/Homebrew/test/test_compiler_failure.rb52
1 files changed, 52 insertions, 0 deletions
diff --git a/Library/Homebrew/test/test_compiler_failure.rb b/Library/Homebrew/test/test_compiler_failure.rb
new file mode 100644
index 000000000..da656de7f
--- /dev/null
+++ b/Library/Homebrew/test/test_compiler_failure.rb
@@ -0,0 +1,52 @@
+require "testing_env"
+require "compilers"
+
+class CompilerFailureTests < Homebrew::TestCase
+ Compiler = Struct.new(:name, :version)
+
+ def assert_fails_with(compiler, failure)
+ assert_operator failure, :===, compiler
+ end
+
+ def refute_fails_with(compiler, failure)
+ refute_operator failure, :===, 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