diff mbox series

[14/14] test/parser: Add RHEL8 grub config test

Message ID 20191120024306.16526-15-jk@ozlabs.org
State Accepted
Headers show
Series discover/grub2: Add support for grub2 file specifiers | expand

Commit Message

Jeremy Kerr Nov. 20, 2019, 2:43 a.m. UTC
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
---
 test/parser/Makefile.am           |   1 +
 test/parser/data/grub2-rhel8.conf | 190 ++++++++++++++++++++++++++++++
 test/parser/test-grub2-rhel8.c    |  21 ++++
 3 files changed, 212 insertions(+)
 create mode 100644 test/parser/data/grub2-rhel8.conf
 create mode 100644 test/parser/test-grub2-rhel8.c
diff mbox series

Patch

diff --git a/test/parser/Makefile.am b/test/parser/Makefile.am
index 5f7922c..9d1141c 100644
--- a/test/parser/Makefile.am
+++ b/test/parser/Makefile.am
@@ -43,6 +43,7 @@  parser_TESTS = \
 	test/parser/test-grub2-f20-ppc64 \
 	test/parser/test-grub2-ubuntu-13_04-x86 \
 	test/parser/test-grub2-sles-btrfs-snapshot \
+	test/parser/test-grub2-rhel8 \
 	test/parser/test-grub2-rhcos-ootpa \
 	test/parser/test-grub2-lexer-error \
 	test/parser/test-grub2-parser-error \
