From f824b6866835bc5051c44ffd289134974f214e98 Mon Sep 17 00:00:00 2001 From: Masayoshi Mizuma Date: Thu, 9 May 2019 17:36:42 -0400 Subject: ktest: introduce _get_grub_index Introduce _get_grub_index() to deal with Boot Loader Specification (BLS) and cleanup. Link: http://lkml.kernel.org/r/20190509213647.6276-2-msys.mizuma@gmail.com Signed-off-by: Masayoshi Mizuma Signed-off-by: Steven Rostedt (VMware) --- tools/testing/ktest/ktest.pl | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) (limited to 'tools/testing') diff --git a/tools/testing/ktest/ktest.pl b/tools/testing/ktest/ktest.pl index 275ad8ac8872..43868ee07e17 100755 --- a/tools/testing/ktest/ktest.pl +++ b/tools/testing/ktest/ktest.pl @@ -1871,6 +1871,43 @@ sub run_scp_mod { return run_scp($src, $dst, $cp_scp); } +sub _get_grub_index { + + my ($command, $target, $skip) = @_; + + return if (defined($grub_number) && defined($last_grub_menu) && + $last_grub_menu eq $grub_menu && defined($last_machine) && + $last_machine eq $machine); + + doprint "Find $reboot_type menu ... "; + $grub_number = -1; + + my $ssh_grub = $ssh_exec; + $ssh_grub =~ s,\$SSH_COMMAND,$command,g; + + open(IN, "$ssh_grub |") + or dodie "unable to execute $command"; + + my $found = 0; + + while () { + if (/$target/) { + $grub_number++; + $found = 1; + last; + } elsif (/$skip/) { + $grub_number++; + } + } + close(IN); + + dodie "Could not find '$grub_menu' through $command on $machine" + if (!$found); + doprint "$grub_number\n"; + $last_grub_menu = $grub_menu; + $last_machine = $machine; +} + sub get_grub2_index { return if (defined($grub_number) && defined($last_grub_menu) && -- cgit v1.2.3-59-g8ed1b