mirror of
https://github.com/inspec/inspec
synced 2024-12-18 00:53:22 +00:00
221db7e132
* mount resource: fix for Device-/Sharenames and Mountpoints including whitespaces Device-/Sharenames and Mountpoints on Linux may include whitespaces (\040), e.g. /etc/fstab entry like: ```//fileserver.corp.internal/Research\040&\040Development /mnt/Research\040&\040Development cifs OTHER_OPTS``` ... results in a mount line like: ```//fileserver.corp.internal/Research & Development on /mnt/Research & Development type cifs (OTHER_OPTS)``` The Linux mount command replaces \040 with whitspace automatically, so this should be tributed. I used a control like this: ``` describe mount('/mnt/Research & Development') do it { should be_mounted } its('device') { should eq '//fileserver.corp.internal/Research & Development' } end ``` Before: ``` × whitespaces-1: Mount with whitespace within sharename and mountpoint. (1 failed) ✔ Mount /mnt/Research & Development should be mounted × Mount /mnt/Research & Development device should eq "//fileserver.corp.internal/Research & Development" expected: "//fileserver.corp.internal/Research & Development" got: "//fileserver.corp.internal/Research" (compared using ==) ``` After: ``` ✔ whitespaces-01: Mount with whitespace within sharename and mountpoint. ✔ Mount /mnt/Research & Development should be mounted ✔ Mount /mnt/Research & Development device should eq "//fileserver.corp.internal/Research & Development" ``` Signed-off-by: Markus Grobelin <grobi@koppzu.de> * mounts_with_whitespaces: make lint happy Signed-off-by: Markus Grobelin <grobi@koppzu.de> * mount resource: added parentheses as suggested by https://github.com/chef/inspec/pull/2257/files Signed-off-by: Markus Grobelin <grobi@koppzu.de> * mount resource: fix for Device-/Sharenames and Mountpoints including whitespaces Signed-off-by: Markus Grobelin <grobi@koppzu.de>
35 lines
1.2 KiB
Ruby
35 lines
1.2 KiB
Ruby
# encoding: utf-8
|
|
# author: Christoph Hartmann
|
|
# author: Dominik Richter
|
|
|
|
require 'helper'
|
|
require 'inspec/resource'
|
|
|
|
describe Inspec::Resources::FileResource do
|
|
let(:root_resource) { load_resource('mount', '/') }
|
|
|
|
it 'parses the mount data properly' do
|
|
root_resource.send(:device).must_equal('/dev/xvda1')
|
|
root_resource.send(:type).must_equal('ext4')
|
|
root_resource.send(:options).must_equal(['rw','discard'])
|
|
root_resource.send(:count).must_equal(1)
|
|
end
|
|
|
|
let(:iso_resource) { load_resource('mount', '/mnt/iso-disk') }
|
|
|
|
it 'parses the mount data properly' do
|
|
iso_resource.send(:device).must_equal('/root/alpine-3.3.0-x86_64_2.iso')
|
|
iso_resource.send(:type).must_equal('iso9660')
|
|
iso_resource.send(:options).must_equal(['ro'])
|
|
iso_resource.send(:count).must_equal(2)
|
|
end
|
|
|
|
let(:ws_resource) { load_resource('mount', '/mnt/Research & Development') }
|
|
|
|
it 'parses the mount data properly even if whitespaces are included' do
|
|
ws_resource.send(:device).must_equal('//fileserver.corp.internal/Research & Development')
|
|
ws_resource.send(:type).must_equal('cifs')
|
|
ws_resource.send(:options).must_equal(['rw','vers=1.0'])
|
|
ws_resource.send(:count).must_equal(1)
|
|
end
|
|
end
|