From 9dd6d74b44d857d9b5906dffd896d4109229b1df Mon Sep 17 00:00:00 2001 From: Jack Nagel Date: Tue, 2 Apr 2013 10:37:59 -0500 Subject: [PATCH] Add new tests for fails_with DSL --- Library/Homebrew/test/test_fails_with.rb | 60 ++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 Library/Homebrew/test/test_fails_with.rb diff --git a/Library/Homebrew/test/test_fails_with.rb b/Library/Homebrew/test/test_fails_with.rb new file mode 100644 index 0000000000..2b344cc3da --- /dev/null +++ b/Library/Homebrew/test/test_fails_with.rb @@ -0,0 +1,60 @@ +require 'testing_env' +require 'test/testball' + +class FailsWithTests < Test::Unit::TestCase + class Double < Compiler + attr_accessor :name, :build + end + + def assert_fails_with(cc) + assert @f.new.fails_with?(cc) + end + + def assert_does_not_fail_with(cc) + assert !@f.new.fails_with?(cc) + end + + def fails_with(*args, &block) + @f.send(:fails_with, *args, &block) + end + + def build_cc(sym, build) + cc = Double.new + cc.name = sym + cc.build = build + cc + end + + def setup + @f = Class.new(TestBall) + end + + def test_fails_with_symbol + fails_with :clang + cc = build_cc(:clang, 425) + assert_fails_with cc + end + + def test_fails_with_build + fails_with(:clang) { build 211 } + cc = build_cc(:clang, 318) + assert_does_not_fail_with cc + end + + def test_fails_with_block_without_build + fails_with(:clang) { } + cc = build_cc(:clang, 425) + assert_fails_with cc + end + + def test_multiple_failures + fails_with(:llvm) + fails_with(:clang) + gcc = build_cc(:gcc, 5666) + llvm = build_cc(:llvm, 2336) + clang = build_cc(:clang, 425) + assert_fails_with llvm + assert_fails_with clang + assert_does_not_fail_with gcc + end +end