12345678910111213141516171819202122232425262728293031323334353637383940414243 |
- /* Distributed under the OSI-approved BSD 3-Clause License. See accompanying
- file Copyright.txt or https://cmake.org/licensing for details. */
- #include "cmCTestSleepCommand.h"
- #include "cmCTestScriptHandler.h"
- #include <stdlib.h>
- class cmExecutionStatus;
- bool cmCTestSleepCommand::InitialPass(std::vector<std::string> const& args,
- cmExecutionStatus& /*unused*/)
- {
- if (args.empty()) {
- this->SetError("called with incorrect number of arguments");
- return false;
- }
- // sleep for specified seconds
- unsigned int time1 = atoi(args[0].c_str());
- if (args.size() == 1) {
- cmCTestScriptHandler::SleepInSeconds(time1);
- // update the elapsed time since it could have slept for a while
- this->CTestScriptHandler->UpdateElapsedTime();
- return true;
- }
- // sleep up to a duration
- if (args.size() == 3) {
- unsigned int duration = atoi(args[1].c_str());
- unsigned int time2 = atoi(args[2].c_str());
- if (time1 + duration > time2) {
- duration = (time1 + duration - time2);
- cmCTestScriptHandler::SleepInSeconds(duration);
- // update the elapsed time since it could have slept for a while
- this->CTestScriptHandler->UpdateElapsedTime();
- }
- return true;
- }
- this->SetError("called with incorrect number of arguments");
- return false;
- }
|