diff options
author | hjk <hjk@qt.io> | 2020-03-26 09:21:25 +0100 |
---|---|---|
committer | hjk <hjk@qt.io> | 2020-03-26 16:46:17 +0000 |
commit | f3c1751965e0321f3b5b980162d03f994da1cb5f (patch) | |
tree | 4ee3a25d326bd647e3e426f2c64c0fe3ee4ef411 /src/plugins/autotest/autotestplugin.cpp | |
parent | bac32dc740ed5f454ec03c5d97d6c9396ffda0d4 (diff) |
Autotest: Move Test{FrameWorkManager,Runner} singletons
Make them plugin-pimpl data members, removing some indirections.
Change-Id: Ie441ac94a27f07342513b0b5b1437ccfe4b5d7d2
Reviewed-by: Christian Stenger <christian.stenger@qt.io>
Diffstat (limited to 'src/plugins/autotest/autotestplugin.cpp')
-rw-r--r-- | src/plugins/autotest/autotestplugin.cpp | 39 |
1 files changed, 17 insertions, 22 deletions
diff --git a/src/plugins/autotest/autotestplugin.cpp b/src/plugins/autotest/autotestplugin.cpp index 9e37f7bb0f4..a0084ee65cf 100644 --- a/src/plugins/autotest/autotestplugin.cpp +++ b/src/plugins/autotest/autotestplugin.cpp @@ -89,7 +89,6 @@ public: AutotestPluginPrivate(); ~AutotestPluginPrivate() override; - TestFrameworkManager *m_frameworkManager = nullptr; TestNavigationWidgetFactory *m_navigationWidgetFactory = nullptr; TestResultsPane *m_resultsPane = nullptr; QMap<QString, ChoicePair> m_runconfigCache; @@ -105,6 +104,8 @@ public: TestCodeParser m_testCodeParser; TestTreeModel m_testTreeModel{&m_testCodeParser}; + TestRunner m_testRunner; + TestFrameworkManager m_frameworkManager; }; static AutotestPluginPrivate *dd = nullptr; @@ -127,14 +128,13 @@ AutotestPlugin::~AutotestPlugin() AutotestPluginPrivate::AutotestPluginPrivate() { dd = this; // Needed as the code below access it via the static plugin interface - m_frameworkManager = TestFrameworkManager::instance(); initializeMenuEntries(); - m_frameworkManager->registerTestFramework(new QtTestFramework); - m_frameworkManager->registerTestFramework(new QuickTestFramework); - m_frameworkManager->registerTestFramework(new GTestFramework); - m_frameworkManager->registerTestFramework(new BoostTestFramework); + m_frameworkManager.registerTestFramework(new QtTestFramework); + m_frameworkManager.registerTestFramework(new QuickTestFramework); + m_frameworkManager.registerTestFramework(new GTestFramework); + m_frameworkManager.registerTestFramework(new BoostTestFramework); - m_frameworkManager->synchronizeSettings(ICore::settings()); + m_frameworkManager.synchronizeSettings(ICore::settings()); m_navigationWidgetFactory = new TestNavigationWidgetFactory; m_resultsPane = TestResultsPane::instance(); @@ -147,7 +147,7 @@ AutotestPluginPrivate::AutotestPluginPrivate() }); ProjectExplorer::ProjectPanelFactory::registerFactory(panelFactory); - m_frameworkManager->activateFrameworksFromSettings(&m_settings); + m_frameworkManager.activateFrameworksFromSettings(&m_settings); m_testTreeModel.synchronizeTestFrameworks(); auto sessionManager = ProjectExplorer::SessionManager::instance(); @@ -173,7 +173,6 @@ AutotestPluginPrivate::~AutotestPluginPrivate() delete m_navigationWidgetFactory; delete m_resultsPane; - delete m_frameworkManager; } TestSettings *AutotestPlugin::settings() @@ -298,16 +297,14 @@ ExtensionSystem::IPlugin::ShutdownFlag AutotestPlugin::aboutToShutdown() void AutotestPluginPrivate::onRunAllTriggered() { - TestRunner *runner = TestRunner::instance(); - runner->setSelectedTests(m_testTreeModel.getAllTestCases()); - runner->prepareToRunTests(TestRunMode::Run); + m_testRunner.setSelectedTests(m_testTreeModel.getAllTestCases()); + m_testRunner.prepareToRunTests(TestRunMode::Run); } void AutotestPluginPrivate::onRunSelectedTriggered() { - TestRunner *runner = TestRunner::instance(); - runner->setSelectedTests(m_testTreeModel.getSelectedTests()); - runner->prepareToRunTests(TestRunMode::Run); + m_testRunner.setSelectedTests(m_testTreeModel.getSelectedTests()); + m_testRunner.prepareToRunTests(TestRunMode::Run); } void AutotestPluginPrivate::onRunFileTriggered() @@ -324,9 +321,8 @@ void AutotestPluginPrivate::onRunFileTriggered() if (tests.isEmpty()) return; - TestRunner *runner = TestRunner::instance(); - runner->setSelectedTests(tests); - runner->prepareToRunTests(TestRunMode::Run); + m_testRunner.setSelectedTests(tests); + m_testRunner.prepareToRunTests(TestRunMode::Run); } static QList<TestConfiguration *> testItemsToTestConfigurations(const QList<TestTreeItem *> &items, @@ -368,16 +364,15 @@ void AutotestPluginPrivate::onRunUnderCursorTriggered(TestRunMode mode) return; } - auto runner = TestRunner::instance(); - runner->setSelectedTests(testsToRun); - runner->prepareToRunTests(mode); + m_testRunner.setSelectedTests(testsToRun); + m_testRunner.prepareToRunTests(mode); } void AutotestPlugin::updateMenuItemsEnabledState() { const ProjectExplorer::Project *project = ProjectExplorer::SessionManager::startupProject(); const ProjectExplorer::Target *target = project ? project->activeTarget() : nullptr; - const bool canScan = !TestRunner::instance()->isTestRunning() + const bool canScan = !dd->m_testRunner.isTestRunning() && dd->m_testCodeParser.state() == TestCodeParser::Idle; const bool hasTests = dd->m_testTreeModel.hasTests(); // avoid expensive call to PE::canRunStartupProject() - limit to minimum necessary checks |