Francois Gouget : testbot: Fix the main WineTestBot modules circular dependencies.

Alexandre Julliard julliard at winehq.org
Thu Apr 26 13:32:13 CDT 2018


Module: tools
Branch: master
Commit: 118132e71d6fd8b8c536ecd6d0b625d91ca446ac
URL:    https://source.winehq.org/git/tools.git/?a=commit;h=118132e71d6fd8b8c536ecd6d0b625d91ca446ac

Author: Francois Gouget <fgouget at codeweavers.com>
Date:   Thu Apr 26 09:45:33 2018 +0200

testbot: Fix the main WineTestBot modules circular dependencies.

The main WineTestBot modules, those that implement access to the
database, are prone to having circular dependencies. This is for
instance the case between Jobs and Patches.  Failure to handle these
can force the use of fully qualified function names in hard to predict
cases.  So to avoid these issues, systematically declare the exports
in a BEGIN block so they happen early enough.

Signed-off-by: Francois Gouget <fgouget at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 testbot/lib/WineTestBot/Branches.pm         | 7 +++++--
 testbot/lib/WineTestBot/Jobs.pm             | 7 +++++--
 testbot/lib/WineTestBot/Patches.pm          | 7 +++++--
 testbot/lib/WineTestBot/PendingPatchSets.pm | 7 +++++--
 testbot/lib/WineTestBot/PendingPatches.pm   | 7 +++++--
 testbot/lib/WineTestBot/RecordGroups.pm     | 7 +++++--
 testbot/lib/WineTestBot/Records.pm          | 7 +++++--
 testbot/lib/WineTestBot/Roles.pm            | 7 +++++--
 testbot/lib/WineTestBot/Steps.pm            | 7 +++++--
 testbot/lib/WineTestBot/StepsTasks.pm       | 7 +++++--
 testbot/lib/WineTestBot/Tasks.pm            | 7 +++++--
 testbot/lib/WineTestBot/UserRoles.pm        | 7 +++++--
 testbot/lib/WineTestBot/Users.pm            | 7 +++++--
 testbot/lib/WineTestBot/VMs.pm              | 7 +++++--
 14 files changed, 70 insertions(+), 28 deletions(-)

diff --git a/testbot/lib/WineTestBot/Branches.pm b/testbot/lib/WineTestBot/Branches.pm
index a18fafc..96cf26e 100644
--- a/testbot/lib/WineTestBot/Branches.pm
+++ b/testbot/lib/WineTestBot/Branches.pm
@@ -51,8 +51,11 @@ WineTestBot::Branches - A collection of WineTestBot::Branch objects
 
 use Exporter 'import';
 use WineTestBot::WineTestBotObjects;
-our @ISA = qw(WineTestBot::WineTestBotCollection);
-our @EXPORT = qw(CreateBranches);
+BEGIN
+{
+  our @ISA = qw(WineTestBot::WineTestBotCollection);
+  our @EXPORT = qw(CreateBranches);
+}
 
 use ObjectModel::BasicPropertyDescriptor;
 
diff --git a/testbot/lib/WineTestBot/Jobs.pm b/testbot/lib/WineTestBot/Jobs.pm
index 0f80193..edfe916 100644
--- a/testbot/lib/WineTestBot/Jobs.pm
+++ b/testbot/lib/WineTestBot/Jobs.pm
@@ -396,8 +396,11 @@ those that are yet to be run.
 
 use Exporter 'import';
 use WineTestBot::WineTestBotObjects;
-our @ISA = qw(WineTestBot::WineTestBotCollection);
-our @EXPORT = qw(CreateJobs ScheduleJobs CheckJobs);
+BEGIN
+{
+  our @ISA = qw(WineTestBot::WineTestBotCollection);
+  our @EXPORT = qw(CreateJobs ScheduleJobs CheckJobs);
+}
 
 use ObjectModel::BasicPropertyDescriptor;
 use ObjectModel::EnumPropertyDescriptor;
diff --git a/testbot/lib/WineTestBot/Patches.pm b/testbot/lib/WineTestBot/Patches.pm
index e4b9b00..5431d9f 100644
--- a/testbot/lib/WineTestBot/Patches.pm
+++ b/testbot/lib/WineTestBot/Patches.pm
@@ -366,8 +366,11 @@ WineTestBot::Patches - A collection of WineTestBot::Patch objects
 
 use Exporter 'import';
 use WineTestBot::WineTestBotObjects;
-our @ISA = qw(WineTestBot::WineTestBotCollection);
-our @EXPORT = qw(CreatePatches);
+BEGIN
+{
+  our @ISA = qw(WineTestBot::WineTestBotCollection);
+  our @EXPORT = qw(CreatePatches);
+}
 
 use ObjectModel::BasicPropertyDescriptor;
 use WineTestBot::Config;
