Skip to contentSkip to conversation

ktest.pl: A couple of fixes for sending email results

PATCH New Steven Rostedt 1 participant 3 messages Dec 18, 2020

Subsystems (2)
lore
Share & tools
lore

Steven Rostedt

author maintainer
#0 lore raw

cover ktest.pl: A couple of fixes for sending email results

Steven Rostedt (VMware) (2):
ktest.pl: If size of log is too big to email, email error message ktest.pl: Fix the logic for truncating the size of the log file for email

----

 tools/testing/ktest/ktest.pl | 20 ++++++++++++--------
 1 file changed, 12 insertions(+), 8 deletions(-)
author maintainer
#1 lore raw

PATCH 1/2 ktest.pl: If size of log is too big to email, email error message

From: "Steven Rostedt (VMware)" <[email protected]>

If the size of the error log is too big to send via email, and the sending fails, it wont email any result. This can be confusing for the user who is waiting for an email on the completion of the tests.

If it fails to send email, then try again without the log file stating that it failed to send an email. Obviously this will not be of use if the sending of email failed for some other reasons, but it will at least give the user some information when it fails for the most common reason.

Fixes c2d84ddb338c8 ("ktest.pl: Add MAIL_COMMAND option to define how to send email")
---
 tools/testing/ktest/ktest.pl | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)
tools/testing/ktest/ktest.pl +6 -1
index 54188ee16c48..54f7d008e840 100755
@@ -4253,7 +4253,12 @@ sub do_send_mail {
     $mail_command =~ s/\$SUBJECT/$subject/g;
     $mail_command =~ s/\$MESSAGE/$message/g;
 
-    run_command $mail_command;
+    my $ret = run_command $mail_command;
+    if (!$ret && defined($file)) {
+	# try again without the file
+	$message .= "\n\n*** FAILED TO SEND LOG ***\n\n";
+	do_send_email($subject, $message);
+    }
 }
 
 sub send_email {
Signature · 1 line
2.29.2
author maintainer
#2 lore raw

PATCH 2/2 ktest.pl: Fix the logic for truncating the size of the log file for email

In reply to Steven Rostedt

From: "Steven Rostedt (VMware)" <[email protected]>

The logic for truncating the log file for emailing based on the MAIL_MAX_SIZE option is confusing and incorrect. Simplify it and have the tail of the log file truncated to the max size specified in the config.

Fixes 855d8abd2e8ff ("ktest.pl: Change the logic to control the size of the log file emailed")
---
 tools/testing/ktest/ktest.pl | 13 ++++++-------
 1 file changed, 6 insertions(+), 7 deletions(-)
tools/testing/ktest/ktest.pl +6 -7
index 54f7d008e840..4e2450964517 100755
@@ -1499,17 +1499,16 @@ sub dodie {
 	my $log_file;
 
 	if (defined($opt{"LOG_FILE"})) {
-	    my $whence = 0; # beginning of file
-	    my $pos = $test_log_start;
+	    my $whence = 2; # End of file
+	    my $log_size = tell LOG;
+	    my $size = $log_size - $test_log_start;
 
 	    if (defined($mail_max_size)) {
-		my $log_size = tell LOG;
-		$log_size -= $test_log_start;
-		if ($log_size > $mail_max_size) {
-		    $whence = 2; # end of file
-		    $pos = - $mail_max_size;
+		if ($size > $mail_max_size) {
+		    $size = $mail_max_size;
 		}
 	    }
+	    my $pos = - $size;
 	    $log_file = "$tmpdir/log";
 	    open (L, "$opt{LOG_FILE}") or die "Can't open $opt{LOG_FILE} to read)";
 	    open (O, "> $tmpdir/log") or die "Can't open $tmpdir/log\n";
Signature · 1 line
2.29.2