diff options
author | Tim Smith <tsmith@chef.io> | 2018-02-27 12:44:44 -0800 |
---|---|---|
committer | Tim Smith <tsmith@chef.io> | 2018-02-27 12:44:44 -0800 |
commit | 7514ffc67cc0586a82bba2d8539a6df55c9b8fe7 (patch) | |
tree | e8dc80f18104fbeba932f3f69e6476421bea6530 | |
parent | d371a88317eb3b1eef0556c96e115d742edc5978 (diff) | |
download | ohai-7514ffc67cc0586a82bba2d8539a6df55c9b8fe7.tar.gz |
Move windows kernel specs into their own spec file
Next step make this run on any OS
Signed-off-by: Tim Smith <tsmith@chef.io>
-rw-r--r-- | spec/unit/plugins/kernel_spec.rb | 52 | ||||
-rw-r--r-- | spec/unit/plugins/windows/kernel_spec.rb | 69 |
2 files changed, 69 insertions, 52 deletions
diff --git a/spec/unit/plugins/kernel_spec.rb b/spec/unit/plugins/kernel_spec.rb index ed78d866..8e25975e 100644 --- a/spec/unit/plugins/kernel_spec.rb +++ b/spec/unit/plugins/kernel_spec.rb @@ -35,56 +35,4 @@ describe Ohai::System, "plugin kernel" do it_should_check_from_mash("kernel", "version", "uname -v", [0, "Darwin Kernel Version 9.5.0: Wed Sep 3 11:29:43 PDT 2008; root:xnu-1228.7.58~1\/RELEASE_I386\n", ""]) it_should_check_from_mash("kernel", "machine", "uname -m", [0, "i386\n", ""]) it_should_check_from_mash("kernel", "processor", "uname -p", [0, "i386\n", ""]) - - describe "when running on windows", :windows_only do - before do - require "wmi-lite/wmi" - - @ohai_system = Ohai::System.new - @plugin = get_plugin("kernel", @ohai_system) - - # Mock a Win32_OperatingSystem OLE32 WMI object - caption = double("WIN32OLE", :name => "Caption") - version = double("WIN32OLE", :name => "Version") - build_number = double("WIN32OLE", :name => "BuildNumber") - csd_version = double("WIN32OLE", :name => "CsdVersion") - os_type = double("WIN32OLE", :name => "OsType") - os_properties = [ caption, version, build_number, csd_version, os_type ] - - os = double( "WIN32OLE", - :properties_ => os_properties) - - allow(os).to receive(:invoke).with(build_number.name).and_return("7601") - allow(os).to receive(:invoke).with(csd_version.name).and_return("Service Pack 1") - allow(os).to receive(:invoke).with(os_type.name).and_return(18) - allow(os).to receive(:invoke).with(caption.name).and_return("Microsoft Windows 7 Ultimate") - allow(os).to receive(:invoke).with(version.name).and_return("6.1.7601") - - os_wmi = WmiLite::Wmi::Instance.new(os) - - expect_any_instance_of(WmiLite::Wmi).to receive(:first_of).with("Win32_OperatingSystem").and_return(os_wmi) - - # Mock a Win32_ComputerSystem OLE32 WMI object - x64_system_type = "x64-based PC" - - cs = double("WIN32OLE", - :properties_ => [ double("WIN32OLE", :name => "SystemType") ]) - - allow(cs).to receive(:invoke).with("SystemType").and_return(x64_system_type) - - cs_wmi = WmiLite::Wmi::Instance.new(cs) - - expect_any_instance_of(WmiLite::Wmi).to receive(:first_of).with("Win32_ComputerSystem").and_return(cs_wmi) - - @plugin.run - end - it "should set the correct system information" do - expect(@ohai_system.data[:kernel][:name]).to eq("Microsoft Windows 7 Ultimate") - expect(@ohai_system.data[:kernel][:release]).to eq("6.1.7601") - expect(@ohai_system.data[:kernel][:version]).to eq("6.1.7601 Service Pack 1 Build 7601") - expect(@ohai_system.data[:kernel][:os]).to eq("WINNT") - expect(@ohai_system.data[:kernel][:machine]).to eq("x86_64") - end - end - end diff --git a/spec/unit/plugins/windows/kernel_spec.rb b/spec/unit/plugins/windows/kernel_spec.rb new file mode 100644 index 00000000..1033f593 --- /dev/null +++ b/spec/unit/plugins/windows/kernel_spec.rb @@ -0,0 +1,69 @@ +# +# Copyright:: Copyright (c) 2018 Chef Software, Inc. +# 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_relative "../../../spec_helper.rb" + +describe Ohai::System, "Windows kernel plugin", :windows_only do + let(:plugin) { get_plugin("kernel") } + + before do + require "wmi-lite/wmi" + + # Mock a Win32_OperatingSystem OLE32 WMI object + caption = double("WIN32OLE", :name => "Caption") + version = double("WIN32OLE", :name => "Version") + build_number = double("WIN32OLE", :name => "BuildNumber") + csd_version = double("WIN32OLE", :name => "CsdVersion") + os_type = double("WIN32OLE", :name => "OsType") + os_properties = [ caption, version, build_number, csd_version, os_type ] + + os = double( "WIN32OLE", + :properties_ => os_properties) + + allow(os).to receive(:invoke).with(build_number.name).and_return("7601") + allow(os).to receive(:invoke).with(csd_version.name).and_return("Service Pack 1") + allow(os).to receive(:invoke).with(os_type.name).and_return(18) + allow(os).to receive(:invoke).with(caption.name).and_return("Microsoft Windows 7 Ultimate") + allow(os).to receive(:invoke).with(version.name).and_return("6.1.7601") + + os_wmi = WmiLite::Wmi::Instance.new(os) + + expect_any_instance_of(WmiLite::Wmi).to receive(:first_of).with("Win32_OperatingSystem").and_return(os_wmi) + + # Mock a Win32_ComputerSystem OLE32 WMI object + x64_system_type = "x64-based PC" + + cs = double("WIN32OLE", + :properties_ => [ double("WIN32OLE", :name => "SystemType") ]) + + allow(cs).to receive(:invoke).with("SystemType").and_return(x64_system_type) + + cs_wmi = WmiLite::Wmi::Instance.new(cs) + + expect_any_instance_of(WmiLite::Wmi).to receive(:first_of).with("Win32_ComputerSystem").and_return(cs_wmi) + + plugin.run + end + + it "should set the correct system information" do + expect(plugin[:kernel][:name]).to eq("Microsoft Windows 7 Ultimate") + expect(plugin[:kernel][:release]).to eq("6.1.7601") + expect(plugin[:kernel][:version]).to eq("6.1.7601 Service Pack 1 Build 7601") + expect(plugin[:kernel][:os]).to eq("WINNT") + expect(plugin[:kernel][:machine]).to eq("x86_64") + end +end |