aboutsummaryrefslogtreecommitdiffstats
path: root/Library/Homebrew/test/stdlib_test.rb
diff options
context:
space:
mode:
authorMarkus Reiter2016-11-17 03:36:21 +0100
committerGitHub2016-11-17 03:36:21 +0100
commite6933b90dc750dc9aadb3bfb6acf1bf395942d57 (patch)
tree0da872ad2906fad53f176e05056181e0c6ccceaa /Library/Homebrew/test/stdlib_test.rb
parentedf042ee97f80955b077724119e717a51eb25e29 (diff)
parent7457af2b231528e1287281f6cfe651600d5f3f5d (diff)
downloadbrew-e6933b90dc750dc9aadb3bfb6acf1bf395942d57.tar.bz2
Merge pull request #1364 from reitermarkus/reorder-tests
Reorder and rename test files.
Diffstat (limited to 'Library/Homebrew/test/stdlib_test.rb')
-rw-r--r--Library/Homebrew/test/stdlib_test.rb61
1 files changed, 61 insertions, 0 deletions
diff --git a/Library/Homebrew/test/stdlib_test.rb b/Library/Homebrew/test/stdlib_test.rb
new file mode 100644
index 000000000..ee53e7c8c
--- /dev/null
+++ b/Library/Homebrew/test/stdlib_test.rb
@@ -0,0 +1,61 @@
+require "testing_env"
+require "formula"
+require "cxxstdlib"
+
+class CxxStdlibTests < Homebrew::TestCase
+ def setup
+ @clang = CxxStdlib.create(:libstdcxx, :clang)
+ @gcc = CxxStdlib.create(:libstdcxx, :gcc)
+ @gcc4 = CxxStdlib.create(:libstdcxx, :gcc_4_0)
+ @gcc48 = CxxStdlib.create(:libstdcxx, "gcc-4.8")
+ @gcc49 = CxxStdlib.create(:libstdcxx, "gcc-4.9")
+ @lcxx = CxxStdlib.create(:libcxx, :clang)
+ @purec = CxxStdlib.create(nil, :clang)
+ end
+
+ def test_apple_libstdcxx_intercompatibility
+ assert @clang.compatible_with?(@gcc)
+ assert @clang.compatible_with?(@gcc4)
+ end
+
+ def test_compatibility_same_compilers_and_type
+ assert @gcc.compatible_with?(@gcc)
+ assert @gcc48.compatible_with?(@gcc48)
+ assert @clang.compatible_with?(@clang)
+ end
+
+ def test_apple_gnu_libstdcxx_incompatibility
+ assert !@clang.compatible_with?(@gcc48)
+ assert !@gcc48.compatible_with?(@clang)
+ end
+
+ def test_gnu_cross_version_incompatibility
+ assert !@gcc48.compatible_with?(@gcc49)
+ assert !@gcc49.compatible_with?(@gcc48)
+ end
+
+ def test_libstdcxx_libcxx_incompatibility
+ assert !@clang.compatible_with?(@lcxx)
+ assert !@lcxx.compatible_with?(@clang)
+ end
+
+ def test_apple_compiler_reporting
+ assert_predicate @clang, :apple_compiler?
+ assert_predicate @gcc, :apple_compiler?
+ assert_predicate @gcc4, :apple_compiler?
+ refute_predicate @gcc48, :apple_compiler?
+ end
+
+ def test_type_string_formatting
+ assert_equal "libstdc++", @clang.type_string
+ assert_equal "libc++", @lcxx.type_string
+ end
+
+ def test_compatibility_for_non_cxx_software
+ assert @purec.compatible_with?(@clang)
+ assert @clang.compatible_with?(@purec)
+ assert @purec.compatible_with?(@purec)
+ assert @purec.compatible_with?(@gcc48)
+ assert @gcc48.compatible_with?(@purec)
+ end
+end