aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarkus Reiter2017-02-15 15:38:43 +0100
committerMarkus Reiter2017-02-15 19:22:26 +0100
commitb89c0f16dd5e5d75e6e72187bf2956ce456c8090 (patch)
treeae9ededf4a98ce4904f382581ab01dad982a7a12
parentec27b69ba2717ccf2c5fcd3c1e73a5f884a0a6a6 (diff)
downloadbrew-b89c0f16dd5e5d75e6e72187bf2956ce456c8090.tar.bz2
Convert CxxStdlib test to spec.
-rw-r--r--Library/Homebrew/test/cxxstdlib_spec.rb68
-rw-r--r--Library/Homebrew/test/stdlib_test.rb63
2 files changed, 68 insertions, 63 deletions
diff --git a/Library/Homebrew/test/cxxstdlib_spec.rb b/Library/Homebrew/test/cxxstdlib_spec.rb
new file mode 100644
index 000000000..dd2e4e1c6
--- /dev/null
+++ b/Library/Homebrew/test/cxxstdlib_spec.rb
@@ -0,0 +1,68 @@
+require "formula"
+require "cxxstdlib"
+
+describe CxxStdlib do
+ let(:clang) { CxxStdlib.create(:libstdcxx, :clang) }
+ let(:gcc) { CxxStdlib.create(:libstdcxx, :gcc) }
+ let(:gcc40) { CxxStdlib.create(:libstdcxx, :gcc_4_0) }
+ let(:gcc42) { CxxStdlib.create(:libstdcxx, :gcc_4_2) }
+ let(:gcc48) { CxxStdlib.create(:libstdcxx, "gcc-4.8") }
+ let(:gcc49) { CxxStdlib.create(:libstdcxx, "gcc-4.9") }
+ let(:lcxx) { CxxStdlib.create(:libcxx, :clang) }
+ let(:purec) { CxxStdlib.create(nil, :clang) }
+
+ describe "#compatible_with?" do
+ specify "Apple libstdcxx intercompatibility" do
+ expect(clang).to be_compatible_with(gcc)
+ expect(clang).to be_compatible_with(gcc42)
+ end
+
+ specify "compatibility with itself" do
+ expect(gcc).to be_compatible_with(gcc)
+ expect(gcc48).to be_compatible_with(gcc48)
+ expect(clang).to be_compatible_with(clang)
+ end
+
+ specify "Apple/GNU libstdcxx incompatibility" do
+ expect(clang).not_to be_compatible_with(gcc48)
+ expect(gcc48).not_to be_compatible_with(clang)
+ end
+
+ specify "GNU cross-version incompatibility" do
+ expect(gcc48).not_to be_compatible_with(gcc49)
+ expect(gcc49).not_to be_compatible_with(gcc48)
+ end
+
+ specify "libstdcxx and libcxx incompatibility" do
+ expect(clang).not_to be_compatible_with(lcxx)
+ expect(lcxx).not_to be_compatible_with(clang)
+ end
+
+ specify "compatibility for non-cxx software" do
+ expect(purec).to be_compatible_with(clang)
+ expect(clang).to be_compatible_with(purec)
+ expect(purec).to be_compatible_with(purec)
+ expect(purec).to be_compatible_with(gcc48)
+ expect(gcc48).to be_compatible_with(purec)
+ end
+ end
+
+ describe "#apple_compiler?" do
+ it "returns true for Apple compilers" do
+ expect(clang).to be_an_apple_compiler
+ expect(gcc).to be_an_apple_compiler
+ expect(gcc42).to be_an_apple_compiler
+ end
+
+ it "returns false for non-Apple compilers" do
+ expect(gcc48).not_to be_an_apple_compiler
+ end
+ end
+
+ describe "#type_string" do
+ specify "formatting" do
+ expect(clang.type_string).to eq("libstdc++")
+ expect(lcxx.type_string).to eq("libc++")
+ end
+ end
+end
diff --git a/Library/Homebrew/test/stdlib_test.rb b/Library/Homebrew/test/stdlib_test.rb
deleted file mode 100644
index f193ae71e..000000000
--- a/Library/Homebrew/test/stdlib_test.rb
+++ /dev/null
@@ -1,63 +0,0 @@
-require "testing_env"
-require "formula"
-require "cxxstdlib"
-
-class CxxStdlibTests < Homebrew::TestCase
- def setup
- super
- @clang = CxxStdlib.create(:libstdcxx, :clang)
- @gcc = CxxStdlib.create(:libstdcxx, :gcc)
- @gcc40 = CxxStdlib.create(:libstdcxx, :gcc_4_0)
- @gcc42 = CxxStdlib.create(:libstdcxx, :gcc_4_2)
- @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?(@gcc42)
- 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 @gcc42, :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