[PATCH] ktest.pl: Always warn on build warnings

Steven Rostedt posted 1 patch 1 year, 5 months ago
tools/testing/ktest/ktest.pl | 26 ++++++++++++++++++--------
1 file changed, 18 insertions(+), 8 deletions(-)
[PATCH] ktest.pl: Always warn on build warnings
Posted by Steven Rostedt 1 year, 5 months ago
From: Steven Rostedt <rostedt@goodmis.org>

If a warning happens at build, give a warning at the end:

  Build time:   1 minute 40 seconds
  Install time: 17 seconds
  Reboot time:  25 seconds

  *** WARNING found in build: 1 ***

  *******************************************
  *******************************************
  KTEST RESULT: TEST 1 SUCCESS!!!!   **
  *******************************************
  *******************************************

This way, even if the test isn't made to fail on warnings during the
build, a message is still displayed that warnings were found.

Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
---
 tools/testing/ktest/ktest.pl | 26 ++++++++++++++++++--------
 1 file changed, 18 insertions(+), 8 deletions(-)

diff --git a/tools/testing/ktest/ktest.pl b/tools/testing/ktest/ktest.pl
index eb31cd9c977b..c82b8d55dddb 100755
--- a/tools/testing/ktest/ktest.pl
+++ b/tools/testing/ktest/ktest.pl
@@ -222,6 +222,8 @@ my $install_time;
 my $reboot_time;
 my $test_time;
 
+my $warning_found = 0;
+
 my $pwd;
 my $dirname = $FindBin::Bin;
 
@@ -729,11 +731,18 @@ sub print_times {
 	show_time($test_time);
 	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
     $build_time = 0;
     $install_time = 0;
     $reboot_time = 0;
     $test_time = 0;
+    $warning_found = 0;
 }
 
 sub get_mandatory_configs {
@@ -2460,8 +2469,6 @@ sub process_warning_line {
 # Returns 1 if OK
 #         0 otherwise
 sub check_buildlog {
-    return 1 if (!defined $warnings_file);
-
     my %warnings_list;
 
     # Failed builds should not reboot the target
@@ -2482,18 +2489,21 @@ sub check_buildlog {
 	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";
     while (<IN>) {
 	if (/$check_build_re/) {
 	    my $warning = process_warning_line $_;
 
 	    if (!defined $warnings_list{$warning}) {
-		fail "New warning found (not in $warnings_file)\n$_\n";
-		$no_reboot = $save_no_reboot;
-		return 0;
+		$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";
+		    $no_reboot = $save_no_reboot;
+		    return 0;
+		}
 	    }
 	}
     }
-- 
2.43.0
Re: [PATCH] ktest.pl: Always warn on build warnings
Posted by John 'Warthog9' Hawley 1 year, 5 months ago
Acked-by: John 'Warthog9' Hawley (Tenstorrent) <warthog9@eaglescrag.net>

On 8/19/2024 2:20 PM, Steven Rostedt wrote:
> From: Steven Rostedt <rostedt@goodmis.org>
> 
> If a warning happens at build, give a warning at the end:
> 
>    Build time:   1 minute 40 seconds
>    Install time: 17 seconds
>    Reboot time:  25 seconds
> 
>    *** WARNING found in build: 1 ***
> 
>    *******************************************
>    *******************************************
>    KTEST RESULT: TEST 1 SUCCESS!!!!   **
>    *******************************************
>    *******************************************
> 
> This way, even if the test isn't made to fail on warnings during the
> build, a message is still displayed that warnings were found.
> 
> Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
> ---
>   tools/testing/ktest/ktest.pl | 26 ++++++++++++++++++--------
>   1 file changed, 18 insertions(+), 8 deletions(-)
> 
> diff --git a/tools/testing/ktest/ktest.pl b/tools/testing/ktest/ktest.pl
> index eb31cd9c977b..c82b8d55dddb 100755
> --- a/tools/testing/ktest/ktest.pl
> +++ b/tools/testing/ktest/ktest.pl
> @@ -222,6 +222,8 @@ my $install_time;
>   my $reboot_time;
>   my $test_time;
>   
> +my $warning_found = 0;
> +
>   my $pwd;
>   my $dirname = $FindBin::Bin;
>   
> @@ -729,11 +731,18 @@ sub print_times {
>   	show_time($test_time);
>   	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
>       $build_time = 0;
>       $install_time = 0;
>       $reboot_time = 0;
>       $test_time = 0;
> +    $warning_found = 0;
>   }
>   
>   sub get_mandatory_configs {
> @@ -2460,8 +2469,6 @@ sub process_warning_line {
>   # Returns 1 if OK
>   #         0 otherwise
>   sub check_buildlog {
> -    return 1 if (!defined $warnings_file);
> -
>       my %warnings_list;
>   
>       # Failed builds should not reboot the target
> @@ -2482,18 +2489,21 @@ sub check_buildlog {
>   	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";
>       while (<IN>) {
>   	if (/$check_build_re/) {
>   	    my $warning = process_warning_line $_;
>   
>   	    if (!defined $warnings_list{$warning}) {
> -		fail "New warning found (not in $warnings_file)\n$_\n";
> -		$no_reboot = $save_no_reboot;
> -		return 0;
> +		$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";
> +		    $no_reboot = $save_no_reboot;
> +		    return 0;
> +		}
>   	    }
>   	}
>       }