| From 1e8fc53f15c4703a76911e75d906965e3d967e8f Mon Sep 17 00:00:00 2001 |
| From: Jeremy Kerr <jk@ozlabs.org> |
| Date: Thu, 14 Nov 2019 15:22:35 +0800 |
| Subject: [PATCH 17/18] test/parser: Add RHEL8 grub config test |
| |
| Signed-off-by: Jeremy Kerr <jk@ozlabs.org> |
| (cherry picked from commit 057dce2dadee2e2fca370d4497c8c792b001c2d3) |
| Signed-off-by: Klaus Heinrich Kiwi <klaus@linux.vnet.ibm.com> |
| --- |
| 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 --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); |
| +} |
| -- |
| 2.17.1 |
| |