summaryrefslogtreecommitdiff
path: root/Source/CTest
diff options
context:
space:
mode:
authorCraig Scott <craig.scott@crascit.com>2017-11-27 22:06:14 +1100
committerCraig Scott <craig.scott@crascit.com>2017-11-29 07:27:20 +1100
commitfbe91dba6a615d799f3ece996ddccdabb819c4dc (patch)
treee685f316ebe2feebd5c94892a30ea06c1c3acee7 /Source/CTest
parentb1d3fb7fba735d829c2cd655830161871827d82e (diff)
downloadcmake-fbe91dba6a615d799f3ece996ddccdabb819c4dc.tar.gz
CTest: Check failed fixture dependencies before test command and args
Diffstat (limited to 'Source/CTest')
-rw-r--r--Source/CTest/cmCTestRunTest.cxx8
1 files changed, 6 insertions, 2 deletions
diff --git a/Source/CTest/cmCTestRunTest.cxx b/Source/CTest/cmCTestRunTest.cxx
index 99531afbc1..5443494556 100644
--- a/Source/CTest/cmCTestRunTest.cxx
+++ b/Source/CTest/cmCTestRunTest.cxx
@@ -432,8 +432,6 @@ bool cmCTestRunTest::StartTest(size_t total)
return false;
}
- this->ComputeArguments();
- std::vector<std::string>& args = this->TestProperties->Args;
this->TestResult.Properties = this->TestProperties;
this->TestResult.ExecutionTime = 0;
this->TestResult.CompressOutput = false;
@@ -444,6 +442,10 @@ bool cmCTestRunTest::StartTest(size_t total)
this->TestResult.Name = this->TestProperties->Name;
this->TestResult.Path = this->TestProperties->Directory;
+ // Check for failed fixture dependencies before we even look at the command
+ // arguments because if we are not going to run the test, the command and
+ // its arguments are irrelevant. This matters for the case where a fixture
+ // dependency might be creating the executable we want to run.
if (!this->FailedDependencies.empty()) {
this->TestProcess = new cmProcess;
std::string msg = "Failed test dependencies:";
@@ -459,6 +461,8 @@ bool cmCTestRunTest::StartTest(size_t total)
return false;
}
+ this->ComputeArguments();
+ std::vector<std::string>& args = this->TestProperties->Args;
if (args.size() >= 2 && args[1] == "NOT_AVAILABLE") {
this->TestProcess = new cmProcess;
std::string msg;