Francois Gouget : testbot/lib: Pass the Step object to Task::Run() so it does not have to look it up.
Alexandre Julliard
julliard at winehq.org
Tue May 6 12:32:38 CDT 2014
Module: tools
Branch: master
Commit: 25d01cd2b4496290c5fc0b257e72efc04d2734f3
URL: http://source.winehq.org/git/tools.git/?a=commit;h=25d01cd2b4496290c5fc0b257e72efc04d2734f3
Author: Francois Gouget <fgouget at codeweavers.com>
Date: Tue May 6 12:41:31 2014 +0200
testbot/lib: Pass the Step object to Task::Run() so it does not have to look it up.
---
testbot/lib/WineTestBot/Jobs.pm | 4 ++--
testbot/lib/WineTestBot/Tasks.pm | 16 ++++++----------
2 files changed, 8 insertions(+), 12 deletions(-)
diff --git a/testbot/lib/WineTestBot/Jobs.pm b/testbot/lib/WineTestBot/Jobs.pm
index 8e36a32..b042bea 100644
--- a/testbot/lib/WineTestBot/Jobs.pm
+++ b/testbot/lib/WineTestBot/Jobs.pm
@@ -1,5 +1,5 @@
# Copyright 2009 Ge van Geldorp
-# Copyright 2012 Francois Gouget
+# Copyright 2012-2014 Francois Gouget
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
@@ -511,7 +511,7 @@ sub ScheduleOnHost($$$)
my ($ErrProperty, $ErrMessage) = $VM->Save();
return $ErrMessage if (defined $ErrMessage);
- $ErrMessage = $Task->Run($Job->Id, $Step->No);
+ $ErrMessage = $Task->Run($Step);
return $ErrMessage if (defined $ErrMessage);
$Job->UpdateStatus();
diff --git a/testbot/lib/WineTestBot/Tasks.pm b/testbot/lib/WineTestBot/Tasks.pm
index 28e0727..fd848f2 100644
--- a/testbot/lib/WineTestBot/Tasks.pm
+++ b/testbot/lib/WineTestBot/Tasks.pm
@@ -1,5 +1,5 @@
# Copyright 2009 Ge van Geldorp
-# Copyright 2012 Francois Gouget
+# Copyright 2012-2014 Francois Gouget
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
@@ -72,16 +72,13 @@ Where $Type corresponds to the Task's type.
=back
=cut
-sub Run
+sub Run($$)
{
- my $self = shift;
- my ($JobId, $StepNo) = @_;
+ my ($self, $Step) = @_;
$self->Status("running");
$self->Save();
- my $Job = WineTestBot::Jobs::CreateJobs()->GetItem($JobId);
- my $Step = $Job->Steps->GetItem($StepNo);
my $RunScript;
if ($Step->Type eq "build")
{
@@ -95,8 +92,6 @@ sub Run
{
$RunScript = "RunTask.pl";
}
- $Step = undef;
- $Job = undef;
$self->GetBackEnd()->PrepareForFork();
my $Pid = fork;
@@ -107,7 +102,8 @@ sub Run
elsif (!$Pid)
{
# Capture Perl errors in the task's generic error log
- my $TaskDir = "$DataDir/jobs/$JobId/$StepNo/" . $self->No;
+ my ($JobId, $StepNo, $TaskNo) = @{$self->GetMasterKey()};
+ my $TaskDir = "$DataDir/jobs/$JobId/$StepNo/$TaskNo";
mkdir $TaskDir;
unlink "$TaskDir/err"; # truncate the log since this is a new run
if (open(STDERR, ">>", "$TaskDir/err"))
@@ -123,7 +119,7 @@ sub Run
}
$ENV{PATH} = "/usr/bin:/bin";
delete $ENV{ENV};
- exec("$BinDir/${ProjectName}$RunScript", $JobId, $StepNo, $self->No) or
+ exec("$BinDir/${ProjectName}$RunScript", $JobId, $StepNo, $TaskNo) or
require WineTestBot::Log;
WineTestBot::Log::LogMsg("Unable to exec ${ProjectName}$RunScript: $!\n");
exit(1);
More information about the wine-cvs
mailing list