You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
262 lines
8.4 KiB
262 lines
8.4 KiB
From 2d19bc931b0b2a70abc18f6d15dddbf547cafd94 Mon Sep 17 00:00:00 2001
|
|
From: Robert Marshall <rmarshall@redhat.com>
|
|
Date: Thu, 22 Dec 2016 17:40:52 -0500
|
|
Subject: [PATCH 36/55] Add multi-entry removal test (#1285601)
|
|
|
|
Test what happens to the default entry set in the grub environment after
|
|
removing the first two boot entries.
|
|
|
|
Related: rhbz#1285601
|
|
---
|
|
test.sh | 7 ++
|
|
test/grub2-support_files/grubenv.4 | 3 +
|
|
test/grub2.19 | 112 +++++++++++++++++++++++++++++
|
|
test/results/remove/g2.19 | 88 +++++++++++++++++++++++
|
|
4 files changed, 210 insertions(+)
|
|
create mode 100644 test/grub2-support_files/grubenv.4
|
|
create mode 100644 test/grub2.19
|
|
create mode 100644 test/results/remove/g2.19
|
|
|
|
diff --git a/test.sh b/test.sh
|
|
index fb7cd2381d5..1ef9eca535d 100755
|
|
--- a/test.sh
|
|
+++ b/test.sh
|
|
@@ -565,6 +565,13 @@ if [ "$testgrub2" == "y" ]; then
|
|
--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 \
|
|
diff --git a/test/grub2-support_files/grubenv.4 b/test/grub2-support_files/grubenv.4
|
|
new file mode 100644
|
|
index 00000000000..13116382feb
|
|
--- /dev/null
|
|
+++ b/test/grub2-support_files/grubenv.4
|
|
@@ -0,0 +1,3 @@
|
|
+# GRUB Environment Block
|
|
+saved_entry=Linux, with Fedora 2.6.38.8-32.fc15.x86_64
|
|
+################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################################
|
|
diff --git a/test/grub2.19 b/test/grub2.19
|
|
new file mode 100644
|
|
index 00000000000..be07b3ea6b3
|
|
--- /dev/null
|
|
+++ b/test/grub2.19
|
|
@@ -0,0 +1,112 @@
|
|
+#
|
|
+# DO NOT EDIT THIS FILE
|
|
+#
|
|
+# It is automatically generated by grub2-mkconfig using templates
|
|
+# from /etc/grub.d and settings from /etc/default/grub
|
|
+#
|
|
+
|
|
+### BEGIN /etc/grub.d/00_header ###
|
|
+if [ -s $prefix/grubenv ]; then
|
|
+ load_env
|
|
+fi
|
|
+if [ "${next_entry}" ] ; then
|
|
+ set default="${next_entry}"
|
|
+ set next_entry=
|
|
+ save_env next_entry
|
|
+ set boot_once=true
|
|
+else
|
|
+ set default="${saved_entry}"
|
|
+fi
|
|
+
|
|
+if [ x"${feature_menuentry_id}" = xy ]; then
|
|
+ menuentry_id_option="--id"
|
|
+else
|
|
+ menuentry_id_option=""
|
|
+fi
|
|
+
|
|
+export menuentry_id_option
|
|
+
|
|
+if [ "${prev_saved_entry}" ]; then
|
|
+ set saved_entry="${prev_saved_entry}"
|
|
+ save_env saved_entry
|
|
+ set prev_saved_entry=
|
|
+ save_env prev_saved_entry
|
|
+ set boot_once=true
|
|
+fi
|
|
+
|
|
+function savedefault {
|
|
+ if [ -z "${boot_once}" ]; then
|
|
+ saved_entry="${chosen}"
|
|
+ save_env saved_entry
|
|
+ fi
|
|
+}
|
|
+
|
|
+function load_video {
|
|
+ insmod vbe
|
|
+ insmod vga
|
|
+ insmod video_bochs
|
|
+ insmod video_cirrus
|
|
+}
|
|
+
|
|
+set timeout=5
|
|
+### END /etc/grub.d/00_header ###
|
|
+
|
|
+### BEGIN /etc/grub.d/10_linux ###
|
|
+menuentry 'First Title To Remove' --class gnu-linux --class gnu --class os {
|
|
+ load_video
|
|
+ set gfxpayload=keep
|
|
+ insmod part_msdos
|
|
+ insmod ext2
|
|
+ set root='(hd0,msdos1)'
|
|
+ search --no-floppy --fs-uuid --set=root df0170c9-7d05-415c-bbd1-d4d503ba0eed
|
|
+ echo 'Loading Linux 2.6.38.2-9.fc15.x86_64 ...'
|
|
+ linux /vmlinuz-2.6.38.2-9.fc15.x86_64 root=/dev/mapper/vg_pjones5-lv_root ro quiet rhgb
|
|
+ echo 'Loading initial ramdisk ...'
|
|
+ initrd /initramfs-2.6.38.2-9.fc15.x86_64.img
|
|
+}
|
|
+menuentry 'Second Title To Remove' --class gnu-linux --class gnu --class os {
|
|
+ load_video
|
|
+ set gfxpayload=keep
|
|
+ insmod part_msdos
|
|
+ insmod ext2
|
|
+ set root='(hd0,msdos1)'
|
|
+ search --no-floppy --fs-uuid --set=root df0170c9-7d05-415c-bbd1-d4d503ba0eed
|
|
+ echo 'Loading Linux 2.6.38.2-9.fc15.x86_64 ...'
|
|
+ linux /vmlinuz-2.6.38.2-9.fc15.x86_64 root=/dev/mapper/vg_pjones5-lv_root ro quiet rhgb
|
|
+ echo 'Loading initial ramdisk ...'
|
|
+ initrd /initramfs-2.6.38.2-9.fc15.x86_64.img
|
|
+}
|
|
+menuentry 'Linux, with Fedora 2.6.38.8-32.fc15.x86_64' --class gnu-linux --class gnu --class os {
|
|
+ load_video
|
|
+ set gfxpayload=keep
|
|
+ insmod part_msdos
|
|
+ insmod ext2
|
|
+ set root='(hd0,msdos1)'
|
|
+ search --no-floppy --fs-uuid --set=root df0170c9-7d05-415c-bbd1-d4d503ba0eed
|
|
+ echo 'Loading Fedora 2.6.38.8-32.fc15.x86_64 ...'
|
|
+ linux /vmlinuz-2.6.38.8-32.fc15.x86_64 root=/dev/mapper/vg_pjones5-lv_root ro quiet rhgb
|
|
+ echo 'Loading initial ramdisk ...'
|
|
+ initrd /initramfs-2.6.38.8-32.fc15.x86_64.img
|
|
+}
|
|
+### END /etc/grub.d/10_linux ###
|
|
+
|
|
+### BEGIN /etc/grub.d/20_linux_xen ###
|
|
+### END /etc/grub.d/20_linux_xen ###
|
|
+
|
|
+### BEGIN /etc/grub.d/30_os-prober ###
|
|
+### END /etc/grub.d/30_os-prober ###
|
|
+
|
|
+### BEGIN /etc/grub.d/40_custom ###
|
|
+# This file provides an easy way to add custom menu entries. Simply type the
|
|
+# menu entries you want to add after this comment. Be careful not to change
|
|
+# the 'exec tail' line above.
|
|
+### END /etc/grub.d/40_custom ###
|
|
+
|
|
+### BEGIN /etc/grub.d/41_custom ###
|
|
+if [ -f $prefix/custom.cfg ]; then
|
|
+ source $prefix/custom.cfg;
|
|
+fi
|
|
+### END /etc/grub.d/41_custom ###
|
|
+
|
|
+### BEGIN /etc/grub.d/90_persistent ###
|
|
+### END /etc/grub.d/90_persistent ###
|
|
diff --git a/test/results/remove/g2.19 b/test/results/remove/g2.19
|
|
new file mode 100644
|
|
index 00000000000..f65edd5ac29
|
|
--- /dev/null
|
|
+++ b/test/results/remove/g2.19
|
|
@@ -0,0 +1,88 @@
|
|
+#
|
|
+# DO NOT EDIT THIS FILE
|
|
+#
|
|
+# It is automatically generated by grub2-mkconfig using templates
|
|
+# from /etc/grub.d and settings from /etc/default/grub
|
|
+#
|
|
+
|
|
+### BEGIN /etc/grub.d/00_header ###
|
|
+if [ -s $prefix/grubenv ]; then
|
|
+ load_env
|
|
+fi
|
|
+if [ "${next_entry}" ] ; then
|
|
+ set default="${next_entry}"
|
|
+ set next_entry=
|
|
+ save_env next_entry
|
|
+ set boot_once=true
|
|
+else
|
|
+ set default="${saved_entry}"
|
|
+fi
|
|
+
|
|
+if [ x"${feature_menuentry_id}" = xy ]; then
|
|
+ menuentry_id_option="--id"
|
|
+else
|
|
+ menuentry_id_option=""
|
|
+fi
|
|
+
|
|
+export menuentry_id_option
|
|
+
|
|
+if [ "${prev_saved_entry}" ]; then
|
|
+ set saved_entry="${prev_saved_entry}"
|
|
+ save_env saved_entry
|
|
+ set prev_saved_entry=
|
|
+ save_env prev_saved_entry
|
|
+ set boot_once=true
|
|
+fi
|
|
+
|
|
+function savedefault {
|
|
+ if [ -z "${boot_once}" ]; then
|
|
+ saved_entry="${chosen}"
|
|
+ save_env saved_entry
|
|
+ fi
|
|
+}
|
|
+
|
|
+function load_video {
|
|
+ insmod vbe
|
|
+ insmod vga
|
|
+ insmod video_bochs
|
|
+ insmod video_cirrus
|
|
+}
|
|
+
|
|
+set timeout=5
|
|
+### END /etc/grub.d/00_header ###
|
|
+
|
|
+### BEGIN /etc/grub.d/10_linux ###
|
|
+menuentry 'Linux, with Fedora 2.6.38.8-32.fc15.x86_64' --class gnu-linux --class gnu --class os {
|
|
+ load_video
|
|
+ set gfxpayload=keep
|
|
+ insmod part_msdos
|
|
+ insmod ext2
|
|
+ set root='(hd0,msdos1)'
|
|
+ search --no-floppy --fs-uuid --set=root df0170c9-7d05-415c-bbd1-d4d503ba0eed
|
|
+ echo 'Loading Fedora 2.6.38.8-32.fc15.x86_64 ...'
|
|
+ linux /vmlinuz-2.6.38.8-32.fc15.x86_64 root=/dev/mapper/vg_pjones5-lv_root ro quiet rhgb
|
|
+ echo 'Loading initial ramdisk ...'
|
|
+ initrd /initramfs-2.6.38.8-32.fc15.x86_64.img
|
|
+}
|
|
+### END /etc/grub.d/10_linux ###
|
|
+
|
|
+### BEGIN /etc/grub.d/20_linux_xen ###
|
|
+### END /etc/grub.d/20_linux_xen ###
|
|
+
|
|
+### BEGIN /etc/grub.d/30_os-prober ###
|
|
+### END /etc/grub.d/30_os-prober ###
|
|
+
|
|
+### BEGIN /etc/grub.d/40_custom ###
|
|
+# This file provides an easy way to add custom menu entries. Simply type the
|
|
+# menu entries you want to add after this comment. Be careful not to change
|
|
+# the 'exec tail' line above.
|
|
+### END /etc/grub.d/40_custom ###
|
|
+
|
|
+### BEGIN /etc/grub.d/41_custom ###
|
|
+if [ -f $prefix/custom.cfg ]; then
|
|
+ source $prefix/custom.cfg;
|
|
+fi
|
|
+### END /etc/grub.d/41_custom ###
|
|
+
|
|
+### BEGIN /etc/grub.d/90_persistent ###
|
|
+### END /etc/grub.d/90_persistent ###
|
|
--
|
|
2.17.1
|
|
|