forked from qt-creator/qt-creator
Fix execution of scenario
There are different ways of having a settingspath for QC. If the settingspath is not provided for starting QC we may use the global settings or a temporarily created settings folder. To correctly run the test scenario from inside a plugin unit test we need to have the same environment and settings. Change-Id: I5dcc61e162258a0af8d3c8df2e63255d0e35f464 Reviewed-by: Jarek Kobus <jaroslaw.kobus@qt.io>
This commit is contained in:
@@ -698,8 +698,12 @@ int main(int argc, char **argv)
|
||||
}
|
||||
restarter.setArguments(options.preAppArguments + PluginManager::argumentsForRestart()
|
||||
+ lastSessionArgument());
|
||||
// if settingspath is not provided we need to pass on the settings in use
|
||||
const QString settingspath = options.preAppArguments.contains(QLatin1String(SETTINGS_OPTION))
|
||||
? QString() : options.settingsPath;
|
||||
const PluginManager::ProcessData processData = { restarter.executable(),
|
||||
options.preAppArguments + PluginManager::argumentsForRestart(), restarter.workingPath() };
|
||||
options.preAppArguments + PluginManager::argumentsForRestart(), restarter.workingPath(),
|
||||
settingspath};
|
||||
PluginManager::setCreatorProcessData(processData);
|
||||
|
||||
const PluginSpecSet plugins = PluginManager::plugins();
|
||||
|
@@ -137,6 +137,7 @@ public:
|
||||
QString m_executable;
|
||||
QStringList m_args;
|
||||
QString m_workingPath;
|
||||
QString m_settingsPath;
|
||||
};
|
||||
|
||||
static void setCreatorProcessData(const ProcessData &data);
|
||||
|
@@ -310,7 +310,10 @@ void AutoTestUnitTests::testCodeParserBoostTest_data()
|
||||
void AutoTestUnitTests::testStringTable()
|
||||
{
|
||||
const PluginManager::ProcessData data = PluginManager::creatorProcessData();
|
||||
QCOMPARE(QProcess::execute(data.m_executable, data.m_args + QStringList({ "-scenario", "TestStringTable" })), 0);
|
||||
QStringList additionalArgs{ "-scenario", "TestStringTable" };
|
||||
if (!data.m_args.contains("-settingspath") && !data.m_settingsPath.isEmpty())
|
||||
additionalArgs << "-settingspath" << data.m_settingsPath;
|
||||
QCOMPARE(QProcess::execute(data.m_executable, data.m_args + additionalArgs), 0);
|
||||
}
|
||||
|
||||
} // namespace Internal
|
||||
|
Reference in New Issue
Block a user