2015-12-22 03:38:49 +00:00
|
|
|
# author: Thomas Cate
|
|
|
|
|
|
|
|
require 'helper'
|
|
|
|
require 'inspec/resource'
|
|
|
|
|
|
|
|
describe 'Inspec::Resources::GrubConfig' do
|
|
|
|
|
2018-01-18 21:20:48 +00:00
|
|
|
# Grub2 with `GRUB_DEFAULT=0`
|
|
|
|
it 'parses correctly with grub2 and `GRUB_DEfAULT=0`' do
|
|
|
|
resource = MockLoader.new(:centos7).load_resource('grub_conf')
|
|
|
|
|
|
|
|
resource.kernel.must_include '/vmlinuz-yup-kernel-works'
|
|
|
|
resource.initrd.must_equal '/initramfs-yup-initrd-works'
|
2015-12-22 03:38:49 +00:00
|
|
|
end
|
|
|
|
|
2018-01-18 21:20:48 +00:00
|
|
|
# Grub2 with `GRUB_DEFAULT=saved`
|
|
|
|
it 'parses correctly with grub2 and `saved` as the `GRUB_DEFAULT`' do
|
|
|
|
resource = MockLoader.new(:centos7).load_resource('grub_conf')
|
|
|
|
|
|
|
|
# Both Grub1 and Grub2 use `/etc/default/grub`.
|
|
|
|
# This overrides the Grub1 default for testing.
|
|
|
|
resource.instance_variable_set(
|
|
|
|
:@defaults_path,
|
|
|
|
'/etc/default/grub_with_saved'
|
|
|
|
)
|
|
|
|
|
|
|
|
resource.kernel.must_include '/vmlinuz-3.10.0-229.el7.x86_64'
|
|
|
|
resource.initrd.must_equal '/initramfs-3.10.0-229.el7.x86_64.img'
|
2015-12-22 03:38:49 +00:00
|
|
|
end
|
|
|
|
|
2018-01-18 21:20:48 +00:00
|
|
|
it 'parses correctly with grub2 and an invalid grubenv entry' do
|
|
|
|
resource = MockLoader.new(:centos7).load_resource('grub_conf')
|
|
|
|
|
|
|
|
# Both Grub1 and Grub2 use `/etc/default/grub`.
|
|
|
|
# This overrides the Grub1 default for testing.
|
|
|
|
resource.instance_variable_set(
|
|
|
|
:@defaults_path,
|
|
|
|
'/etc/default/grub_with_saved'
|
|
|
|
)
|
|
|
|
|
|
|
|
resource.instance_variable_set(
|
|
|
|
:@grubenv_path,
|
|
|
|
'/boot/grub2/grubenv_invalid'
|
|
|
|
)
|
|
|
|
|
|
|
|
resource.kernel.must_include '/vmlinuz-yup-kernel-works'
|
|
|
|
resource.initrd.must_equal '/initramfs-yup-initrd-works'
|
|
|
|
end
|
|
|
|
|
|
|
|
# Grub2 with a specified kernel
|
|
|
|
it 'parses data correctly with grub2 and a specified kernel' do
|
|
|
|
resource = MockLoader.new(:centos7).load_resource(
|
|
|
|
'grub_conf',
|
|
|
|
'/boot/grub2/grub.cfg',
|
|
|
|
'CentOS Linux 7 (Core), with Linux 0-rescue'
|
|
|
|
)
|
|
|
|
|
|
|
|
resource.kernel.must_include '/vmlinuz-0-rescue'
|
|
|
|
resource.initrd.must_equal '/initramfs-0-rescue.img'
|
2015-12-22 03:38:49 +00:00
|
|
|
end
|
|
|
|
|
2018-01-18 21:20:48 +00:00
|
|
|
# Legacy Grub
|
|
|
|
it 'parses correctly with grub1 (aka legacy-grub)' do
|
2016-01-12 22:41:52 +00:00
|
|
|
resource = MockLoader.new(:centos6).load_resource('grub_conf')
|
2018-01-18 21:20:48 +00:00
|
|
|
|
|
|
|
resource.kernel.must_include '/vmlinuz-2.6.32-573.7.1.el6.x86_64'
|
|
|
|
resource.initrd.must_equal '/initramfs-2.6.32-573.7.1.el6.x86_64.img'
|
|
|
|
resource.default.must_equal '0'
|
|
|
|
resource.timeout.must_equal '5'
|
2015-12-22 03:38:49 +00:00
|
|
|
end
|
|
|
|
|
2018-01-18 21:20:48 +00:00
|
|
|
# Legacy Grub with a specified kernel
|
|
|
|
it 'parses data correctly with grub1 and a specified kernel' do
|
|
|
|
resource = MockLoader.new(:centos6).load_resource(
|
|
|
|
'grub_conf',
|
|
|
|
'/etc/grub.conf',
|
|
|
|
'CentOS 6 (2.6.32-573.el6.x86_64)'
|
|
|
|
)
|
|
|
|
|
|
|
|
resource.kernel.must_include '/vmlinuz-2.6.32-573.el6.x86_64'
|
|
|
|
resource.initrd.must_equal '/initramfs-2.6.32-573.el6.x86_64.img'
|
|
|
|
resource.default.must_equal '0'
|
|
|
|
resource.timeout.must_equal '5'
|
|
|
|
end
|
2015-12-22 03:38:49 +00:00
|
|
|
end
|