Module: tools Branch: master Commit: b360a0b5e2b0099e8ba3b326ccb9905aa3d4ff6a URL: https://source.winehq.org/git/tools.git/?a=commit;h=b360a0b5e2b0099e8ba3b326...
Author: Francois Gouget fgouget@codeweavers.com Date: Tue Sep 24 11:00:15 2019 +0200
testbot: SetupRedirects() should not depend on prior logging.
Signed-off-by: Francois Gouget fgouget@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
testbot/lib/WineTestBot/Log.pm | 59 +++++++++++++++++++++--------------------- 1 file changed, 30 insertions(+), 29 deletions(-)
diff --git a/testbot/lib/WineTestBot/Log.pm b/testbot/lib/WineTestBot/Log.pm index c39a557..7ac4dab 100644 --- a/testbot/lib/WineTestBot/Log.pm +++ b/testbot/lib/WineTestBot/Log.pm @@ -33,26 +33,28 @@ use WineTestBot::Config;
my $logfile; my $logprefix; -sub LogMsg(@) +sub SetupLogging() { - if (!defined $logfile) + require File::Basename; + $logprefix = File::Basename::basename($0); + $logprefix =~ s/.[^.]*$//; + my $oldumask = umask(002); + if (!open($logfile, ">>", "$LogDir/log")) { - require File::Basename; - $logprefix = File::Basename::basename($0); - $logprefix =~ s/.[^.]*$//; - my $oldumask = umask(002); - if (!open($logfile, ">>", "$LogDir/log")) - { - print STDERR "$logprefix:warning: could not open '$LogDir/log' for writing: $!\n"; - open($logfile, ">>&=", 2); - } - umask($oldumask); - - # Flush after each print - my $tmp=select($logfile); - $| = 1; - select($tmp); + print STDERR "$logprefix:warning: could not open '$LogDir/log' for writing: $!\n"; + open($logfile, ">>&=", 2); } + umask($oldumask); + + # Flush after each print + my $tmp=select($logfile); + $| = 1; + select($tmp); +} + +sub LogMsg(@) +{ + SetupLogging() if (!defined $logfile); print $logfile scalar localtime, " ", $logprefix, "[$$]: ", @_ if ($logfile); }
@@ -75,19 +77,18 @@ exec()-ing external tools so their error messages are not lost.
sub SetupRedirects() { - if (defined $logfile) + SetupLogging() if (!defined $logfile); + + if (open(STDERR, ">>&", $logfile)) + { + # Make sure stderr still flushes after each print + my $tmp = select(STDERR); + $| = 1; + select($tmp); + } + else { - if (open(STDERR, ">>&", $logfile)) - { - # Make sure stderr still flushes after each print - my $tmp=select(STDERR); - $| = 1; - select($tmp); - } - else - { - LogMsg "unable to redirect stderr to '$logfile': $!\n"; - } + LogMsg "unable to redirect stderr to '$logfile': $!\n"; } }