void Launcher::signalUSR2() throw(anna::RuntimeException) {
LOGNOTICE(
- std::string msg = "Captured signal SIGUSR2. Reading tasks at '";
+ std::string msg = "Captured signal SIGUSR2. Reading tasks at '";
msg += SIGUSR2_TASKS_INPUT_FILENAME;
msg += "' (results will be written at '";
msg += SIGUSR2_TASKS_OUTPUT_FILENAME;
std::ofstream out_file(SIGUSR2_TASKS_OUTPUT_FILENAME);
if(!in_file.is_open()) throw RuntimeException("Unable to read tasks", ANNA_FILE_LOCATION);
-
if(!out_file.is_open()) throw RuntimeException("Unable to write tasks", ANNA_FILE_LOCATION);
while(getline(in_file, line)) {
}
in_file.close();
+ out_file << "EOF\n";
out_file.close();
}
result += "\n";
result += "\n delay|<msecs> Blocking step until the time lapse expires. Useful to give ";
result += "\n some cadence control and time schedule for a specific case.";
+ result += "\n A value of 0 could be used as a dummy step.";
result += "\n wait<fe/fc>|<condition> Blocking step until condition is fulfilled. The message could";
result += "\n received from entity (waitfe) or from client (waitfc).";
result += "\n";
result += "\n and then see the results:";
result += "\n cat "; result += SIGUSR2_TASKS_OUTPUT_FILENAME;
result += "\n";
+ result += "\n (this file is ended with EOF final line, useful managing huge batch files to ensure the job completion)";
+ result += "\n";
result += "\nYou could place more than one line (task) in the input file. Output reports will be appended in that";
result += "\n case over the output file. Take into account that all the content of the task file will be executed";
result += "\n sinchronously by the process. If you are planning traffic load, better use the asynchronous http";
if (numParams > 3)
throw anna::RuntimeException("Wrong body content format on HTTP Request. Use 'help' management command to see more information.", ANNA_FILE_LOCATION);
if(param3 == "") throw anna::RuntimeException("Missing milliseconds for 'delay' command in test id operation", ANNA_FILE_LOCATION);
- anna::Millisecond delay = checkTimeMeasure("Test case delay step", param3);
+ anna::Millisecond delay = ((param3 == "0" /* special case */) ? (anna::Millisecond)0 : checkTimeMeasure("Test case delay step", param3));
testManager.getTestCase(id)->addDelay(delay); // creates / reuses
}
else if ((param2 == "waitfe")||(param2 == "waitfc")) {