--- trunk/grubby/test.sh 2013/10/21 14:00:03 2254 +++ tags/grubby-8_40_20170627/test.sh 2017/06/27 14:52:25 3032 @@ -158,7 +158,7 @@ # generate convenience functions for b in $(./grubby --help | \ - sed -n 's/^.*--\([^ ]*\) *configure \1 bootloader$/\1/p'); do + sed -n 's/^.*--\([^ ]*\) *configure \1 bootloader.*/\1/p'); do eval "${b}Test() { [[ \"$b\" == \$opt_bootloader ]] && oneTest --$b \"\$@\"; }" eval "${b}DisplayTest() { [[ \"$b\" == \$opt_bootloader ]] && oneDisplayTest --$b \"\$@\"; }" done @@ -269,6 +269,9 @@ grubTest grub.13 setdefaultindex/g.13.1 --set-default-index=1 grubTest grub.13 setdefaultindex/g.13.9 --set-default-index=9 +testing="GRUB add initrd" +grubTest grub.14 add/g1.7 --boot-filesystem=/ --update-kernel=/vmlinuz-4.0.0-0.rc4.git1.4.fc23.x86_64 --initrd /initramfs-4.0.0-0.rc4.git1.4.fc23.x86_64.img '--args= LANG=en_US.UTF-8' '--title=Fedora (4.0.0-0.rc4.git1.4.fc23.x86_64) 23 (Rawhide)' + testing="GRUB display default index" grubDisplayTest grub.1 defaultindex/0 --default-index grubDisplayTest grub.2 defaultindex/0 --default-index @@ -295,6 +298,10 @@ grubDisplayTest grub.10 defaulttitle/g.10 --default-title grubDisplayTest grub.11 defaulttitle/g.11 --default-title +testing="GRUB display default kernel" +grubDisplayTest grub.1 defaultkernel/g.1 --boot-filesystem=/boot --default-kernel +grubDisplayTest grub.1 defaultkernel/g.2 --boot-filesystem=/ --default-kernel + testing="LILO default directive" liloTest lilo.1 default/l1.1 --set-default=/boot/vmlinuz-2.4.18-4 liloTest lilo.1 default/l1.2 --remove-kernel=/boot/vmlinuz-2.4.18-4smp @@ -302,10 +309,21 @@ --copy-default liloTest lilo.1 default/l1.4 --add-kernel /boot/kernel --title label \ --copy-default --make-default +liloDisplayTest lilo.1 defaultkernel/l1.1 --default-kernel testing="Z/IPL default directive" ziplTest zipl.1 default/z1.1 --add-kernel /boot/new-kernel --title test ziplTest zipl.1 default/z1.2 --add-kernel /boot/new-kernel --title test --make-default +testing="Z/IPL default index directive" +ziplTest zipl.2 default/z2.1 --set-default-index=0 +testing="Z/IPL display default index" +ziplDisplayTest zipl.1 defaultindex/0 --default-index +testing="Z/IPL display default title" +ziplDisplayTest zipl.1 defaulttitle/z.1 --default-title +testing="Z/IPL display default kernel" +ziplDisplayTest zipl.1 defaultkernel/z.1 --default-kernel +testing="Z/IPL display entry information" +ziplDisplayTest zipl.2 info/z2.1 --info=1 testing="GRUB fallback directive" grubTest grub.5 fallback/g5.1 --remove-kernel=/boot/vmlinuz-2.4.7-ac3 \ @@ -316,12 +334,24 @@ --boot-filesystem=/ --copy-default --add-kernel=/boot/new-kernel \ --title="Some_Title" +testing="Extlinux default directive" +extlinuxTest extlinux.1 default/extlinux1.1 --boot-filesystem=/boot --add-kernel /boot/new-kernel --title Some_Title +extlinuxTest extlinux.1 default/extlinux1.2 --boot-filesystem=/boot --add-kernel /boot/new-kernel --title Some_Title --make-default +extlinuxTest extlinux.3 default/extlinux3.1 --boot-filesystem=/boot --set-default=/boot/vmlinuz-3.12.0-2.fc21.i686 +extlinuxTest extlinux.3 default/extlinux3.2 --boot-filesystem=/boot --set-default=/boot/vmlinuz-3.12.0-2.fc21.i686+PAE + testing="GRUB new kernel argument handling" grubTest grub.1 args/g1.1 --boot-filesystem=/boot \ --add-kernel=/boot/foo --title=some_title --args="1234" --copy-default grubTest grub.1 args/g1.2 --boot-filesystem=/boot \ --add-kernel=/boot/foo --title=some_title --args="1234" +testing="Extlinux new kernel argument handling" +extlinuxTest extlinux.1 args/extlinux1.1 --boot-filesystem=/boot \ + --add-kernel=/boot/foo --title=some_title --args="1234" --copy-default +extlinuxTest extlinux.1 args/extlinux1.2 --boot-filesystem=/boot \ + --add-kernel=/boot/foo --title=some_title --args="1234" + testing="GRUB remove kernel" grubTest grub.7 remove/g7.1 --boot-filesystem=/ \ --remove-kernel=/boot/vmlinuz-2.4.7-2.5 @@ -339,6 +369,12 @@ ziplTest zipl.1 remove/z1.1 --remove-kernel=/boot/vmlinuz-2.4.9-38 ziplTest zipl.1 remove/z1.2 --remove-kernel=DEFAULT +testing="Extlinux remove kernel" +extlinuxTest extlinux.4 remove/extlinux4.1 --boot-filesystem=/ \ + --remove-kernel=/boot/vmlinuz-3.11.7-301.fc20.i686 +extlinuxTest extlinux.3 remove/extlinux3.1 --boot-filesystem=/ \ + --remove-kernel=DEFAULT + testing="GRUB update kernel argument handling" grubTest grub.1 updargs/g1.1 --update-kernel=DEFAULT --args="root=/dev/hda1" grubTest grub.1 updargs/g1.2 --update-kernel=DEFAULT \ @@ -355,8 +391,6 @@ --remove-args="hdd root ro" grubTest grub.7 updargs/g7.2 --boot-filesystem=/ \ --update-kernel=ALL --args "hde=ide-scsi" -grubTest grub.7 updargs/g7.2 --boot-filesystem=/ \ - --update-kernel=ALL --args "hde=ide-scsi" grubTest grub.7 updargs/g7.3 --boot-filesystem=/ \ --update-kernel=DEFAULT --args "hde=ide-scsi" grubTest grub.7 updargs/g7.4 --boot-filesystem=/ \ @@ -391,6 +425,30 @@ liloTest lilo.3 updargs/l3.2 --update-kernel=ALL \ --remove-args="single" --args "root=/dev/hda2" +testing="Extlinux update kernel argument handling" +extlinuxTest extlinux.1 updargs/extlinux1.1 --update-kernel=DEFAULT --args="root=/dev/hda1" +extlinuxTest extlinux.1 updargs/extlinux1.2 --update-kernel=DEFAULT \ + --args="root=/dev/hda1 hda=ide-scsi root=/dev/hda2" +extlinuxTest extlinux.3 updargs/extlinux3.1 --update-kernel=DEFAULT --args "hdd=notide-scsi" +extlinuxTest extlinux.3 updargs/extlinux3.2 --update-kernel=DEFAULT \ + --args "hdd=notide-scsi root=/dev/hdd1" +extlinuxTest extlinux.3 updargs/extlinux3.2 --update-kernel=DEFAULT \ + --args "root=/dev/hdd1 hdd=notide-scsi" +extlinuxTest extlinux.3 updargs/extlinux3.4 --update-kernel=ALL --remove-args="hdd" +extlinuxTest extlinux.3 updargs/extlinux3.4 --update-kernel=ALL --remove-args="hdd=ide-scsi" +extlinuxTest extlinux.3 updargs/extlinux3.4 --update-kernel=ALL --remove-args="hdd=foobar" +extlinuxTest extlinux.3 updargs/extlinux3.7 --update-kernel=ALL \ + --remove-args="hdd root ro" +extlinuxTest extlinux.4 updargs/extlinux4.2 --boot-filesystem=/ \ + --update-kernel=ALL --args "hde=ide-scsi" +extlinuxTest extlinux.4 updargs/extlinux4.3 --boot-filesystem=/ \ + --update-kernel=DEFAULT --args "hde=ide-scsi" +extlinuxTest extlinux.4 updargs/extlinux4.4 --boot-filesystem=/ \ + --update-kernel=/vmlinuz-3.12.0-2.fc21.i686 \ + --args "ro root=LABEL=/ console=tty0 console=ttyS1,9600n81 single" +extlinuxTest extlinux.4 updargs/extlinux4.5 --boot-filesystem=/ \ + --update-kernel=ALL --args "root=/dev/hda2" + testing="LILO add kernel" liloTest lilo.4 add/l4.1 --add-kernel=/boot/new-kernel.img --title="title" \ --copy-default --boot-filesystem=/boot @@ -431,6 +489,20 @@ grubTest grub.11 add/g11.1 --add-kernel=/boot/new-kernel.img --title='title' \ --initrd=/boot/new-initrd --boot-filesystem=/boot --copy-default \ --args='console=tty0 console=ttyS1,9600n81 single' +grubTest grub.1 add/g1.1 --add-kernel=/boot/new-kernel.img --title='title' \ + --initrd=/boot/new-initrd --boot-filesystem=/ --set-index 0 +grubTest grub.1 add/g1.17 --add-kernel=/boot/new-kernel.img --title='title' \ + --initrd=/boot/new-initrd --boot-filesystem=/ --set-index 1 +grubTest grub.1 add/g1.17 --add-kernel=/boot/new-kernel.img --title='title' \ + --initrd=/boot/new-initrd --boot-filesystem=/ --set-index 2 +grubTest grub.15 add/g1.10 --add-kernel=/boot/new-kernel.img --title='title' \ + --initrd=/boot/new-initrd --boot-filesystem=/ --set-index 0 +grubTest grub.15 add/g1.8 --add-kernel=/boot/new-kernel.img --title='title' \ + --initrd=/boot/new-initrd --boot-filesystem=/ --set-index 1 +grubTest grub.15 add/g1.9 --add-kernel=/boot/new-kernel.img --title='title' \ + --initrd=/boot/new-initrd --boot-filesystem=/ --set-index 2 +grubTest grub.15 add/g1.9 --add-kernel=/boot/new-kernel.img --title='title' \ + --initrd=/boot/new-initrd --boot-filesystem=/ --set-index 5 testgrub2=n ARCH=$(uname -m | sed s,i[3456789]86,ia32,) @@ -443,9 +515,20 @@ grub2Test grub2.1 add/g2-1.1 --add-kernel=/boot/new-kernel.img \ --title='title' --initrd=/boot/new-initrd --boot-filesystem=/boot/ \ --copy-default - grub2Test grub2.1 add/g2-1.6 --add-kernel=/boot/new-kernel.img \ - --title='title' --initrd=/boot/new-initrd --boot-filesystem=/boot/ \ - --copy-default --efi + case $ARCH in + aarch64) + grub2Test grub2.1 add/g2-1.1 --add-kernel=/boot/new-kernel.img \ + --title='title' \ + --initrd=/boot/new-initrd --boot-filesystem=/boot/ \ + --copy-default --efi + ;; + *) + grub2Test grub2.1 add/g2-1.6 --add-kernel=/boot/new-kernel.img \ + --title='title' \ + --initrd=/boot/new-initrd --boot-filesystem=/boot/ \ + --copy-default --efi + ;; + esac grub2Test grub2.6 add/g2-1.7 --add-kernel=/boot/new-kernel.img \ --title='title' --initrd=/boot/new-initrd --boot-filesystem=/boot/ \ --copy-default --efi @@ -460,6 +543,47 @@ grub2Test grub2.5 add/g2-1.5 --add-kernel=/boot/new-kernel.img \ --title='title' --initrd=/boot/new-initrd --boot-filesystem=/boot/ \ --copy-default + grub2Test grub2.12 add/g2-1.12 \ + --add-kernel=/boot/vmlinuz-2.6.38.8-32.fc15.x86_64 \ + --title='Linux, with Fedora 2.6.38.8-32.fc15.x86_64' \ + --devtree='/boot/dtb-2.6.38.8-32.fc15.x86_64/foobarbaz.dtb' \ + --initrd=/boot/initramfs-2.6.38.8-32.fc15.x86_64.img \ + --boot-filesystem=/boot/ --copy-default --efi + grub2Test grub2.13 add/g2-1.13 \ + --add-kernel=/boot/vmlinuz-2.6.38.8-32.fc15.x86_64 \ + --title='Linux, with Fedora 2.6.38.8-32.fc15.x86_64' \ + --devtree='/boot/dtb-2.6.38.8-32.fc15.x86_64/foobarbaz.dtb' \ + --initrd=/boot/initramfs-2.6.38.8-32.fc15.x86_64.img \ + --boot-filesystem=/boot/ --copy-default --efi + grub2Test grub2.15 add/g2-1.15 \ + --add-kernel=/boot/vmlinuz-0-rescue-5a94251776a14678911d4ae0949500f5 \ + --initrd /boot/initramfs-0-rescue-5a94251776a14678911d4ae0949500f5.img \ + --copy-default --title "Fedora 21 Rescue" --args=root=/fooooo \ + --remove-kernel=wtf --boot-filesystem=/boot/ --efi + + # a grub2 add with a "set" of the form: set foo="bar=1,2". bz#1152550 + # has this being emitted as: set foo="bar=1,2"=1,2" + # which is wrong. + grub2Test grub2.16 add/g2-1.16 \ + --add-kernel=/boot/vmlinuz-foo \ + --copy-default --title 'Red Hat Enterprise Linux Server' \ + --args=root=/dev/mapper/foo-- + + grub2Test grub2.19 remove/g2.19 --env grubenv.4 \ + --remove-kernel=/boot/vmlinuz-2.6.38.2-9.fc15.x86_64 \ + --boot-filesystem=/boot/ + commandTest "saved_default output" \ + "grub2-editenv test/grub2-support_files/env_temp list" \ + "saved_entry=Linux, with Fedora 2.6.38.8-32.fc15.x86_64" + + # copy a stanza and add arguments as well, while using --set-index= + testing="GRUB2 add stanza and new args with --set-index=" + grub2Test grub2.18 add/g2-1.18 --env grubenv.3 \ + --add-kernel=/boot/vmlinuz-3.10.0-327.22.2.el7.x86_64.debug \ + --boot-filesystem=/boot --copy-default \ + --title "Red Hat Enterprise Linux Server (3.10.0-327.22.2.el7.x86_64.debug) 7.2 (Maipo) with debugging" \ + --args="root=/dev/mapper/rhel_team--area--222-root systemd.log_level=debug systemd.log_target=kmsg" \ + --set-index=1 testing="GRUB2 add initrd" grub2Test grub2.2 add/g2-1.4 --update-kernel=/boot/new-kernel.img \ @@ -506,6 +630,19 @@ "grub2-editenv test/grub2-support_files/env_temp list" \ "saved_entry=Linux, with Fedora 2.6.38.8-32.fc15.x86_64" + testing="GRUB2 add kernel with default=saved_entry and a terrible title" + grub2Test grub2.7 add/g2-1.9 --env grubenv.1 \ + --add-kernel=/boot/new-kernel.img \ + --title='Fedora (3.10.3-300.fc19.x86_64) 19 (Schrödinger’s Cat)' \ + --initrd=/boot/new-initrd --boot-filesystem=/boot/ \ + --copy-default + + testing="GRUB2 set default with default=saved_entry and a terrible name" + grub2Test grub2.9 add/g2-1.9 --env grubenv.1 --set-default-index=0 + commandTest "saved_default output" \ + "grub2-editenv test/grub2-support_files/env_temp list" \ + 'saved_entry=Fedora (3.10.3-300.fc19.x86_64) 19 (Schrödinger’s Cat)' + testing="GRUB2 set default with default=saved_entry" grub2Test grub2.8 add/g2-1.8 --env grubenv.1 --set-default-index=0 commandTest "saved_default output" \ @@ -520,6 +657,32 @@ testing="GRUB2 --default-title with default=saved_entry" grub2DisplayTest grub2.8 defaulttitle/g2.1 --env grubenv.1 --default-title + + testing="GRUB2 --default-index with default=saved_entry and empty grubenv" + grub2DisplayTest grub2.8 defaultindex/0 --env grubenv.0 --default-index + + testlinux16=n + case $ARCH in + ia32|x86_64) testlinux16=y ;; + esac + + if [ "$testlinux16" == "y" ]; then + testing="GRUB2 add kernel with linux16" + grub2Test grub2.10 add/g2-1.10 --add-kernel=/boot/new-kernel.img \ + --title='title' --initrd=/boot/new-initrd --boot-filesystem=/boot/ \ + --copy-default + + testing="GRUB2 add initrd with linux16" + grub2Test grub2.11 add/g2-1.11 --update-kernel=/boot/new-kernel.img \ + --initrd=/boot/new-initrd --boot-filesystem=/boot/ + + testing="GRUB2 add rescue with linux16" + grub2Test grub2.14 add/g2-1.14 \ + --add-kernel=/boot/vmlinuz-0-rescue-5a94251776a14678911d4ae0949500f5 \ + --initrd /boot/initramfs-0-rescue-5a94251776a14678911d4ae0949500f5.img \ + --copy-default --title "Fedora 21 Rescue" --args=root=/fooooo \ + --remove-kernel=wtf --boot-filesystem=/boot/ + fi fi testing="YABOOT add kernel" @@ -534,6 +697,38 @@ ziplTest zipl.1 add/z1.1 --add-kernel=/boot/new-kernel.img --title test ziplTest zipl.1 add/z1.2 --add-kernel=/boot/new-kernel.img --title test --copy-default +testing="Extlinux add kernel" +extlinuxTest extlinux.1 add/extlinux1.1 --add-kernel=/boot/new-kernel.img \ + --title='title' --initrd=/boot/new-initrd --boot-filesystem=/ +extlinuxTest extlinux.1 add/extlinux1.2 --add-kernel=/boot/new-kernel.img \ + --title='title' --initrd=/boot/new-initrd --boot-filesystem=/boot +extlinuxTest extlinux.1 add/extlinux1.3 --add-kernel=/boot/new-kernel.img \ + --title='title' --initrd=/boot/new-initrd --boot-filesystem=/ \ + --copy-default +extlinuxTest extlinux.1 add/extlinux1.4 --add-kernel=/boot/new-kernel.img \ + --title='title' --initrd=/boot/new-initrd --boot-filesystem=/boot \ + --copy-default +extlinuxTest extlinux.2 add/extlinux2.1 \ + --add-kernel=/boot/vmlinuz-3.12.0-2.fc21.i686 \ + --initrd=/boot/initrd-3.12.0-2.fc21.i686-new.img \ + --boot-filesystem=/boot --copy-default \ + --title="Fedora (3.12.0-2.fc21.i686) 20 (Heisenbug)" \ + --remove-kernel="TITLE=Fedora (3.12.0-2.fc21.i686) 20 (Heisenbug)" +extlinuxTest extlinux.5 add/extlinux5.1 \ + --add-kernel=/boot/vmlinuz-3.15.0-0.rc1.git4.1.fc21.armv7hl \ + --devtree='/boot/dtb-3.15.0-0.rc1.git4.1.fc21.armv7hl/imx6q-cubox-i.dtb' \ + --initrd=/boot/initramfs-3.15.0-0.rc1.git4.1.fc21.armv7hl.img \ + --boot-filesystem=/boot --copy-default \ + --title="Fedora (3.15.0-0.rc1.git4.1.fc21.armv7hl) 21 (Rawhide)" \ + --remove-kernel="TITLE=Fedora (3.12.0-0.fc21.armv7hl) 21 (Rawhide)" +extlinuxTest extlinux.6 add/extlinux6.1 \ + --add-kernel=/boot/vmlinuz-3.15.0-0.rc1.git4.1.fc21.armv7hl \ + --devtreedir='/boot/dtb-3.15.0-0.rc1.git4.1.fc21.armv7hl/' \ + --initrd=/boot/initramfs-3.15.0-0.rc1.git4.1.fc21.armv7hl.img \ + --boot-filesystem=/boot --copy-default \ + --title="Fedora (3.15.0-0.rc1.git4.1.fc21.armv7hl) 21 (Rawhide)" \ + --remove-kernel="TITLE=Fedora (3.12.0-0.fc21.armv7hl) 21 (Rawhide)" + testing="LILO long titles" liloTest lilo.1 longtitle/l1.1 --add-kernel=/boot/new-kernel.img \ --title="linux-longtitle" --copy-default --boot-filesystem=/boot