X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=libtest%2Fkillpid.cc;h=8a1543f4892968a05235bce05690815ba9dc5453;hb=b77f874c7d7ff386d01eeedb44c14d3003354bae;hp=7bbdd6365ef51a1f5bc0e4d0b0dbdf3bfc581266;hpb=d61195ed2a8d1db91773e1b66f6a17372f3a4838;p=awesomized%2Flibmemcached diff --git a/libtest/killpid.cc b/libtest/killpid.cc index 7bbdd636..8a1543f4 100644 --- a/libtest/killpid.cc +++ b/libtest/killpid.cc @@ -25,6 +25,7 @@ #include #include #include +#include #include #include #include @@ -114,14 +115,18 @@ pid_t kill_file(const std::string &filename) return ret; } -pid_t get_pid_from_file(const std::string &filename) +#define STRINGIFY(x) #x +#define TOSTRING(x) STRINGIFY(x) +#define LIBTEST_AT __FILE__ ":" TOSTRING(__LINE__) + +pid_t get_pid_from_file(const std::string &filename, std::stringstream& error_message) { pid_t ret= -1; FILE *fp; if (filename.empty()) { - Error << "empty pid file"; + error_message << LIBTEST_AT << " empty pid file"; return ret; } @@ -135,11 +140,23 @@ pid_t get_pid_from_file(const std::string &filename) if (ptr) { ret= (pid_t)atoi(pid_buffer); - if (ret <= 0) + if (ret < 1) { - return ret; + error_message << LIBTEST_AT << " Invalid pid was read from file " << filename; } } + else + { + error_message << LIBTEST_AT << " File " << filename << " was empty "; + } + + return ret; + } + else + { + char buffer[1024]; + char *current_directory= getcwd(buffer, sizeof(buffer)); + error_message << "Error while opening " << current_directory << "/" << filename << " " << strerror(errno); } return ret;