diff --git a/testbot/lib/WineTestBot/PendingPatchSets.pm b/testbot/lib/WineTestBot/PendingPatchSets.pm
index 88dc736..26a5642 100644
--- a/testbot/lib/WineTestBot/PendingPatchSets.pm
+++ b/testbot/lib/WineTestBot/PendingPatchSets.pm
@@ -153,8 +153,11 @@ WineTestBot::PendingPatchSets - A collection of WineTestBot::PendingPatchSet obj
 
 use Exporter 'import';
 use WineTestBot::WineTestBotObjects;
-our @ISA = qw(WineTestBot::WineTestBotCollection);
-our @EXPORT = qw(CreatePendingPatchSets);
+BEGIN
+{
+  our @ISA = qw(WineTestBot::WineTestBotCollection);
+  our @EXPORT = qw(CreatePendingPatchSets);
+}
 
 use ObjectModel::BasicPropertyDescriptor;
 use ObjectModel::DetailrefPropertyDescriptor;
diff --git a/testbot/lib/WineTestBot/PendingPatches.pm b/testbot/lib/WineTestBot/PendingPatches.pm
index 4de599d..414ebd0 100644
--- a/testbot/lib/WineTestBot/PendingPatches.pm
+++ b/testbot/lib/WineTestBot/PendingPatches.pm
@@ -45,8 +45,11 @@ WineTestBot::PendingPatches - A collection of WineTestBot::PendingPatch objects
 
 use Exporter 'import';
 use WineTestBot::WineTestBotObjects;
-our @ISA = qw(WineTestBot::WineTestBotCollection);
-our @EXPORT = qw(CreatePendingPatches);
+BEGIN
+{
+  our @ISA = qw(WineTestBot::WineTestBotCollection);
+  our @EXPORT = qw(CreatePendingPatches);
+}
 
 use ObjectModel::BasicPropertyDescriptor;
 use ObjectModel::ItemrefPropertyDescriptor;
diff --git a/testbot/lib/WineTestBot/RecordGroups.pm b/testbot/lib/WineTestBot/RecordGroups.pm
index 9f0f520..27cedfe 100644
--- a/testbot/lib/WineTestBot/RecordGroups.pm
+++ b/testbot/lib/WineTestBot/RecordGroups.pm
@@ -54,8 +54,11 @@ WineTestBot::RecordGroups - A collection of WineTestBot::RecordGroup objects
 
 use Exporter 'import';
 use WineTestBot::WineTestBotObjects;
-our @ISA = qw(WineTestBot::WineTestBotCollection);
-our @EXPORT = qw(CreateRecordGroups CompareRecordGroups SaveRecord);
+BEGIN
+{
+  our @ISA = qw(WineTestBot::WineTestBotCollection);
+  our @EXPORT = qw(CreateRecordGroups CompareRecordGroups SaveRecord);
+}
 
 use ObjectModel::BasicPropertyDescriptor;
 use ObjectModel::DetailrefPropertyDescriptor;
diff --git a/testbot/lib/WineTestBot/Records.pm b/testbot/lib/WineTestBot/Records.pm
index 990ae42..a3302af 100644
--- a/testbot/lib/WineTestBot/Records.pm
+++ b/testbot/lib/WineTestBot/Records.pm
@@ -62,8 +62,11 @@ WineTestBot::Records - A collection of WineTestBot::Record objects
 
 use Exporter 'import';
 use WineTestBot::WineTestBotObjects;
-our @ISA = qw(WineTestBot::WineTestBotCollection);
-our @EXPORT = qw(CreateRecords);
+BEGIN
+{
+  our @ISA = qw(WineTestBot::WineTestBotCollection);
+  our @EXPORT = qw(CreateRecords);
+}
 
 use ObjectModel::BasicPropertyDescriptor;
 use ObjectModel::EnumPropertyDescriptor;
diff --git a/testbot/lib/WineTestBot/Roles.pm b/testbot/lib/WineTestBot/Roles.pm
index 45f370f..c37de63 100644
--- a/testbot/lib/WineTestBot/Roles.pm
+++ b/testbot/lib/WineTestBot/Roles.pm
@@ -43,8 +43,11 @@ WineTestBot::Roles - A collection of WineTestBot::Role objects
 
 use Exporter 'import';
 use WineTestBot::WineTestBotObjects;
-our @ISA = qw(WineTestBot::WineTestBotCollection);
-our @EXPORT = qw(CreateRoles);
+BEGIN
+{
+  our @ISA = qw(WineTestBot::WineTestBotCollection);
+  our @EXPORT = qw(CreateRoles);
+}
 
 use ObjectModel::BasicPropertyDescriptor;
 
diff --git a/testbot/lib/WineTestBot/Steps.pm b/testbot/lib/WineTestBot/Steps.pm
index 2373473..635092d 100644
--- a/testbot/lib/WineTestBot/Steps.pm
+++ b/testbot/lib/WineTestBot/Steps.pm
@@ -184,8 +184,11 @@ WineTestBot::Steps - A collection of Job Steps
 
 use Exporter 'import';
 use WineTestBot::WineTestBotObjects;
