[PATCH] ktest: Add support for meta characters in GRUB_MENU

From: Masayoshi Mizuma
Date: Wed Apr 17 2019 - 16:12:51 EST


From: Masayoshi Mizuma <m.mizuma@xxxxxxxxxxxxxx>

ktest fails if meta characters are in GRUB_MENU, for example
GRUB_MENU = 'Fedora (test)'

The failure happens because the meta characters are not escaped,
so the menu doesn't match in any entries in GRUB_FILE.

Use quotameta() to escape the meta characters.

Signed-off-by: Masayoshi Mizuma <m.mizuma@xxxxxxxxxxxxxx>
---
tools/testing/ktest/ktest.pl | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/tools/testing/ktest/ktest.pl b/tools/testing/ktest/ktest.pl
index 87af8a68ab25..ea07d43856b8 100755
--- a/tools/testing/ktest/ktest.pl
+++ b/tools/testing/ktest/ktest.pl
@@ -1866,9 +1866,10 @@ sub get_grub2_index {
or dodie "unable to get $grub_file";

my $found = 0;
+ my $_grub_menu = quotemeta($grub_menu);

while (<IN>) {
- if (/^menuentry.*$grub_menu/) {
+ if (/^menuentry.*$_grub_menu/) {
$grub_number++;
$found = 1;
last;
@@ -1909,9 +1910,10 @@ sub get_grub_index {
or dodie "unable to get menu.lst";

my $found = 0;
+ my $_grub_menu = quotemeta($grub_menu);

while (<IN>) {
- if (/^\s*title\s+$grub_menu\s*$/) {
+ if (/^\s*title\s+$_grub_menu\s*$/) {
$grub_number++;
$found = 1;
last;
--
2.20.1