31 void kill(
int signal = SIGTERM);
45 std::vector<const char *> args_cstr;
46 for(
auto&
a : args) args_cstr.push_back(
a.c_str());
47 args_cstr.push_back(
nullptr);
49 char ** argv = (
char**)args_cstr.data();
56 throw std::runtime_error(
"Unable to fork()");
61 ::execvp(argv[0], argv);
63 throw std::runtime_error(
"Unknown command");
71 while(::waitpid(
_pid, &status, 0) !=
_pid);
72 printf(
"Child process '%s' exited with status %d\n",
_name.c_str(), status);
80 printf(
"Killed process '%s' with signal %d\n",
_name.c_str(), signal);
115 std::ifstream
urdf(modelPathURDF +
".urdf");
116 std::ifstream
srdf(modelPathSRDF +
".srdf");
117 std::stringstream sUrdf, sSrdf;
118 sUrdf << urdf.rdbuf();
119 sSrdf << srdf.rdbuf();
133 #endif // TESTUTILS_H
void kill(int signal=SIGTERM)
ROSCPP_DECL void init(int &argc, char **argv, const std::string &name, uint32_t options=0)
ROSCPP_DECL void set(const std::string &key, const XmlRpc::XmlRpcValue &v)
int prepareROSForTests(int argc, char **argv, std::string testName)
Function to be called in the main of each test, it runs roscore and fill parameter server with robot ...
Process(std::vector< std::string > args)
static std::string getPackagePath()