Nim: Add Nimble test run configuration

Change-Id: Ifafe1032e4f3d81f62ba5ac0d5fb007dac473f58
Reviewed-by: hjk <hjk@qt.io>
Reviewed-by: Tobias Hunger <tobias.hunger@qt.io>
This commit is contained in:
Filippo Cucchetto
2019-11-05 18:51:28 +01:00
parent e0c073a1bf
commit b94688035e
3 changed files with 41 additions and 7 deletions

View File

@@ -74,6 +74,7 @@ public:
NimbleBuildConfigurationFactory nimbleBuildConfigFactory; NimbleBuildConfigurationFactory nimbleBuildConfigFactory;
NimRunConfigurationFactory nimRunConfigFactory; NimRunConfigurationFactory nimRunConfigFactory;
NimbleRunConfigurationFactory nimbleRunConfigFactory; NimbleRunConfigurationFactory nimbleRunConfigFactory;
NimbleTestConfigurationFactory nimbleTestConfigFactory;
RunWorkerFactory nimRunWorkerFactory { RunWorkerFactory nimRunWorkerFactory {
RunWorkerFactory::make<SimpleTargetRunner>(), RunWorkerFactory::make<SimpleTargetRunner>(),
{ProjectExplorer::Constants::NORMAL_RUN_MODE}, {ProjectExplorer::Constants::NORMAL_RUN_MODE},
@@ -84,6 +85,11 @@ public:
{ProjectExplorer::Constants::NORMAL_RUN_MODE}, {ProjectExplorer::Constants::NORMAL_RUN_MODE},
{nimbleRunConfigFactory.id()} {nimbleRunConfigFactory.id()}
}; };
RunWorkerFactory nimbleTestWorkerFactory {
RunWorkerFactory::make<SimpleTargetRunner>(),
{ProjectExplorer::Constants::NORMAL_RUN_MODE},
{nimbleTestConfigFactory.id()}
};
NimbleBuildStepFactory nimbleBuildStepFactory; NimbleBuildStepFactory nimbleBuildStepFactory;
NimbleTaskStepFactory nimbleTaskStepFactory; NimbleTaskStepFactory nimbleTaskStepFactory;
NimCompilerBuildStepFactory buildStepFactory; NimCompilerBuildStepFactory buildStepFactory;

View File

@@ -35,6 +35,8 @@
#include <utils/algorithm.h> #include <utils/algorithm.h>
#include <utils/environment.h> #include <utils/environment.h>
#include <QStandardPaths>
using namespace Nim; using namespace Nim;
using namespace ProjectExplorer; using namespace ProjectExplorer;
@@ -60,11 +62,6 @@ NimbleRunConfiguration::NimbleRunConfiguration(ProjectExplorer::Target *target,
updateTargetInformation(); updateTargetInformation();
} }
NimbleRunConfiguration::~NimbleRunConfiguration()
{
}
void NimbleRunConfiguration::updateTargetInformation() void NimbleRunConfiguration::updateTargetInformation()
{ {
BuildTargetInfo bti = buildTargetInfo(); BuildTargetInfo bti = buildTargetInfo();
@@ -108,3 +105,22 @@ QList<RunConfigurationCreationInfo> NimbleRunConfigurationFactory::availableCrea
{ {
return RunConfigurationFactory::availableCreators(parent); return RunConfigurationFactory::availableCreators(parent);
} }
NimbleTestConfiguration::NimbleTestConfiguration(Target *target, Core::Id id)
: RunConfiguration(target, id)
{
addAspect<ExecutableAspect>()->setExecutable(Utils::FilePath::fromString(QStandardPaths::findExecutable("nimble")));
addAspect<ArgumentsAspect>()->setArguments("test");
addAspect<WorkingDirectoryAspect>()->setDefaultWorkingDirectory(project()->projectDirectory());
addAspect<TerminalAspect>();
setDisplayName(tr("Nimble Test"));
setDefaultDisplayName(tr("Nimble Test"));
}
NimbleTestConfigurationFactory::NimbleTestConfigurationFactory()
: FixedRunConfigurationFactory(QString())
{
registerRunConfiguration<NimbleTestConfiguration>("Nim.NimbleTestConfiguration");
addSupportedProjectType(Constants::C_NIMBLEPROJECT_ID);
}

View File

@@ -36,8 +36,6 @@ class NimbleRunConfiguration : public ProjectExplorer::RunConfiguration
public: public:
NimbleRunConfiguration(ProjectExplorer::Target *target, Core::Id id); NimbleRunConfiguration(ProjectExplorer::Target *target, Core::Id id);
~NimbleRunConfiguration();
QString disabledReason() const override; QString disabledReason() const override;
protected: protected:
@@ -58,4 +56,18 @@ protected:
QList<ProjectExplorer::RunConfigurationCreationInfo> availableCreators(ProjectExplorer::Target *parent) const override; QList<ProjectExplorer::RunConfigurationCreationInfo> availableCreators(ProjectExplorer::Target *parent) const override;
}; };
class NimbleTestConfiguration : public ProjectExplorer::RunConfiguration
{
Q_OBJECT
public:
NimbleTestConfiguration(ProjectExplorer::Target *target, Core::Id id);
};
class NimbleTestConfigurationFactory : public ProjectExplorer::FixedRunConfigurationFactory
{
public:
NimbleTestConfigurationFactory();
};
} }