brew/Library/Homebrew/test/cxxstdlib_spec.rb
Mike McQuaid 170c5493a4
Update deprecations
- Add some `odeprecated`
- Make some `odeprecated` now `odisabled`
- Remove `odisabled` code.
- Remove old update migrations
- Remove GCC 4.0 compiler
- Remove Tiger-only code
- Remove 32-bit-only code
- Remove use of LD64
- Remove GCC 4.3 - 4.8 support.
2019-01-08 19:13:46 +00:00

68 lines
2.1 KiB
Ruby

require "formula"
require "cxxstdlib"
describe CxxStdlib do
let(:clang) { described_class.create(:libstdcxx, :clang) }
let(:gcc) { described_class.create(:libstdcxx, :gcc) }
let(:gcc42) { described_class.create(:libstdcxx, :gcc_4_2) }
let(:gcc6) { described_class.create(:libstdcxx, "gcc-6") }
let(:gcc7) { described_class.create(:libstdcxx, "gcc-7") }
let(:lcxx) { described_class.create(:libcxx, :clang) }
let(:purec) { described_class.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(gcc7).to be_compatible_with(gcc7)
expect(clang).to be_compatible_with(clang)
end
specify "Apple/GNU libstdcxx incompatibility" do
expect(clang).not_to be_compatible_with(gcc7)
expect(gcc7).not_to be_compatible_with(clang)
end
specify "GNU cross-version incompatibility" do
expect(gcc6).not_to be_compatible_with(gcc7)
expect(gcc7).not_to be_compatible_with(gcc6)
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(gcc7)
expect(gcc7).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(gcc7).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