spec/unit/util/virtual_spec.rb in facter-1.6.2 vs spec/unit/util/virtual_spec.rb in facter-1.6.3

- old
+ new

@@ -2,174 +2,174 @@ require 'facter/util/virtual' describe Facter::Util::Virtual do - after do - Facter.clear - end - it "should detect openvz" do - FileTest.stubs(:directory?).with("/proc/vz").returns(true) - Dir.stubs(:glob).with("/proc/vz/*").returns(['vzquota']) - Facter::Util::Virtual.should be_openvz - end + after do + Facter.clear + end + it "should detect openvz" do + FileTest.stubs(:directory?).with("/proc/vz").returns(true) + Dir.stubs(:glob).with("/proc/vz/*").returns(['vzquota']) + Facter::Util::Virtual.should be_openvz + end - it "should not detect openvz when /proc/lve/list is present" do - FileTest.stubs(:file?).with("/proc/lve/list").returns(true) - Facter::Util::Virtual.should_not be_openvz - end + it "should not detect openvz when /proc/lve/list is present" do + FileTest.stubs(:file?).with("/proc/lve/list").returns(true) + Facter::Util::Virtual.should_not be_openvz + end - it "should not detect openvz when /proc/vz/ is empty" do - FileTest.stubs(:file?).with("/proc/lve/list").returns(false) - FileTest.stubs(:directory?).with("/proc/vz").returns(true) - Dir.stubs(:glob).with("/proc/vz/*").returns([]) - Facter::Util::Virtual.should_not be_openvz - end + it "should not detect openvz when /proc/vz/ is empty" do + FileTest.stubs(:file?).with("/proc/lve/list").returns(false) + FileTest.stubs(:directory?).with("/proc/vz").returns(true) + Dir.stubs(:glob).with("/proc/vz/*").returns([]) + Facter::Util::Virtual.should_not be_openvz + end - it "should identify openvzhn when /proc/self/status has envID of 0" do - Facter::Util::Virtual.stubs(:openvz?).returns(true) - FileTest.stubs(:exists?).with("/proc/self/status").returns(true) - Facter::Util::Resolution.stubs(:exec).with('grep "envID" /proc/self/status').returns("envID: 0") - Facter::Util::Virtual.openvz_type().should == "openvzhn" - end + it "should identify openvzhn when /proc/self/status has envID of 0" do + Facter::Util::Virtual.stubs(:openvz?).returns(true) + FileTest.stubs(:exists?).with("/proc/self/status").returns(true) + Facter::Util::Resolution.stubs(:exec).with('grep "envID" /proc/self/status').returns("envID: 0") + Facter::Util::Virtual.openvz_type().should == "openvzhn" + end - it "should identify openvzve when /proc/self/status has envID of 0" do - Facter::Util::Virtual.stubs(:openvz?).returns(true) - FileTest.stubs(:exists?).with('/proc/self/status').returns(true) - Facter::Util::Resolution.stubs(:exec).with('grep "envID" /proc/self/status').returns("envID: 666") - Facter::Util::Virtual.openvz_type().should == "openvzve" - end + it "should identify openvzve when /proc/self/status has envID of 0" do + Facter::Util::Virtual.stubs(:openvz?).returns(true) + FileTest.stubs(:exists?).with('/proc/self/status').returns(true) + Facter::Util::Resolution.stubs(:exec).with('grep "envID" /proc/self/status').returns("envID: 666") + Facter::Util::Virtual.openvz_type().should == "openvzve" + end - it "should not attempt to identify openvz when /proc/self/status has no envID" do - Facter::Util::Virtual.stubs(:openvz?).returns(true) - FileTest.stubs(:exists?).with('/proc/self/status').returns(true) - Facter::Util::Resolution.stubs(:exec).with('grep "envID" /proc/self/status').returns("") - Facter::Util::Virtual.openvz_type().should be_nil - end + it "should not attempt to identify openvz when /proc/self/status has no envID" do + Facter::Util::Virtual.stubs(:openvz?).returns(true) + FileTest.stubs(:exists?).with('/proc/self/status').returns(true) + Facter::Util::Resolution.stubs(:exec).with('grep "envID" /proc/self/status').returns("") + Facter::Util::Virtual.openvz_type().should be_nil + end - it "should identify Solaris zones when non-global zone" do - Facter::Util::Resolution.stubs(:exec).with("/sbin/zonename").returns("somezone") - Facter::Util::Virtual.should be_zone - end + it "should identify Solaris zones when non-global zone" do + Facter::Util::Resolution.stubs(:exec).with("/sbin/zonename").returns("somezone") + Facter::Util::Virtual.should be_zone + end - it "should not identify Solaris zones when global zone" do - Facter::Util::Resolution.stubs(:exec).with("/sbin/zonename").returns("global") - Facter::Util::Virtual.should_not be_zone - end + it "should not identify Solaris zones when global zone" do + Facter::Util::Resolution.stubs(:exec).with("/sbin/zonename").returns("global") + Facter::Util::Virtual.should_not be_zone + end - it "should not detect vserver if no self status" do - FileTest.stubs(:exists?).with("/proc/self/status").returns(false) - Facter::Util::Virtual.should_not be_vserver - end + it "should not detect vserver if no self status" do + FileTest.stubs(:exists?).with("/proc/self/status").returns(false) + Facter::Util::Virtual.should_not be_vserver + end - it "should detect vserver when vxid present in process status" do - FileTest.stubs(:exists?).with("/proc/self/status").returns(true) - File.stubs(:read).with("/proc/self/status").returns("VxID: 42\n") - Facter::Util::Virtual.should be_vserver - end + it "should detect vserver when vxid present in process status" do + FileTest.stubs(:exists?).with("/proc/self/status").returns(true) + File.stubs(:read).with("/proc/self/status").returns("VxID: 42\n") + Facter::Util::Virtual.should be_vserver + end - it "should detect vserver when s_context present in process status" do - FileTest.stubs(:exists?).with("/proc/self/status").returns(true) - File.stubs(:read).with("/proc/self/status").returns("s_context: 42\n") - Facter::Util::Virtual.should be_vserver - end + it "should detect vserver when s_context present in process status" do + FileTest.stubs(:exists?).with("/proc/self/status").returns(true) + File.stubs(:read).with("/proc/self/status").returns("s_context: 42\n") + Facter::Util::Virtual.should be_vserver + end - it "should not detect vserver when vserver flags not present in process status" do - FileTest.stubs(:exists?).with("/proc/self/status").returns(true) - File.stubs(:read).with("/proc/self/status").returns("wibble: 42\n") - Facter::Util::Virtual.should_not be_vserver - end + it "should not detect vserver when vserver flags not present in process status" do + FileTest.stubs(:exists?).with("/proc/self/status").returns(true) + File.stubs(:read).with("/proc/self/status").returns("wibble: 42\n") + Facter::Util::Virtual.should_not be_vserver + end - fixture_path = File.join(SPECDIR, 'fixtures', 'virtual', 'proc_self_status') + fixture_path = File.join(SPECDIR, 'fixtures', 'virtual', 'proc_self_status') - test_cases = [ - [File.join(fixture_path, 'vserver_2_1', 'guest'), true, 'vserver 2.1 guest'], - [File.join(fixture_path, 'vserver_2_1', 'host'), true, 'vserver 2.1 host'], - [File.join(fixture_path, 'vserver_2_3', 'guest'), true, 'vserver 2.3 guest'], - [File.join(fixture_path, 'vserver_2_3', 'host'), true, 'vserver 2.3 host'] - ] + test_cases = [ + [File.join(fixture_path, 'vserver_2_1', 'guest'), true, 'vserver 2.1 guest'], + [File.join(fixture_path, 'vserver_2_1', 'host'), true, 'vserver 2.1 host'], + [File.join(fixture_path, 'vserver_2_3', 'guest'), true, 'vserver 2.3 guest'], + [File.join(fixture_path, 'vserver_2_3', 'host'), true, 'vserver 2.3 host'] + ] - test_cases.each do |status_file, expected, description| - describe "with /proc/self/status from #{description}" do - it "should detect vserver as #{expected.inspect}" do - status = File.read(status_file) - FileTest.stubs(:exists?).with("/proc/self/status").returns(true) - File.stubs(:read).with("/proc/self/status").returns(status) - Facter::Util::Virtual.vserver?.should == expected - end - end + test_cases.each do |status_file, expected, description| + describe "with /proc/self/status from #{description}" do + it "should detect vserver as #{expected.inspect}" do + status = File.read(status_file) + FileTest.stubs(:exists?).with("/proc/self/status").returns(true) + File.stubs(:read).with("/proc/self/status").returns(status) + Facter::Util::Virtual.vserver?.should == expected + end end + end - it "should identify vserver_host when /proc/virtual exists" do - Facter::Util::Virtual.expects(:vserver?).returns(true) - FileTest.stubs(:exists?).with("/proc/virtual").returns(true) - Facter::Util::Virtual.vserver_type().should == "vserver_host" - end + it "should identify vserver_host when /proc/virtual exists" do + Facter::Util::Virtual.expects(:vserver?).returns(true) + FileTest.stubs(:exists?).with("/proc/virtual").returns(true) + Facter::Util::Virtual.vserver_type().should == "vserver_host" + end - it "should identify vserver_type as vserver when /proc/virtual does not exist" do - Facter::Util::Virtual.expects(:vserver?).returns(true) - FileTest.stubs(:exists?).with("/proc/virtual").returns(false) - Facter::Util::Virtual.vserver_type().should == "vserver" - end + it "should identify vserver_type as vserver when /proc/virtual does not exist" do + Facter::Util::Virtual.expects(:vserver?).returns(true) + FileTest.stubs(:exists?).with("/proc/virtual").returns(false) + Facter::Util::Virtual.vserver_type().should == "vserver" + end - it "should detect xen when /proc/sys/xen exists" do - FileTest.expects(:exists?).with("/proc/sys/xen").returns(true) - Facter::Util::Virtual.should be_xen - end + it "should detect xen when /proc/sys/xen exists" do + FileTest.expects(:exists?).with("/proc/sys/xen").returns(true) + Facter::Util::Virtual.should be_xen + end - it "should detect xen when /sys/bus/xen exists" do - FileTest.expects(:exists?).with("/proc/sys/xen").returns(false) - FileTest.expects(:exists?).with("/sys/bus/xen").returns(true) - Facter::Util::Virtual.should be_xen - end + it "should detect xen when /sys/bus/xen exists" do + FileTest.expects(:exists?).with("/proc/sys/xen").returns(false) + FileTest.expects(:exists?).with("/sys/bus/xen").returns(true) + Facter::Util::Virtual.should be_xen + end - it "should detect xen when /proc/xen exists" do - FileTest.expects(:exists?).with("/proc/sys/xen").returns(false) - FileTest.expects(:exists?).with("/sys/bus/xen").returns(false) - FileTest.expects(:exists?).with("/proc/xen").returns(true) - Facter::Util::Virtual.should be_xen - end + it "should detect xen when /proc/xen exists" do + FileTest.expects(:exists?).with("/proc/sys/xen").returns(false) + FileTest.expects(:exists?).with("/sys/bus/xen").returns(false) + FileTest.expects(:exists?).with("/proc/xen").returns(true) + Facter::Util::Virtual.should be_xen + end - it "should not detect xen when no sysfs/proc xen directories exist" do - FileTest.expects(:exists?).with("/proc/sys/xen").returns(false) - FileTest.expects(:exists?).with("/sys/bus/xen").returns(false) - FileTest.expects(:exists?).with("/proc/xen").returns(false) - Facter::Util::Virtual.should_not be_xen - end + it "should not detect xen when no sysfs/proc xen directories exist" do + FileTest.expects(:exists?).with("/proc/sys/xen").returns(false) + FileTest.expects(:exists?).with("/sys/bus/xen").returns(false) + FileTest.expects(:exists?).with("/proc/xen").returns(false) + Facter::Util::Virtual.should_not be_xen + end - it "should detect kvm" do - FileTest.stubs(:exists?).with("/proc/cpuinfo").returns(true) - File.stubs(:read).with("/proc/cpuinfo").returns("model name : QEMU Virtual CPU version 0.9.1\n") - Facter::Util::Virtual.should be_kvm - end + it "should detect kvm" do + FileTest.stubs(:exists?).with("/proc/cpuinfo").returns(true) + File.stubs(:read).with("/proc/cpuinfo").returns("model name : QEMU Virtual CPU version 0.9.1\n") + Facter::Util::Virtual.should be_kvm + end - it "should detect kvm on FreeBSD" do - FileTest.stubs(:exists?).with("/proc/cpuinfo").returns(false) - Facter.fact(:kernel).stubs(:value).returns("FreeBSD") - Facter::Util::Resolution.stubs(:exec).with("/sbin/sysctl -n hw.model").returns("QEMU Virtual CPU version 0.12.4") - Facter::Util::Virtual.should be_kvm - end + it "should detect kvm on FreeBSD" do + FileTest.stubs(:exists?).with("/proc/cpuinfo").returns(false) + Facter.fact(:kernel).stubs(:value).returns("FreeBSD") + Facter::Util::Resolution.stubs(:exec).with("/sbin/sysctl -n hw.model").returns("QEMU Virtual CPU version 0.12.4") + Facter::Util::Virtual.should be_kvm + end - it "should identify FreeBSD jail when in jail" do - Facter.fact(:kernel).stubs(:value).returns("FreeBSD") - Facter::Util::Resolution.stubs(:exec).with("/sbin/sysctl -n security.jail.jailed").returns("1") - Facter::Util::Virtual.should be_jail - end + it "should identify FreeBSD jail when in jail" do + Facter.fact(:kernel).stubs(:value).returns("FreeBSD") + Facter::Util::Resolution.stubs(:exec).with("/sbin/sysctl -n security.jail.jailed").returns("1") + Facter::Util::Virtual.should be_jail + end - it "should not identify GNU/kFreeBSD jail when not in jail" do - Facter.fact(:kernel).stubs(:value).returns("GNU/kFreeBSD") - Facter::Util::Resolution.stubs(:exec).with("/bin/sysctl -n security.jail.jailed").returns("0") - Facter::Util::Virtual.should_not be_jail - end + it "should not identify GNU/kFreeBSD jail when not in jail" do + Facter.fact(:kernel).stubs(:value).returns("GNU/kFreeBSD") + Facter::Util::Resolution.stubs(:exec).with("/bin/sysctl -n security.jail.jailed").returns("0") + Facter::Util::Virtual.should_not be_jail + end - it "should detect hpvm on HP-UX" do - Facter.fact(:kernel).stubs(:value).returns("HP-UX") - Facter::Util::Resolution.stubs(:exec).with("/usr/bin/getconf MACHINE_MODEL").returns('ia64 hp server Integrity Virtual Machine') - Facter::Util::Virtual.should be_hpvm - end + it "should detect hpvm on HP-UX" do + Facter.fact(:kernel).stubs(:value).returns("HP-UX") + Facter::Util::Resolution.stubs(:exec).with("/usr/bin/getconf MACHINE_MODEL").returns('ia64 hp server Integrity Virtual Machine') + Facter::Util::Virtual.should be_hpvm + end - it "should not detect hpvm on HP-UX when not in hpvm" do - Facter.fact(:kernel).stubs(:value).returns("HP-UX") - Facter::Util::Resolution.stubs(:exec).with("/usr/bin/getconf MACHINE_MODEL").returns('ia64 hp server rx660') - Facter::Util::Virtual.should_not be_hpvm - end + it "should not detect hpvm on HP-UX when not in hpvm" do + Facter.fact(:kernel).stubs(:value).returns("HP-UX") + Facter::Util::Resolution.stubs(:exec).with("/usr/bin/getconf MACHINE_MODEL").returns('ia64 hp server rx660') + Facter::Util::Virtual.should_not be_hpvm + end end