diff --git a/test/parser/data/grub2-rhel8.conf b/test/parser/data/grub2-rhel8.conf
new file mode 100644
index 0000000..563b3e5
--- /dev/null
+++ b/test/parser/data/grub2-rhel8.conf
@@ -0,0 +1,190 @@ 
+#
+# 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 ###
+set pager=1
+
+if [ -f ${config_directory}/grubenv ]; then
+  load_env -f ${config_directory}/grubenv
+elif [ -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 {
+  if [ x$feature_all_video_module = xy ]; then
+    insmod all_video
+  else
+    insmod efi_gop
+    insmod efi_uga
+    insmod ieee1275_fb
+    insmod vbe
+    insmod vga
+    insmod video_bochs
+    insmod video_cirrus
+  fi
+}
+
+terminal_output ofconsole
+if [ x$feature_timeout_style = xy ] ; then
+  set timeout_style=menu
+  set timeout=5
+# Fallback normal timeout code in case the timeout_style feature is
+# unavailable.
+else
+  set timeout=5
+fi
+### END /etc/grub.d/00_header ###
+
+### BEGIN /etc/grub.d/00_tuned ###
+set tuned_params=""
+set tuned_initrd=""
+### END /etc/grub.d/00_tuned ###
+
+### BEGIN /etc/grub.d/01_menu_auto_hide ###
+if [ "${boot_success}" = "1" -o "${boot_indeterminate}" = "1" ]; then
+  set last_boot_ok=1
+else
+  set last_boot_ok=0
+fi
+
+# Reset boot_indeterminate after a successful boot
+if [ "${boot_success}" = "1" ] ; then
+  set boot_indeterminate=0
+# Avoid boot_indeterminate causing the menu to be hidden more then once
+elif [ "${boot_indeterminate}" = "1" ]; then
+  set boot_indeterminate=2
+fi
+set boot_success=0
+save_env boot_success boot_indeterminate
+
+if [ x$feature_timeout_style = xy ] ; then
+  if [ "${menu_show_once}" ]; then
+    unset menu_show_once
+    save_env menu_show_once
+    set timeout_style=menu
+    set timeout=60
+  elif [ "${menu_auto_hide}" -a "${last_boot_ok}" = "1" ]; then
+    set orig_timeout_style=${timeout_style}
+    set orig_timeout=${timeout}
+    if [ "${fastboot}" = "1" ]; then
+      # timeout_style=menu + timeout=0 avoids the countdown code keypress check
+      set timeout_style=menu
+      set timeout=0
+    else
+      set timeout_style=hidden
+      set timeout=1
+    fi
+  fi
+fi
+### END /etc/grub.d/01_menu_auto_hide ###
+
+### BEGIN /etc/grub.d/01_users ###
+if [ -f ${prefix}/user.cfg ]; then
+  source ${prefix}/user.cfg
+  if [ -n "${GRUB2_PASSWORD}" ]; then
+    set superusers="root"
+    export superusers
+    password_pbkdf2 root ${GRUB2_PASSWORD}
+  fi
+fi
+### END /etc/grub.d/01_users ###
+
+### BEGIN /etc/grub.d/10_linux_bls ###
+insmod part_msdos
+insmod xfs
+set root='hd0,msdos2'
+if [ x$feature_platform_search_hint = xy ]; then
+  search --no-floppy --fs-uuid --set=root --hint-ieee1275='ieee1275//pciex@600c3c0100000/pci@0/pci@0/pci@9/raid@0/disk@8,msdos2' --hint-bios=hd0,msdos2 --hint-efi=hd0,msdos2 --hint-baremetal=ahci0,msdos2 --hint='hd0,msdos2'  9a8ea027-4829-45b9-829b-18ed6cc1f33b
+else
+  search --no-floppy --fs-uuid --set=root 9a8ea027-4829-45b9-829b-18ed6cc1f33b
+fi
+insmod part_msdos
+insmod xfs
+set boot='hd0,msdos2'
+if [ x$feature_platform_search_hint = xy ]; then
+  search --no-floppy --fs-uuid --set=boot --hint-ieee1275='ieee1275//pciex@600c3c0100000/pci@0/pci@0/pci@9/raid@0/disk@8,msdos2' --hint-bios=hd0,msdos2 --hint-efi=hd0,msdos2 --hint-baremetal=ahci0,msdos2 --hint='hd0,msdos2'  9a8ea027-4829-45b9-829b-18ed6cc1f33b
+else
+  search --no-floppy --fs-uuid --set=boot 9a8ea027-4829-45b9-829b-18ed6cc1f33b
+fi
+
+# This section was generated by a script. Do not modify the generated file - all changes
+# will be lost the next time file is regenerated. Instead edit the BootLoaderSpec files.
+
+menuentry 'Red Hat Enterprise Linux (4.18.0-80.11.2.el8_0.ppc64le) 8.0 (Ootpa)' --class kernel --unrestricted --users $grub_users --id 8e15296c9cc14deb9e3f8548d49fd6fc-4.18.0-80.11.2.el8_0.ppc64le {
+	 linux /vmlinuz-4.18.0-80.11.2.el8_0.ppc64le $kernelopts $tuned_params
+	 initrd /initramfs-4.18.0-80.11.2.el8_0.ppc64le.img $tuned_initrd
+}
+
+menuentry 'Red Hat Enterprise Linux (4.18.0-80.el8.ppc64le) 8.0 (Ootpa)' --class kernel --unrestricted --users $grub_users --id 8e15296c9cc14deb9e3f8548d49fd6fc-4.18.0-80.el8.ppc64le {
+	 linux /vmlinuz-4.18.0-80.el8.ppc64le $kernelopts $tuned_params
+	 initrd /initramfs-4.18.0-80.el8.ppc64le.img $tuned_initrd
+}
+
+menuentry 'Red Hat Enterprise Linux (0-rescue-8e15296c9cc14deb9e3f8548d49fd6fc) 8.0 (Ootpa)' --class kernel --unrestricted --users $grub_users --id 8e15296c9cc14deb9e3f8548d49fd6fc-0-rescue {
+	 linux /vmlinuz-0-rescue-8e15296c9cc14deb9e3f8548d49fd6fc $kernelopts
+	 initrd /initramfs-0-rescue-8e15296c9cc14deb9e3f8548d49fd6fc.img
+}
+
+### END /etc/grub.d/10_linux_bls ###
+
+### BEGIN /etc/grub.d/20_linux_xen ###
+### END /etc/grub.d/20_linux_xen ###
+
+### BEGIN /etc/grub.d/20_ppc_terminfo ###
+  terminfo -g 80x24 ofconsole
+### END /etc/grub.d/20_ppc_terminfo ###
+
+### BEGIN /etc/grub.d/30_os-prober ###
+### END /etc/grub.d/30_os-prober ###
+
+### BEGIN /etc/grub.d/30_uefi-firmware ###
+### END /etc/grub.d/30_uefi-firmware ###
+
+### 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  ${config_directory}/custom.cfg ]; then
+  source ${config_directory}/custom.cfg
+elif [ -z "${config_directory}" -a -f  $prefix/custom.cfg ]; then
+  source $prefix/custom.cfg;
+fi
+### END /etc/grub.d/41_custom ###
diff --git a/test/parser/test-grub2-rhel8.c b/test/parser/test-grub2-rhel8.c
new file mode 100644
index 0000000..3e208bc
--- /dev/null
+++ b/test/parser/test-grub2-rhel8.c
@@ -0,0 +1,21 @@ 
+
+#include "parser-test.h"
+
+void run_test(struct parser_test *test)
+{
+	struct discover_context *ctx;
+	struct discover_device *dev;
+
+	ctx = test->ctx;
+
+	dev = test_create_device(test, "boot");
+	dev->uuid = "9a8ea027-4829-45b9-829b-18ed6cc1f33b";
+	device_handler_add_device(test->handler, dev);
+
+	test_read_conf_file(test, "grub2-rhel8.conf",
+			"/grub/grub.cfg");
+
+	test_run_parser(test, "grub2");
+
+	check_boot_option_count(ctx, 3);
+}