ktest: Reset grub menu cache with different machines
[GitHub/mt8127/android_kernel_alcatel_ttab.git] / tools / testing / ktest / ktest.pl
index 4e67d52eb3a250591a43d64f34e41489e644d9a8..0d7fd8b515441fc7bd583d0084d44343b72fcc78 100755 (executable)
@@ -73,6 +73,7 @@ my $ktest_config;
 my $version;
 my $have_version = 0;
 my $machine;
+my $last_machine;
 my $ssh_user;
 my $tmpdir;
 my $builddir;
@@ -108,6 +109,7 @@ my $scp_to_target;
 my $scp_to_target_install;
 my $power_off;
 my $grub_menu;
+my $last_grub_menu;
 my $grub_file;
 my $grub_number;
 my $grub_reboot;
@@ -1538,7 +1540,9 @@ sub run_scp_mod {
 
 sub get_grub2_index {
 
-    return if (defined($grub_number));
+    return if (defined($grub_number) && defined($last_grub_menu) &&
+              $last_grub_menu eq $grub_menu && defined($last_machine) &&
+              $last_machine eq $machine);
 
     doprint "Find grub2 menu ... ";
     $grub_number = -1;
@@ -1565,6 +1569,8 @@ sub get_grub2_index {
     die "Could not find '$grub_menu' in $grub_file on $machine"
        if (!$found);
     doprint "$grub_number\n";
+    $last_grub_menu = $grub_menu;
+    $last_machine = $machine;
 }
 
 sub get_grub_index {
@@ -1577,7 +1583,9 @@ sub get_grub_index {
     if ($reboot_type ne "grub") {
        return;
     }
-    return if (defined($grub_number));
+    return if (defined($grub_number) && defined($last_grub_menu) &&
+              $last_grub_menu eq $grub_menu && defined($last_machine) &&
+              $last_machine eq $machine);
 
     doprint "Find grub menu ... ";
     $grub_number = -1;
@@ -1604,6 +1612,8 @@ sub get_grub_index {
     die "Could not find '$grub_menu' in /boot/grub/menu on $machine"
        if (!$found);
     doprint "$grub_number\n";
+    $last_grub_menu = $grub_menu;
+    $last_machine = $machine;
 }
 
 sub wait_for_input