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()
|
restarter.setArguments(options.preAppArguments + PluginManager::argumentsForRestart()
|
||||||
+ lastSessionArgument());
|
+ 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(),
|
const PluginManager::ProcessData processData = { restarter.executable(),
|
||||||
options.preAppArguments + PluginManager::argumentsForRestart(), restarter.workingPath() };
|
options.preAppArguments + PluginManager::argumentsForRestart(), restarter.workingPath(),
|
||||||
|
settingspath};
|
||||||
PluginManager::setCreatorProcessData(processData);
|
PluginManager::setCreatorProcessData(processData);
|
||||||
|
|
||||||
const PluginSpecSet plugins = PluginManager::plugins();
|
const PluginSpecSet plugins = PluginManager::plugins();
|
||||||
|
@@ -137,6 +137,7 @@ public:
|
|||||||
QString m_executable;
|
QString m_executable;
|
||||||
QStringList m_args;
|
QStringList m_args;
|
||||||
QString m_workingPath;
|
QString m_workingPath;
|
||||||
|
QString m_settingsPath;
|
||||||
};
|
};
|
||||||
|
|
||||||
static void setCreatorProcessData(const ProcessData &data);
|
static void setCreatorProcessData(const ProcessData &data);
|
||||||
|
@@ -310,7 +310,10 @@ void AutoTestUnitTests::testCodeParserBoostTest_data()
|
|||||||
void AutoTestUnitTests::testStringTable()
|
void AutoTestUnitTests::testStringTable()
|
||||||
{
|
{
|
||||||
const PluginManager::ProcessData data = PluginManager::creatorProcessData();
|
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
|
} // namespace Internal
|
||||||
|
Reference in New Issue
Block a user