spec/unit/plugins/dmi_spec.rb in ohai-8.5.0 vs spec/unit/plugins/dmi_spec.rb in ohai-8.5.1
- old
+ new
@@ -1,148 +1,148 @@
-#
-# Author:: Bryan McLellan (<btm@loftninjas.org>)
-# Copyright:: Copyright (c) 2009 Bryan McLellan
-# License:: Apache License, Version 2.0
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-# http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-
-require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper.rb')
-
-# NOTE: These data lines must be prefixed with one or two tabs, not spaces.
-DMI_OUT = <<-EOS
-# dmidecode 2.9
-SMBIOS 2.4 present.
-98 structures occupying 3699 bytes.
-Table at 0x000E0010.
-
-Handle 0x0000, DMI type 0, 24 bytes
-BIOS Information
- Vendor: Phoenix Technologies LTD
- Version: 6.00
- Release Date: 12/31/2009
- Address: 0xEA2E0
- Runtime Size: 89376 bytes
- ROM Size: 64 kB
- Characteristics:
- ISA is supported
- PCI is supported
- PC Card (PCMCIA) is supported
- PNP is supported
- APM is supported
- BIOS is upgradeable
- BIOS shadowing is allowed
- ESCD support is available
- USB legacy is supported
- Smart battery is supported
- BIOS boot specification is supported
- Targeted content distribution is supported
- BIOS Revision: 4.6
- Firmware Revision: 0.0
-
-Handle 0x0001, DMI type 1, 27 bytes
-System Information
- Manufacturer: VMware, Inc.
- Product Name: VMware Virtual Platform
- Version: None
- Serial Number: VMware-56 4d 71 d1 65 70 83 a8-df c8 14 12 19 41 71 45
- UUID: 564D71D1-6570-83A8-DFC8-141219417145
- Wake-up Type: Power Switch
- SKU Number: Not Specified
- Family: Not Specified
-
-Handle 0x0002, DMI type 2, 15 bytes
-Base Board Information
- Manufacturer: Intel Corporation
- Product Name: 440BX Desktop Reference Platform
- Version: None
- Serial Number: None
- Asset Tag: Not Specified
- Features: None
- Location In Chassis: Not Specified
- Chassis Handle: 0x0000
- Type: Unknown
- Contained Object Handles: 0
-
-Handle 0x1000, DMI type 16, 15 bytes
-Physical Memory Array
- Location: Other
- Use: System Memory
- Error Correction Type: Multi-bit ECC
- Maximum Capacity: 2 GB
- Error Information Handle: Not Provided
- Number Of Devices: 1
-
-Handle 0x0003, DMI type 3, 21 bytes
-Chassis Information
- Manufacturer: No Enclosure
- Type: Other
- Lock: Not Present
- Version: N/A
- Serial Number: None
- Asset Tag: No Asset Tag
- Boot-up State: Safe
- Power Supply State: Safe
- Thermal State: Safe
- Security Status: None
- OEM Information: 0x00001234
- Height: Unspecified
- Number Of Power Cords: Unspecified
- Contained Elements: 0
-EOS
-
-describe Ohai::System, "plugin dmi" do
- before(:each) do
- @plugin = get_plugin("dmi")
- @stdout = DMI_OUT
- allow(@plugin).to receive(:shell_out).with("dmidecode").and_return(mock_shell_out(0, @stdout, ""))
- end
-
- it "should run dmidecode" do
- expect(@plugin).to receive(:shell_out).with("dmidecode").and_return(mock_shell_out(0, @stdout, ""))
- @plugin.run
- end
-
- # Test some simple sample data
- {
- :bios => {
- :vendor => "Phoenix Technologies LTD",
- :release_date => "12/31/2009"
- },
- :system => {
- :manufacturer => "VMware, Inc.",
- :product_name => "VMware Virtual Platform"
- },
- :chassis => {
- :lock => "Not Present",
- :asset_tag => "No Asset Tag"
- }
- }.each do |id, data|
- data.each do |attribute, value|
- it "should have [:dmi][:#{id}][:#{attribute}] set" do
- @plugin.run
- expect(@plugin[:dmi][id][attribute]).to eql(value)
- end
- it "should have [:dmi][:#{id}][:#{attribute}] set for windows output" do
- @stdout = convert_windows_output(DMI_OUT)
- expect(@plugin).to receive(:shell_out).with("dmidecode").and_return(mock_shell_out(0, @stdout, ""))
- @plugin.run
- expect(@plugin[:dmi][id][attribute]).to eql(value)
- end
- end
- end
-
- it "should correctly ignore unwanted data" do
- @plugin.run
- expect(@plugin[:dmi][:base_board]).not_to have_key(:error_correction_type)
- end
-end
+#
+# Author:: Bryan McLellan (<btm@loftninjas.org>)
+# Copyright:: Copyright (c) 2009 Bryan McLellan
+# License:: Apache License, Version 2.0
+#
+# Licensed under the Apache License, Version 2.0 (the "License");
+# you may not use this file except in compliance with the License.
+# You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+#
+
+require File.expand_path(File.dirname(__FILE__) + '/../../spec_helper.rb')
+
+# NOTE: These data lines must be prefixed with one or two tabs, not spaces.
+DMI_OUT = <<-EOS
+# dmidecode 2.9
+SMBIOS 2.4 present.
+98 structures occupying 3699 bytes.
+Table at 0x000E0010.
+
+Handle 0x0000, DMI type 0, 24 bytes
+BIOS Information
+ Vendor: Phoenix Technologies LTD
+ Version: 6.00
+ Release Date: 12/31/2009
+ Address: 0xEA2E0
+ Runtime Size: 89376 bytes
+ ROM Size: 64 kB
+ Characteristics:
+ ISA is supported
+ PCI is supported
+ PC Card (PCMCIA) is supported
+ PNP is supported
+ APM is supported
+ BIOS is upgradeable
+ BIOS shadowing is allowed
+ ESCD support is available
+ USB legacy is supported
+ Smart battery is supported
+ BIOS boot specification is supported
+ Targeted content distribution is supported
+ BIOS Revision: 4.6
+ Firmware Revision: 0.0
+
+Handle 0x0001, DMI type 1, 27 bytes
+System Information
+ Manufacturer: VMware, Inc.
+ Product Name: VMware Virtual Platform
+ Version: None
+ Serial Number: VMware-56 4d 71 d1 65 70 83 a8-df c8 14 12 19 41 71 45
+ UUID: 564D71D1-6570-83A8-DFC8-141219417145
+ Wake-up Type: Power Switch
+ SKU Number: Not Specified
+ Family: Not Specified
+
+Handle 0x0002, DMI type 2, 15 bytes
+Base Board Information
+ Manufacturer: Intel Corporation
+ Product Name: 440BX Desktop Reference Platform
+ Version: None
+ Serial Number: None
+ Asset Tag: Not Specified
+ Features: None
+ Location In Chassis: Not Specified
+ Chassis Handle: 0x0000
+ Type: Unknown
+ Contained Object Handles: 0
+
+Handle 0x1000, DMI type 16, 15 bytes
+Physical Memory Array
+ Location: Other
+ Use: System Memory
+ Error Correction Type: Multi-bit ECC
+ Maximum Capacity: 2 GB
+ Error Information Handle: Not Provided
+ Number Of Devices: 1
+
+Handle 0x0003, DMI type 3, 21 bytes
+Chassis Information
+ Manufacturer: No Enclosure
+ Type: Other
+ Lock: Not Present
+ Version: N/A
+ Serial Number: None
+ Asset Tag: No Asset Tag
+ Boot-up State: Safe
+ Power Supply State: Safe
+ Thermal State: Safe
+ Security Status: None
+ OEM Information: 0x00001234
+ Height: Unspecified
+ Number Of Power Cords: Unspecified
+ Contained Elements: 0
+EOS
+
+describe Ohai::System, "plugin dmi" do
+ before(:each) do
+ @plugin = get_plugin("dmi")
+ @stdout = DMI_OUT
+ allow(@plugin).to receive(:shell_out).with("dmidecode").and_return(mock_shell_out(0, @stdout, ""))
+ end
+
+ it "should run dmidecode" do
+ expect(@plugin).to receive(:shell_out).with("dmidecode").and_return(mock_shell_out(0, @stdout, ""))
+ @plugin.run
+ end
+
+ # Test some simple sample data
+ {
+ :bios => {
+ :vendor => "Phoenix Technologies LTD",
+ :release_date => "12/31/2009"
+ },
+ :system => {
+ :manufacturer => "VMware, Inc.",
+ :product_name => "VMware Virtual Platform"
+ },
+ :chassis => {
+ :lock => "Not Present",
+ :asset_tag => "No Asset Tag"
+ }
+ }.each do |id, data|
+ data.each do |attribute, value|
+ it "should have [:dmi][:#{id}][:#{attribute}] set" do
+ @plugin.run
+ expect(@plugin[:dmi][id][attribute]).to eql(value)
+ end
+ it "should have [:dmi][:#{id}][:#{attribute}] set for windows output" do
+ @stdout = convert_windows_output(DMI_OUT)
+ expect(@plugin).to receive(:shell_out).with("dmidecode").and_return(mock_shell_out(0, @stdout, ""))
+ @plugin.run
+ expect(@plugin[:dmi][id][attribute]).to eql(value)
+ end
+ end
+ end
+
+ it "should correctly ignore unwanted data" do
+ @plugin.run
+ expect(@plugin[:dmi][:base_board]).not_to have_key(:error_correction_type)
+ end
+end