2018-02-28 19:22:55 +00:00
|
|
|
# encoding: utf-8
|
|
|
|
|
|
|
|
require 'helper'
|
|
|
|
require 'inspec/resource'
|
|
|
|
|
|
|
|
describe 'Inspec::Resources::Virtualization' do
|
2019-01-13 05:48:42 +00:00
|
|
|
def mock_proc(mocked_files)
|
|
|
|
proc do |filename|
|
|
|
|
OpenStruct.new(
|
|
|
|
:exist? => mocked_files.include?(filename) ? false : true
|
|
|
|
)
|
|
|
|
end
|
|
|
|
end
|
2018-02-28 19:22:55 +00:00
|
|
|
|
2018-07-19 12:16:54 +00:00
|
|
|
it 'fails the resource if OS is not Linux' do
|
2019-01-13 05:48:42 +00:00
|
|
|
mocked_files = []
|
|
|
|
mock_loader = MockLoader.new(:windows)
|
|
|
|
mock_loader.backend.stub :file, mock_proc(mocked_files) do
|
|
|
|
mock_resource = mock_loader.load_resource('virtualization')
|
|
|
|
mock_resource.resource_failed?.must_equal true
|
|
|
|
end
|
2018-02-28 19:22:55 +00:00
|
|
|
end
|
|
|
|
|
|
|
|
it 'returns nil for all properties if no virutalization platform is found' do
|
2019-01-13 05:48:42 +00:00
|
|
|
mocked_files = [
|
|
|
|
'/proc/xen/capabilities',
|
|
|
|
'/proc/modules',
|
|
|
|
'/proc/cpuinfo',
|
|
|
|
'/sys/devices/virtual/misc/kvm',
|
|
|
|
'/proc/bc/0',
|
|
|
|
'/proc/vz',
|
|
|
|
'/proc/bus/pci/devices',
|
|
|
|
'/proc/self/status',
|
|
|
|
'/proc/self/cgroup',
|
|
|
|
'/.dockerenv',
|
|
|
|
'/.dockerinit',
|
|
|
|
'/dev/lxd/sock',
|
|
|
|
'/var/lib/lxd/devlxd',
|
|
|
|
]
|
|
|
|
|
|
|
|
mock_loader = MockLoader.new(:ubuntu)
|
|
|
|
mock_loader.backend.stub :file, mock_proc(mocked_files) do
|
|
|
|
mock_resource = mock_loader.load_resource('virtualization')
|
|
|
|
mock_resource.system.must_be_nil
|
|
|
|
mock_resource.role.must_be_nil
|
|
|
|
end
|
2018-02-28 19:22:55 +00:00
|
|
|
end
|
|
|
|
end
|