summaryrefslogtreecommitdiffstats
path: root/test/parser
diff options
context:
space:
mode:
authorJeremy Kerr <jk@ozlabs.org>2019-11-14 15:22:35 +0800
committerJeremy Kerr <jk@ozlabs.org>2019-11-29 13:54:10 +0800
commit057dce2dadee2e2fca370d4497c8c792b001c2d3 (patch)
treebda59ad602089fc88ce99982f49d0854cd3950ab /test/parser
parent1ef95c2606eb6c9fcf3530504317f3a0b1a1ba34 (diff)
downloadtalos-petitboot-057dce2dadee2e2fca370d4497c8c792b001c2d3.tar.gz
talos-petitboot-057dce2dadee2e2fca370d4497c8c792b001c2d3.zip
test/parser: Add RHEL8 grub config test
Signed-off-by: Jeremy Kerr <jk@ozlabs.org>
Diffstat (limited to 'test/parser')
-rw-r--r--test/parser/Makefile.am1
-rw-r--r--test/parser/data/grub2-rhel8.conf190
-rw-r--r--test/parser/test-grub2-rhel8.c21
3 files changed, 212 insertions, 0 deletions
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);
+}
OpenPOWER on IntegriCloud