summaryrefslogtreecommitdiffstats
path: root/Source/cmCTest.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'Source/cmCTest.cxx')
-rw-r--r--Source/cmCTest.cxx20
1 files changed, 20 insertions, 0 deletions
diff --git a/Source/cmCTest.cxx b/Source/cmCTest.cxx
index 22a6e38..04f75bd 100644
--- a/Source/cmCTest.cxx
+++ b/Source/cmCTest.cxx
@@ -208,6 +208,8 @@ struct cmCTest::Private
bool OutputColorCode = cmCTest::ColoredOutputSupportedByConsole();
std::map<std::string, std::string> Definitions;
+
+ cmCTest::NoTests NoTestsMode = cmCTest::NoTests::Legacy;
};
struct tm* cmCTest::GetNightlyTime(std::string const& str, bool tomorrowtag)
@@ -2059,6 +2061,19 @@ bool cmCTest::HandleCommandLineArguments(size_t& i,
this->SetNotesFiles(args[i].c_str());
}
+ const std::string noTestsPrefix = "--no-tests=";
+ if (cmHasPrefix(arg, noTestsPrefix)) {
+ const std::string noTestsMode = arg.substr(noTestsPrefix.length());
+ if (noTestsMode == "error") {
+ this->Impl->NoTestsMode = cmCTest::NoTests::Error;
+ } else if (noTestsMode != "ignore") {
+ errormsg = "'--no-tests=' given unknown value '" + noTestsMode + "'";
+ return false;
+ } else {
+ this->Impl->NoTestsMode = cmCTest::NoTests::Ignore;
+ }
+ }
+
// options that control what tests are run
if (this->CheckArgument(arg, "-I", "--tests-information") &&
i < args.size() - 1) {
@@ -2896,6 +2911,11 @@ cmCTest::Repeat cmCTest::GetRepeatMode() const
return this->Impl->RepeatMode;
}
+cmCTest::NoTests cmCTest::GetNoTestsMode() const
+{
+ return this->Impl->NoTestsMode;
+}
+
void cmCTest::SetBuildID(const std::string& id)
{
this->Impl->BuildID = id;