Sharp.Augeas/Sharp.Augeas.Test/lens/tests/test_grub.aug

302 lines
11 KiB
Plaintext

module Test_grub =
let conf = "# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,0)
# kernel /vmlinuz-version ro root=/dev/vg00/lv00
# initrd /initrd-version.img
boot=/dev/sda
device (hd0) HD(1,800,64000,9895c137-d4b2-4e3b-a93b-dc9ac4)
password --md5 $1$M9NLj$p2gs87vwNv48BUu.wAfVw0
default=0
setkey
setkey less backquote
background 103332
timeout=5
splashimage=(hd0,0)/grub/splash.xpm.gz
gfxmenu=(hd0,0)/boot/message
verbose = 0
hiddenmenu
title Fedora (2.6.24.4-64.fc8)
root (hd0,0)
kernel /vmlinuz-2.6.24.4-64.fc8 ro root=/dev/vg00/lv00 crashkernel=
initrd /initrd-2.6.24.4-64.fc8.img
title=Fedora (2.6.24.3-50.fc8)
root (hd0,0)
kernel /vmlinuz-2.6.24.3-50.fc8 ro root=/dev/vg00/lv00
initrd /initrd-2.6.24.3-50.fc8.img
title Fedora (2.6.21.7-3.fc8xen)
root (hd0,0)
kernel /xen.gz-2.6.21.7-3.fc8
module /vmlinuz-2.6.21.7-3.fc8xen ro root=/dev/vg00/lv00
module /initrd-2.6.21.7-3.fc8xen.img
title Fedora (2.6.24.3-34.fc8)
root (hd0,0)
kernel /vmlinuz-2.6.24.3-34.fc8 ro root=/dev/vg00/lv00
initrd /initrd-2.6.24.3-34.fc8.img
map (hd0) (hd1)
title othermenu
lock
makeactive
configfile /boot/grub/othergrub.conf
"
test Grub.lns get conf =
{ "#comment" = "grub.conf generated by anaconda" }
{}
{ "#comment" = "Note that you do not have to rerun grub after making changes to this file" }
{ "#comment" = "NOTICE: You have a /boot partition. This means that" }
{ "#comment" = "all kernel and initrd paths are relative to /boot/, eg." }
{ "#comment" = "root (hd0,0)" }
{ "#comment" = "kernel /vmlinuz-version ro root=/dev/vg00/lv00" }
{ "#comment" = "initrd /initrd-version.img" }
{ "boot" = "/dev/sda" }
{ "device" = "(hd0)"
{ "file" = "HD(1,800,64000,9895c137-d4b2-4e3b-a93b-dc9ac4)" } }
{ "password" = "$1$M9NLj$p2gs87vwNv48BUu.wAfVw0"
{ "md5" } }
{ "default" = "0" }
{ "setkey" }
{ "setkey"
{ "to" = "less" }
{ "from" = "backquote" } }
{ "background" = "103332" }
{ "timeout" = "5" }
{ "splashimage" = "(hd0,0)/grub/splash.xpm.gz" }
{ "gfxmenu" = "(hd0,0)/boot/message" }
{ "verbose" = "0" }
{ "hiddenmenu" }
{ "title" = "Fedora (2.6.24.4-64.fc8)"
{ "root" = "(hd0,0)" }
{ "kernel" = "/vmlinuz-2.6.24.4-64.fc8"
{ "ro" } { "root" = "/dev/vg00/lv00" } {"crashkernel" = ""} }
{ "initrd" = "/initrd-2.6.24.4-64.fc8.img" } }
{ "title" = "Fedora (2.6.24.3-50.fc8)"
{ "root" = "(hd0,0)" }
{ "kernel" = "/vmlinuz-2.6.24.3-50.fc8"
{ "ro" } { "root" = "/dev/vg00/lv00" } }
{ "initrd" = "/initrd-2.6.24.3-50.fc8.img" } }
{ "title" = "Fedora (2.6.21.7-3.fc8xen)"
{ "root" = "(hd0,0)" }
{ "kernel" = "/xen.gz-2.6.21.7-3.fc8" }
{ "module" = "/vmlinuz-2.6.21.7-3.fc8xen"
{ "ro" } { "root" = "/dev/vg00/lv00" } }
{ "module" = "/initrd-2.6.21.7-3.fc8xen.img" } }
{ "title" = "Fedora (2.6.24.3-34.fc8)"
{ "root" = "(hd0,0)" }
{ "kernel" = "/vmlinuz-2.6.24.3-34.fc8"
{ "ro" } { "root" = "/dev/vg00/lv00" } }
{ "initrd" = "/initrd-2.6.24.3-34.fc8.img" }
{ "map" { "from" = "(hd0)" } { "to" = "(hd1)" } } }
{ "title" = "othermenu"
{ "lock" }
{ "makeactive" }
{ "configfile" = "/boot/grub/othergrub.conf" } }
test Grub.lns put conf after set "default" "0" = conf
test Grub.lns get "# menu.lst - See: grub(8), info grub, update-grub(8)
## default num\n" =
{ "#comment" = "menu.lst - See: grub(8), info grub, update-grub(8)" }
{}
{ "#comment" = "# default num" }
(* Color directive *)
test Grub.lns get "color cyan/blue white/blue\n" =
{ "color"
{ "normal" { "foreground" = "cyan" }
{ "background" = "blue" } }
{ "highlight" { "foreground" = "white" }
{ "background" = "blue" } } }
test Grub.lns get "\tcolor cyan/light-blue\n" =
{ "color"
{ "normal" { "foreground" = "cyan" }
{ "background" = "light-blue" } } }
test Grub.lns put "color cyan/light-blue\n" after
set "/color/highlight/foreground" "white";
set "/color/highlight/background" "black" =
"color cyan/light-blue white/black\n"
(* Boot stanza with savedefault *)
let boot_savedefault =
"title\t\tDebian GNU/Linux, kernel 2.6.18-6-vserver-686
root\t\t(hd0,0)
kernel\t\t/boot/vmlinuz-2.6.18-6-vserver-686 root=/dev/md0 ro
initrd\t\t/boot/initrd.img-2.6.18-6-vserver-686
\tsavedefault\n"
test Grub.lns get boot_savedefault =
{ "title" = "Debian GNU/Linux, kernel 2.6.18-6-vserver-686"
{ "root" = "(hd0,0)" }
{ "kernel" = "/boot/vmlinuz-2.6.18-6-vserver-686"
{ "root" = "/dev/md0" } { "ro" } }
{ "initrd" = "/boot/initrd.img-2.6.18-6-vserver-686" }
{ "savedefault" } }
test Grub.lns get
"serial --unit=0 --speed=9600 --word=8 --parity=no --stop=1\n"
=
{ "serial"
{ "unit" = "0" }
{ "speed" = "9600" }
{ "word" = "8" }
{ "parity" = "no" }
{ "stop" = "1" } }
test Grub.lns get
"terminal --timeout=10 serial console\n" =
{ "terminal"
{ "timeout" = "10" }
{ "serial" }
{ "console" } }
test Grub.boot_setting get
"chainloader --force +1 \n" = { "chainloader" = "+1" { "force" } }
test Grub.savedefault put "savedefault\n" after
set "/savedefault" "3" = "savedefault 3\n"
test Grub.lns get
"password foo
password foo /boot/grub/custom.lst
password --md5 $1$Ahx/T0$Sgcp7Z0xgGlyANIJCdESi.
password --encrypted ^9^32kwzzX./3WISQ0C
password --encrypted ^9^32kwzzX./3WISQ0C /boot/grub/custom.lst
" =
{ "password" = "foo" }
{ "password" = "foo"
{ "file" = "/boot/grub/custom.lst" } }
{ "password" = "$1$Ahx/T0$Sgcp7Z0xgGlyANIJCdESi."
{ "md5" } }
{ "password" = "^9^32kwzzX./3WISQ0C"
{ "encrypted" } }
{ "password" = "^9^32kwzzX./3WISQ0C"
{ "encrypted" }
{ "file" = "/boot/grub/custom.lst" } }
(* BZ 590067 - handle comments in a title section *)
(* Comments within a boot stanza belong to that boot stanza *)
test Grub.lns get "title Red Hat Enterprise Linux AS (2.4.21-63.ELsmp)
root (hd0,0)
kernel /vmlinuz-2.4.21-63.ELsmp ro root=LABEL=/
#initrd /initrd-2.4.21-63.ELsmp.img
initrd /initrd-2.4.21-63.EL.img.e1000.8139\n" =
{ "title" = "Red Hat Enterprise Linux AS (2.4.21-63.ELsmp)"
{ "root" = "(hd0,0)" }
{ "kernel" = "/vmlinuz-2.4.21-63.ELsmp" { "ro" } { "root" = "LABEL=/" } }
{ "#comment" = "initrd /initrd-2.4.21-63.ELsmp.img" }
{ "initrd" = "/initrd-2.4.21-63.EL.img.e1000.8139" } }
(* Comments at the end of a boot stanza go into the top level *)
test Grub.lns get "title Red Hat Enterprise Linux AS (2.4.21-63.ELsmp)
root (hd0,0)
kernel /vmlinuz-2.4.21-63.ELsmp ro root=LABEL=/
initrd /initrd-2.4.21-63.EL.img.e1000.8139
# Now for something completely different\n" =
{ "title" = "Red Hat Enterprise Linux AS (2.4.21-63.ELsmp)"
{ "root" = "(hd0,0)" }
{ "kernel" = "/vmlinuz-2.4.21-63.ELsmp" { "ro" } { "root" = "LABEL=/" } }
{ "initrd" = "/initrd-2.4.21-63.EL.img.e1000.8139" } }
{ "#comment" = "Now for something completely different" }
(* Solaris 10 extensions: kernel$ and module$ are permitted and enable *)
(* variable expansion. findroot (similar to root) and bootfs added *)
test Grub.lns get "title Solaris 10 10/09 s10x_u8wos_08a X86
findroot (pool_rpool,0,a)
bootfs rpool/mybootenv-alt
kernel$ /platform/i86pc/multiboot -B $ZFS-BOOTFS
module$ /platform/i86pc/boot_archive\n" =
{ "title" = "Solaris 10 10/09 s10x_u8wos_08a X86"
{ "findroot" = "(pool_rpool,0,a)" }
{ "bootfs" = "rpool/mybootenv-alt" }
{ "kernel$" = "/platform/i86pc/multiboot" { "-B" } { "$ZFS-BOOTFS" } }
{ "module$" = "/platform/i86pc/boot_archive" } }
(* Solaris 10 extension: multiboot kernel may take a path as its first *)
(* argument. *)
test Grub.lns get "title Solaris failsafe
findroot (pool_rpool,0,a)
kernel /boot/multiboot kernel/unix -s
module /boot/x86.miniroot-safe\n" =
{ "title" = "Solaris failsafe"
{ "findroot" = "(pool_rpool,0,a)" }
{ "kernel" = "/boot/multiboot" { "@path" = "kernel/unix" } { "-s" } }
{ "module" = "/boot/x86.miniroot-safe" } }
test Grub.lns get "title SUSE Linux Enterprise Server 11 SP1 - 2.6.32.27-0.2
kernel (hd0,0)/vmlinuz root=/dev/vg_root/lv_root resume=/dev/vg_root/lv_swap splash=silent showopts
initrd (hd0,0)/initrd\n" =
{ "title" = "SUSE Linux Enterprise Server 11 SP1 - 2.6.32.27-0.2"
{ "kernel" = "(hd0,0)/vmlinuz"
{ "root" = "/dev/vg_root/lv_root" }
{ "resume" = "/dev/vg_root/lv_swap" }
{ "splash" = "silent" }
{ "showopts" } }
{ "initrd" = "(hd0,0)/initrd" } }
(* Password protected kernel, issue #229 *)
test Grub.lns get "title Password Protected Kernel
root (hd0,0)
kernel /vmlinuz ro root=/dev/mapper/root
initrd /initramfs
password --md5 secret\n" =
{ "title" = "Password Protected Kernel"
{ "root" = "(hd0,0)" }
{ "kernel" = "/vmlinuz"
{ "ro" }
{ "root" = "/dev/mapper/root" }
}
{ "initrd" = "/initramfs" }
{ "password" = "secret"
{ "md5" }
} }
(* Test kernel options with different special characters. *)
test Grub.lns get "title Fedora (2.6.24.4-64.fc8)
root (hd0,0)
kernel /vmlinuz-2.6.24.4-64.fc8 ro root=/dev/vg00/lv00 with.dot=1 with-dash=1 with_underscore=1 with+plus=1
initrd /initrd-2.6.24.4-64.fc8.img\n" =
{ "title" = "Fedora (2.6.24.4-64.fc8)"
{ "root" = "(hd0,0)" }
{ "kernel" = "/vmlinuz-2.6.24.4-64.fc8"
{ "ro" }
{ "root" = "/dev/vg00/lv00" }
{ "with.dot" = "1" }
{ "with-dash" = "1" }
{ "with_underscore" = "1" }
{ "with+plus" = "1" }
}
{ "initrd" = "/initrd-2.6.24.4-64.fc8.img" } }
(* Test parsing of invalid entries via menu_error *)
test Grub.lns get "default=0\ncrud=no\n" =
{ "default" = "0" }
{ "#error" = "crud=no" }
(* We handle some pretty bizarre bad syntax *)
test Grub.lns get "default=0
crud no
valid:nope
nonsense = yes
bad arg1 arg2 arg3=v\n" =
{ "default" = "0" }
{ "#error" = "crud no" }
{ "#error" = "valid:nope" }
{ "#error" = "nonsense = yes" }
{ "#error" = "bad arg1 arg2 arg3=v" }
(* Test parsing of invalid entries via boot_error *)
test Grub.lns get "title test
root (hd0,0)
crud foo\n" =
{ "title" = "test"
{ "root" = "(hd0,0)" }
{ "#error" = "crud foo" } }