diff options
-rw-r--r-- | Source/cmUVProcessChain.cxx | 5 | ||||
-rw-r--r-- | Source/cmUVProcessChain.h | 1 | ||||
-rw-r--r-- | Tests/CMakeLib/testUVProcessChain.cxx | 12 |
3 files changed, 18 insertions, 0 deletions
diff --git a/Source/cmUVProcessChain.cxx b/Source/cmUVProcessChain.cxx index 257c054..c2bb11e 100644 --- a/Source/cmUVProcessChain.cxx +++ b/Source/cmUVProcessChain.cxx @@ -420,3 +420,8 @@ const cmUVProcessChain::Status* cmUVProcessChain::GetStatus( } return nullptr; } + +bool cmUVProcessChain::Finished() const +{ + return this->Data->ProcessesCompleted >= this->Data->Processes.size(); +} diff --git a/Source/cmUVProcessChain.h b/Source/cmUVProcessChain.h index 3ade3fd..9e4558e 100644 --- a/Source/cmUVProcessChain.h +++ b/Source/cmUVProcessChain.h @@ -90,6 +90,7 @@ public: bool Wait(int64_t milliseconds = -1); std::vector<const Status*> GetStatus() const; const Status* GetStatus(std::size_t index) const; + bool Finished() const; private: friend class cmUVProcessChainBuilder; diff --git a/Tests/CMakeLib/testUVProcessChain.cxx b/Tests/CMakeLib/testUVProcessChain.cxx index cbb4384..ce6cd6d 100644 --- a/Tests/CMakeLib/testUVProcessChain.cxx +++ b/Tests/CMakeLib/testUVProcessChain.cxx @@ -148,6 +148,10 @@ static bool checkExecution(cmUVProcessChainBuilder& builder, printResults(status, status1); return false; } + if (chain->Finished()) { + std::cout << "Finished() returned true, should be false" << std::endl; + return false; + } if (chain->Wait(6000)) { std::cout << "Wait() returned true, should be false" << std::endl; @@ -159,6 +163,10 @@ static bool checkExecution(cmUVProcessChainBuilder& builder, printResults(status, status2); return false; } + if (chain->Finished()) { + std::cout << "Finished() returned true, should be false" << std::endl; + return false; + } if (!chain->Wait()) { std::cout << "Wait() returned false, should be true" << std::endl; @@ -170,6 +178,10 @@ static bool checkExecution(cmUVProcessChainBuilder& builder, printResults(status, status3); return false; } + if (!chain->Finished()) { + std::cout << "Finished() returned false, should be true" << std::endl; + return false; + } return true; } |