Commit dd609b8a authored by Linus Torvalds's avatar Linus Torvalds

Merge tag 'ktest-v6.12' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-ktest

Pull ktest updates from Steven Rostedt:

 - Add notification of build warnings for all tests

   Currently, the build will only fail on warnings if the ktest config
   file states that it should fail or if the compile is done with
   '-Werror'. This has allowed warnings to sneak in if it doesn't fail.

   Add a notification at the end of the test that will state that
   warnings were found in the build so that the developer will be aware
   of it.

 - Fix the grub2 parser to not return the wrong kernel index

   ktest.pl can read the grub.cfg file to know what kernel to boot to
   via grub-reboot. This requires knowing the index that the kernel is
   referenced by in the grub.cfg file. Some distros have logic to
   determine the menuentry that can cause the ktest.pl to come up with
   the wrong index and boot the wrong kernel.

* tag 'ktest-v6.12' of git://git.kernel.org/pub/scm/linux/kernel/git/rostedt/linux-ktest:
  ktest.pl: Avoid false positives with grub2 skip regex
  ktest.pl: Always warn on build warnings
parents 891e8abe 2351e8c6
...@@ -222,6 +222,8 @@ my $install_time; ...@@ -222,6 +222,8 @@ my $install_time;
my $reboot_time; my $reboot_time;
my $test_time; my $test_time;
my $warning_found = 0;
my $pwd; my $pwd;
my $dirname = $FindBin::Bin; my $dirname = $FindBin::Bin;
...@@ -729,11 +731,18 @@ sub print_times { ...@@ -729,11 +731,18 @@ sub print_times {
show_time($test_time); show_time($test_time);
doprint "\n"; doprint "\n";
} }
if ($warning_found) {
doprint "\n*** WARNING";
doprint "S" if ($warning_found > 1);
doprint " found in build: $warning_found ***\n\n";
}
# reset for iterations like bisect # reset for iterations like bisect
$build_time = 0; $build_time = 0;
$install_time = 0; $install_time = 0;
$reboot_time = 0; $reboot_time = 0;
$test_time = 0; $test_time = 0;
$warning_found = 0;
} }
sub get_mandatory_configs { sub get_mandatory_configs {
...@@ -2047,7 +2056,7 @@ sub get_grub_index { ...@@ -2047,7 +2056,7 @@ sub get_grub_index {
} elsif ($reboot_type eq "grub2") { } elsif ($reboot_type eq "grub2") {
$command = "cat $grub_file"; $command = "cat $grub_file";
$target = '^\s*menuentry.*' . $grub_menu_qt; $target = '^\s*menuentry.*' . $grub_menu_qt;
$skip = '^\s*menuentry'; $skip = '^\s*menuentry\s';
$submenu = '^\s*submenu\s'; $submenu = '^\s*submenu\s';
} elsif ($reboot_type eq "grub2bls") { } elsif ($reboot_type eq "grub2bls") {
$command = $grub_bls_get; $command = $grub_bls_get;
...@@ -2460,8 +2469,6 @@ sub process_warning_line { ...@@ -2460,8 +2469,6 @@ sub process_warning_line {
# Returns 1 if OK # Returns 1 if OK
# 0 otherwise # 0 otherwise
sub check_buildlog { sub check_buildlog {
return 1 if (!defined $warnings_file);
my %warnings_list; my %warnings_list;
# Failed builds should not reboot the target # Failed builds should not reboot the target
...@@ -2482,21 +2489,24 @@ sub check_buildlog { ...@@ -2482,21 +2489,24 @@ sub check_buildlog {
close(IN); close(IN);
} }
# If warnings file didn't exist, and WARNINGS_FILE exist,
# then we fail on any warning!
open(IN, $buildlog) or dodie "Can't open $buildlog"; open(IN, $buildlog) or dodie "Can't open $buildlog";
while (<IN>) { while (<IN>) {
if (/$check_build_re/) { if (/$check_build_re/) {
my $warning = process_warning_line $_; my $warning = process_warning_line $_;
if (!defined $warnings_list{$warning}) { if (!defined $warnings_list{$warning}) {
$warning_found++;
# If warnings file didn't exist, and WARNINGS_FILE exist,
# then we fail on any warning!
if (defined $warnings_file) {
fail "New warning found (not in $warnings_file)\n$_\n"; fail "New warning found (not in $warnings_file)\n$_\n";
$no_reboot = $save_no_reboot; $no_reboot = $save_no_reboot;
return 0; return 0;
} }
} }
} }
}
$no_reboot = $save_no_reboot; $no_reboot = $save_no_reboot;
close(IN); close(IN);
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment