test: Replace "/proc/self/exe" with path to test binary
When tests are run under valgrind, /proc/self/exe points to valgrind, not to the test binary. This results in failures for tests that need to fork processes. Fix it by replacing "/proc/self/exe" with the path to the test binary. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Jacopo Mondi <jacopo@jmondi.org> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
This commit is contained in:
parent
b24d9c4413
commit
59002a9e9d
5 changed files with 7 additions and 8 deletions
|
@ -209,8 +209,7 @@ protected:
|
|||
|
||||
if (!pid_) {
|
||||
std::string arg = std::to_string(fd);
|
||||
execl("/proc/self/exe", "/proc/self/exe",
|
||||
arg.c_str(), nullptr);
|
||||
execl(self().c_str(), self().c_str(), arg.c_str(), nullptr);
|
||||
|
||||
/* Only get here if exec fails. */
|
||||
exit(TestFail);
|
||||
|
@ -464,7 +463,7 @@ private:
|
|||
|
||||
int prepareFDs(IPCUnixSocket::Payload *message, unsigned int num)
|
||||
{
|
||||
int fd = open("/proc/self/exe", O_RDONLY);
|
||||
int fd = open(self().c_str(), O_RDONLY);
|
||||
if (fd < 0)
|
||||
return fd;
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue