[tools] testbot: Better track job status changes.

Francois Gouget fgouget at codeweavers.com
Thu Jun 16 10:21:26 CDT 2022


Only set OldStatus once to avoid issues in case the status is changed
multiple times before the job is saved.

Signed-off-by: Francois Gouget <fgouget at codeweavers.com>
---
 testbot/lib/WineTestBot/Jobs.pm | 23 +++++------------------
 1 file changed, 5 insertions(+), 18 deletions(-)

diff --git a/testbot/lib/WineTestBot/Jobs.pm b/testbot/lib/WineTestBot/Jobs.pm
index 3da6ae7b0..b54f864da 100644
--- a/testbot/lib/WineTestBot/Jobs.pm
+++ b/testbot/lib/WineTestBot/Jobs.pm
@@ -92,15 +92,6 @@ use WineTestBot::Engine::Notify;
 use WineTestBot::TaskFailures;
 
 
-sub _initialize($$)
-{
-  my ($self, $Collection) = @_;
-
-  $self->SUPER::_initialize($Collection);
-
-  $self->{OldStatus} = undef;
-}
-
 sub InitializeNew($$)
 {
   my ($self, $Collection) = @_;
@@ -171,10 +162,10 @@ sub Status($;$)
   my $CurrentStatus = $self->SUPER::Status;
   return $CurrentStatus if (!defined $NewStatus);
 
-  if (! defined($CurrentStatus) || $NewStatus ne $CurrentStatus)
+  if (!defined $CurrentStatus or $NewStatus ne $CurrentStatus)
   {
+    $self->{OldStatus} ||= $CurrentStatus;
     $self->SUPER::Status($NewStatus);
-    $self->{OldStatus} = $CurrentStatus;
   }
 
   return $NewStatus;
@@ -185,15 +176,11 @@ sub OnSaved($)
   my ($self) = @_;
 
   $self->SUPER::OnSaved();
-
-  if (defined($self->{OldStatus}))
+  if (defined $self->{OldStatus} and $self->{OldStatus} ne $self->Status)
   {
-    my $NewStatus = $self->Status;
-    if ($NewStatus ne $self->{OldStatus})
-    {
-      JobStatusChange($self->GetKey(), $self->{OldStatus}, $NewStatus);
-    }
+    JobStatusChange($self->GetKey(), $self->{OldStatus}, $self->Status);
   }
+  delete $self->{OldStatus};
 }
 
 =pod
-- 
2.30.2




More information about the wine-devel mailing list