int a_number; // step number used for xml (informational)
anna::Millisecond a_beginTimestamp; // unix time
anna::Millisecond a_endTimestamp; // unix time
+ bool a_executed; // used for interactive mode in order to not repeat a execution step if before completing, the user add interactive amount
void setBeginTimestamp(const anna::Millisecond &t) throw() { a_beginTimestamp = t; }
const anna::Millisecond &getBeginTimestamp() const throw() { return a_beginTimestamp; }
struct Type { enum _v { Unconfigured, Timeout, Sendxml2e, Sendxml2c, Delay, Wait, Cmd }; };
static const char* asText(const Type::_v type) throw();
- TestStep(TestCase *testCase) : a_message(true), a_messageCodec(NULL) { initialize(testCase); }
+ TestStep(TestCase *testCase) : a_message(true), a_messageCodec(NULL), a_executed(false) { initialize(testCase); }
virtual ~TestStep() {;}
// setter & getters
class TestStepCmd : public TestStep {
std::string a_script;
- std::string a_parameters;
std::thread a_thread;
bool a_threadRunning;
bool a_threadDeprecated;
std::string a_errorMsg;
//std::string a_output; // for POPEN
+ pid_t a_childPid;
+
public:
- TestStepCmd(TestCase *testCase) : TestStep(testCase), a_threadRunning(false), a_threadDeprecated(false), a_resultCode(-2)/*, a_output("")*/, a_errorMsg("") { a_type = Type::Cmd; }
+ TestStepCmd(TestCase *testCase) : TestStep(testCase), a_threadRunning(false), a_threadDeprecated(false), a_resultCode(-2)/*, a_output("")*/, a_errorMsg(""), a_childPid(-1) { a_type = Type::Cmd; }
// setter & getters
void setThreadRunning(bool running) throw() { a_threadRunning = running; }
- //bool getThreadRunning() const throw() { return a_threadRunning; }
- //void setThreadDeprecated(bool deprecated) throw() { a_threadDeprecated = deprecated; }
- //bool getThreadDeprecated() const throw() { return a_threadDeprecated; }
void setResultCode(int rc) throw() { a_resultCode = rc; }
int getResultCode() const throw() { return a_resultCode; }
const std::string &getErrorMsg() const throw() { return a_errorMsg; }
//void appendOutput(const std::string &output) throw() { a_output += output; }
//const std::string &getOutput() const throw() { return a_output; }
+ void setChildPid(pid_t pid) throw() { a_childPid = pid; }
+ const pid_t &getChildPid() const throw() { return a_childPid; }
void setScript(const std::string &script) throw() { a_script = script; }
const std::string &getScript() const throw() { return a_script; }
- void setParameters(const std::string ¶ms) throw() { a_parameters = params; }
- const std::string &getParameters() const throw() { return a_parameters; }
// virtuals
bool do_execute() throw();