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 <m.mizuma@jp.fujitsu.com>
Signed-off-by: Steven Rostedt (VMware) <rostedt@goodmis.org>
This commit is contained in:
Masayoshi Mizuma 2019-05-09 17:36:42 -04:00 committed by Steven Rostedt (VMware)
parent 37e1677330
commit f824b68668

View File

@ -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 (<IN>) {
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) &&