]> asedeno.scripts.mit.edu Git - linux.git/commitdiff
ktest: Add support for meta characters in GRUB_MENU
authorMasayoshi Mizuma <m.mizuma@jp.fujitsu.com>
Wed, 17 Apr 2019 23:58:23 +0000 (19:58 -0400)
committerSteven Rostedt (VMware) <rostedt@goodmis.org>
Thu, 18 Apr 2019 02:36:30 +0000 (22:36 -0400)
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 quotemeta() to escape the meta characters.

Link: http://lkml.kernel.org/r/20190417235823.18176-1-msys.mizuma@gmail.com
Signed-off-by: Masayoshi Mizuma <m.mizuma@jp.fujitsu.com>
Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
tools/testing/ktest/ktest.pl

index 75f8cecdd5495b2588d155d64e757f73c24cea51..3bec099a6cf4f7e38a20e1e790d6a8986e59d8e8 100755 (executable)
@@ -1878,9 +1878,10 @@ sub get_grub2_index {
        or dodie "unable to get $grub_file";
 
     my $found = 0;
+    my $grub_menu_qt = quotemeta($grub_menu);
 
     while (<IN>) {
-       if (/^menuentry.*$grub_menu/) {
+       if (/^menuentry.*$grub_menu_qt/) {
            $grub_number++;
            $found = 1;
            last;
@@ -1921,9 +1922,10 @@ sub get_grub_index {
        or dodie "unable to get menu.lst";
 
     my $found = 0;
+    my $grub_menu_qt = quotemeta($grub_menu);
 
     while (<IN>) {
-       if (/^\s*title\s+$grub_menu\s*$/) {
+       if (/^\s*title\s+$grub_menu_qt\s*$/) {
            $grub_number++;
            $found = 1;
            last;