-our @ISA = qw(WineTestBot::WineTestBotCollection);
-our @EXPORT = qw(CreateSteps);
+BEGIN
+{
+  our @ISA = qw(WineTestBot::WineTestBotCollection);
+  our @EXPORT = qw(CreateSteps);
+}
 
 use ObjectModel::BasicPropertyDescriptor;
 use ObjectModel::EnumPropertyDescriptor;
diff --git a/testbot/lib/WineTestBot/StepsTasks.pm b/testbot/lib/WineTestBot/StepsTasks.pm
index 9dec806..232efe5 100644
--- a/testbot/lib/WineTestBot/StepsTasks.pm
+++ b/testbot/lib/WineTestBot/StepsTasks.pm
@@ -98,8 +98,11 @@ a specific database table.
 
 use Exporter 'import';
 use WineTestBot::WineTestBotObjects;
-our @ISA = qw(WineTestBot::WineTestBotCollection);
-our @EXPORT = qw(CreateStepsTasks);
+BEGIN
+{
+  our @ISA = qw(WineTestBot::WineTestBotCollection);
+  our @EXPORT = qw(CreateStepsTasks);
+}
 
 use ObjectModel::BasicPropertyDescriptor;
 use ObjectModel::ItemrefPropertyDescriptor;
diff --git a/testbot/lib/WineTestBot/Tasks.pm b/testbot/lib/WineTestBot/Tasks.pm
index 4473df2..0cb2e7b 100644
--- a/testbot/lib/WineTestBot/Tasks.pm
+++ b/testbot/lib/WineTestBot/Tasks.pm
@@ -202,8 +202,11 @@ WineTestBot::Tasks - A collection of WineTestBot::Task objects
 
 use Exporter 'import';
 use WineTestBot::WineTestBotObjects;
-our @ISA = qw(WineTestBot::WineTestBotCollection);
-our @EXPORT = qw(CreateTasks);
+BEGIN
+{
+  our @ISA = qw(WineTestBot::WineTestBotCollection);
+  our @EXPORT = qw(CreateTasks);
+}
 
 use ObjectModel::BasicPropertyDescriptor;
 use ObjectModel::EnumPropertyDescriptor;
diff --git a/testbot/lib/WineTestBot/UserRoles.pm b/testbot/lib/WineTestBot/UserRoles.pm
index 585537a..e01cd9d 100644
--- a/testbot/lib/WineTestBot/UserRoles.pm
+++ b/testbot/lib/WineTestBot/UserRoles.pm
@@ -39,8 +39,11 @@ WineTestBot::UserRoles - A collection of WineTestBot::UserRole objects
 
 use Exporter 'import';
 use WineTestBot::WineTestBotObjects;
-our @ISA = qw(WineTestBot::WineTestBotCollection);
-our @EXPORT = qw(CreateUserRoles);
+BEGIN
+{
+  our @ISA = qw(WineTestBot::WineTestBotCollection);
+  our @EXPORT = qw(CreateUserRoles);
+}
 
 use ObjectModel::BasicPropertyDescriptor;
 use ObjectModel::ItemrefPropertyDescriptor;
diff --git a/testbot/lib/WineTestBot/Users.pm b/testbot/lib/WineTestBot/Users.pm
index 4752006..f7ebd93 100644
--- a/testbot/lib/WineTestBot/Users.pm
+++ b/testbot/lib/WineTestBot/Users.pm
@@ -296,8 +296,11 @@ WineTestBot::Users - A collection of WineTestBot::User objects
 
 use Exporter 'import';
 use WineTestBot::WineTestBotObjects;
-our @ISA = qw(WineTestBot::WineTestBotCollection);
-our @EXPORT = qw(CreateUsers GetBatchUser Authenticate);
+BEGIN
+{
+  our @ISA = qw(WineTestBot::WineTestBotCollection);
+  our @EXPORT = qw(CreateUsers GetBatchUser Authenticate);
+}
 
 use Net::LDAP;
 use ObjectModel::BasicPropertyDescriptor;
diff --git a/testbot/lib/WineTestBot/VMs.pm b/testbot/lib/WineTestBot/VMs.pm
index b6305e8..c3a4a30 100644
--- a/testbot/lib/WineTestBot/VMs.pm
+++ b/testbot/lib/WineTestBot/VMs.pm
@@ -637,8 +637,11 @@ role or status.
 
 use Exporter 'import';
 use WineTestBot::WineTestBotObjects;
-our @ISA = qw(WineTestBot::WineTestBotCollection);
-our @EXPORT = qw(CreateVMs);
+BEGIN
+{
+  our @ISA = qw(WineTestBot::WineTestBotCollection);
+  our @EXPORT = qw(CreateVMs);
+}
 
 use ObjectModel::BasicPropertyDescriptor;
 use ObjectModel::EnumPropertyDescriptor;




More information about the wine-cvs mailing list