57 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
		
		
			
		
	
	
			57 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
|   | require "hardware" | ||
|  | require "extend/os/mac/hardware/cpu" | ||
|  | 
 | ||
|  | describe Hardware::CPU do | ||
|  |   describe "::can_run?" do | ||
|  |     it "reports that Intel Macs can run Intel executables" do | ||
|  |       allow(Hardware::CPU).to receive(:type).and_return :intel | ||
|  |       allow(Hardware::CPU).to receive(:bits).and_return 64
 | ||
|  |       expect(Hardware::CPU.can_run?(:i386)).to be true | ||
|  |       expect(Hardware::CPU.can_run?(:x86_64)).to be true | ||
|  |     end | ||
|  | 
 | ||
|  |     it "reports that PowerPC Macs can run PowerPC executables" do | ||
|  |       allow(Hardware::CPU).to receive(:type).and_return :ppc | ||
|  |       allow(Hardware::CPU).to receive(:bits).and_return 64
 | ||
|  |       expect(Hardware::CPU.can_run?(:ppc)).to be true | ||
|  |       expect(Hardware::CPU.can_run?(:ppc64)).to be true | ||
|  |     end | ||
|  | 
 | ||
|  |     it "reports that 32-bit Intel Macs can't run x86_64 executables" do | ||
|  |       allow(Hardware::CPU).to receive(:type).and_return :intel | ||
|  |       allow(Hardware::CPU).to receive(:bits).and_return 32
 | ||
|  |       expect(Hardware::CPU.can_run?(:x86_64)).to be false | ||
|  |     end | ||
|  | 
 | ||
|  |     it "reports that 32-bit PowerPC Macs can't run ppc64 executables" do | ||
|  |       allow(Hardware::CPU).to receive(:type).and_return :ppc | ||
|  |       allow(Hardware::CPU).to receive(:bits).and_return 32
 | ||
|  |       expect(Hardware::CPU.can_run?(:ppc64)).to be false | ||
|  |     end | ||
|  | 
 | ||
|  |     it "reports that Intel Macs can only run 32-bit PowerPC executables on 10.6 and older" do | ||
|  |       allow(Hardware::CPU).to receive(:type).and_return :intel | ||
|  |       allow(OS::Mac).to receive(:version).and_return OS::Mac::Version.new "10.6" | ||
|  |       expect(Hardware::CPU.can_run?(:ppc)).to be true | ||
|  | 
 | ||
|  |       allow(OS::Mac).to receive(:version).and_return OS::Mac::Version.new "10.7" | ||
|  |       expect(Hardware::CPU.can_run?(:ppc)).to be false | ||
|  |     end | ||
|  | 
 | ||
|  |     it "reports that PowerPC Macs can't run Intel executables" do | ||
|  |       allow(Hardware::CPU).to receive(:type).and_return :ppc | ||
|  |       expect(Hardware::CPU.can_run?(:i386)).to be false | ||
|  |       expect(Hardware::CPU.can_run?(:x86_64)).to be false | ||
|  |     end | ||
|  | 
 | ||
|  |     it "returns false for unknown CPU types" do | ||
|  |       allow(Hardware::CPU).to receive(:type).and_return :dunno | ||
|  |       expect(Hardware::CPU.can_run?(:i386)).to be false | ||
|  |     end | ||
|  | 
 | ||
|  |     it "returns false for unknown arches" do | ||
|  |       expect(Hardware::CPU.can_run?(:blah)).to be false | ||
|  |     end | ||
|  |   end | ||
|  | end |