Sha256: c5c02f740ff531a4c6e681ddbe7baef765aa9e09b0340be96503b94a4db4f56c

Contents?: true

Size: 1.91 KB

Versions: 56

Compression:

Stored size: 1.91 KB

Contents

#!/usr/bin/env ruby

require 'spec_helper'
require 'facter'

describe "Hardwaremodel fact" do
  it "should match uname -m by default" do
    Facter.fact(:kernel).stubs(:value).returns("Darwin")
    Facter.fact(:operatingsystem).stubs(:value).returns("Darwin")
    Facter::Core::Execution.stubs(:execute).with("uname -m", anything).returns("Inky")

    Facter.fact(:hardwaremodel).value.should == "Inky"
  end

  describe "on Windows" do
    require 'facter/util/wmi'
    before :each do
      Facter.fact(:kernel).stubs(:value).returns("windows")
      Facter.fact(:operatingsystem).stubs(:value).returns("windows")
    end

    it "should detect i486" do
      cpu = mock('cpu', :Architecture => 0)
      cpu.expects(:Level).returns(4).twice
      Facter::Util::WMI.expects(:execquery).returns([cpu])

      Facter.fact(:hardwaremodel).value.should == "i486"
    end

    it "should detect i686" do
      cpu = mock('cpu', :Architecture => 0, :Level => 6)
      Facter::Util::WMI.expects(:execquery).returns([cpu])

      Facter.fact(:hardwaremodel).value.should == "i686"
    end

    it "should detect x64" do
      cpu = mock('cpu', :Architecture => 9, :AddressWidth => 64, :Level => 6)
      Facter::Util::WMI.expects(:execquery).returns([cpu])

      Facter.fact(:hardwaremodel).value.should == "x64"
    end

    it "(#16948) reports i686 when a 32 bit OS is running on a 64 bit CPU" do
      cpu = mock('cpu', :Architecture => 9, :AddressWidth => 32, :Level => 6)
      Facter::Util::WMI.expects(:execquery).returns([cpu])

      Facter.fact(:hardwaremodel).value.should == "i686"
    end

    it "(#20989) should report i686 when a 32 bit OS is running on a 64 bit CPU and when level is greater than 6 (and not something like i1586)" do
      cpu = mock('cpu', :Architecture => 9, :AddressWidth => 32, :Level => 15)
      Facter::Util::WMI.expects(:execquery).returns([cpu])

      Facter.fact(:hardwaremodel).value.should == "i686"
    end
  end
end

Version data entries

56 entries across 56 versions & 1 rubygems

Version Path
facter-2.5.7 spec/unit/hardwaremodel_spec.rb
facter-2.5.7-x86-mingw32 spec/unit/hardwaremodel_spec.rb
facter-2.5.7-x64-mingw32 spec/unit/hardwaremodel_spec.rb
facter-2.5.7-universal-darwin spec/unit/hardwaremodel_spec.rb
facter-2.5.6-x86-mingw32 spec/unit/hardwaremodel_spec.rb
facter-2.5.6-x64-mingw32 spec/unit/hardwaremodel_spec.rb
facter-2.5.6-universal-darwin spec/unit/hardwaremodel_spec.rb
facter-2.5.6 spec/unit/hardwaremodel_spec.rb
facter-2.5.5-x86-mingw32 spec/unit/hardwaremodel_spec.rb
facter-2.5.5-x64-mingw32 spec/unit/hardwaremodel_spec.rb
facter-2.5.5-universal-darwin spec/unit/hardwaremodel_spec.rb
facter-2.5.5 spec/unit/hardwaremodel_spec.rb
facter-2.5.4-x86-mingw32 spec/unit/hardwaremodel_spec.rb
facter-2.5.4-x64-mingw32 spec/unit/hardwaremodel_spec.rb
facter-2.5.4-universal-darwin spec/unit/hardwaremodel_spec.rb
facter-2.5.4 spec/unit/hardwaremodel_spec.rb
facter-2.5.1 spec/unit/hardwaremodel_spec.rb
facter-2.5.1-x86-mingw32 spec/unit/hardwaremodel_spec.rb
facter-2.5.1-x64-mingw32 spec/unit/hardwaremodel_spec.rb
facter-2.5.1-universal-darwin spec/unit/hardwaremodel_spec.rb