Merge pull request #4642 from mistydemeo/mac_sdk_path_tests_improvement

Mac.sdk_path_if_needed tests: stub SDK check
This commit is contained in:
Misty De Meo 2018-08-08 15:54:36 -07:00 committed by GitHub
commit 7ed3be53e0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -22,39 +22,42 @@ describe OS::Mac do
describe "::sdk_path_if_needed" do describe "::sdk_path_if_needed" do
it "calls sdk_path on Xcode-only systems" do it "calls sdk_path on Xcode-only systems" do
allow(OS::Mac::Xcode).to receive(:installed?) { true } allow(OS::Mac::Xcode).to receive(:installed?).and_return(true)
allow(OS::Mac::CLT).to receive(:installed?) { false } allow(OS::Mac::CLT).to receive(:installed?).and_return(false)
expect(OS::Mac).to receive(:sdk_path) expect(OS::Mac).to receive(:sdk_path)
OS::Mac.sdk_path_if_needed OS::Mac.sdk_path_if_needed
end end
it "does not call sdk_path on Xcode-and-CLT systems with system headers" do it "does not call sdk_path on Xcode-and-CLT systems with system headers" do
allow(OS::Mac::Xcode).to receive(:installed?) { true } allow(OS::Mac::Xcode).to receive(:installed?).and_return(true)
allow(OS::Mac::CLT).to receive(:installed?) { true } allow(OS::Mac::CLT).to receive(:installed?).and_return(true)
allow(OS::Mac::CLT).to receive(:separate_header_package?) { false } allow(OS::Mac::CLT).to receive(:separate_header_package?).and_return(false)
expect(OS::Mac).not_to receive(:sdk_path) expect(OS::Mac).not_to receive(:sdk_path)
OS::Mac.sdk_path_if_needed OS::Mac.sdk_path_if_needed
end end
it "does not call sdk_path on CLT-only systems with no CLT SDK" do it "does not call sdk_path on CLT-only systems with no CLT SDK" do
allow(OS::Mac::Xcode).to receive(:installed?) { false } allow(OS::Mac::Xcode).to receive(:installed?).and_return(false)
allow(OS::Mac::CLT).to receive(:installed?) { true } allow(OS::Mac::CLT).to receive(:installed?).and_return(true)
allow(OS::Mac::CLT).to receive(:provides_sdk?).and_return(false)
expect(OS::Mac).not_to receive(:sdk_path) expect(OS::Mac).not_to receive(:sdk_path)
OS::Mac.sdk_path_if_needed OS::Mac.sdk_path_if_needed
end end
it "does not call sdk_path on CLT-only systems with a CLT SDK if the system provides headers" do it "does not call sdk_path on CLT-only systems with a CLT SDK if the system provides headers" do
allow(OS::Mac::Xcode).to receive(:installed?) { false } allow(OS::Mac::Xcode).to receive(:installed?).and_return(false)
allow(OS::Mac::CLT).to receive(:installed?) { true } allow(OS::Mac::CLT).to receive(:installed?).and_return(true)
allow(OS::Mac::CLT).to receive(:separate_header_package?) { false } allow(OS::Mac::CLT).to receive(:provides_sdk?).and_return(true)
allow(OS::Mac::CLT).to receive(:separate_header_package?).and_return(false)
expect(OS::Mac).not_to receive(:sdk_path) expect(OS::Mac).not_to receive(:sdk_path)
OS::Mac.sdk_path_if_needed OS::Mac.sdk_path_if_needed
end end
it "calls sdk_path on CLT-only systems with a CLT SDK if the system does not provide headers" do it "calls sdk_path on CLT-only systems with a CLT SDK if the system does not provide headers" do
allow(OS::Mac::Xcode).to receive(:installed?) { false } allow(OS::Mac::Xcode).to receive(:installed?).and_return(false)
allow(OS::Mac::CLT).to receive(:installed?) { true } allow(OS::Mac::CLT).to receive(:installed?).and_return(true)
allow(OS::Mac::CLT).to receive(:separate_header_package?) { true } allow(OS::Mac::CLT).to receive(:provides_sdk?).and_return(true)
allow(OS::Mac::CLT).to receive(:separate_header_package?).and_return(true)
expect(OS::Mac).to receive(:sdk_path) expect(OS::Mac).to receive(:sdk_path)
OS::Mac.sdk_path_if_needed OS::Mac.sdk_path_if_needed
end end