summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>2021-11-29 23:16:35 +0200
committerLaurent Pinchart <laurent.pinchart@ideasonboard.com>2021-12-01 08:54:24 +0200
commit59002a9e9d84417197999391c7d8c6af620fc1fb (patch)
tree33098fa6e3004d17f4a1cc28b38e5b7881953392 /test
parentb24d9c4413b9d7f55f4105adeb7cf9a2450d3204 (diff)
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>
Diffstat (limited to 'test')
-rw-r--r--test/file.cpp4
-rw-r--r--test/ipc/unixsocket.cpp5
-rw-r--r--test/ipc/unixsocket_ipc.cpp2
-rw-r--r--test/log/log_process.cpp2
-rw-r--r--test/process/process_test.cpp2
5 files changed, 7 insertions, 8 deletions
diff --git a/test/file.cpp b/test/file.cpp
index 9ac151c9..5c978ebf 100644
--- a/test/file.cpp
+++ b/test/file.cpp
@@ -180,7 +180,7 @@ protected:
}
/* Test size(). */
- file.setFileName("/proc/self/exe");
+ file.setFileName(self());
if (file.size() >= 0) {
cerr << "File has valid size before open" << endl;
@@ -277,7 +277,7 @@ protected:
file.close();
/* Test mapping and unmapping. */
- file.setFileName("/proc/self/exe");
+ file.setFileName(self());
file.open(File::OpenModeFlag::ReadOnly);
Span<uint8_t> data = file.map();
diff --git a/test/ipc/unixsocket.cpp b/test/ipc/unixsocket.cpp
index 4fc1c10a..b3568c06 100644
--- a/test/ipc/unixsocket.cpp
+++ b/test/ipc/unixsocket.cpp
@@ -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;
diff --git a/test/ipc/unixsocket_ipc.cpp b/test/ipc/unixsocket_ipc.cpp
index 2e3b52ca..1a8d06a1 100644
--- a/test/ipc/unixsocket_ipc.cpp
+++ b/test/ipc/unixsocket_ipc.cpp
@@ -173,7 +173,7 @@ protected:
int run()
{
- ipc_ = std::make_unique<IPCPipeUnixSocket>("", "/proc/self/exe");
+ ipc_ = std::make_unique<IPCPipeUnixSocket>("", self().c_str());
if (!ipc_->isConnected()) {
cerr << "Failed to create IPCPipe" << endl;
return TestFail;
diff --git a/test/log/log_process.cpp b/test/log/log_process.cpp
index ca835133..2484c58f 100644
--- a/test/log/log_process.cpp
+++ b/test/log/log_process.cpp
@@ -74,7 +74,7 @@ protected:
vector<std::string> args;
args.push_back(to_string(exitCode));
args.push_back(to_string(num_));
- int ret = proc_.start("/proc/self/exe", args);
+ int ret = proc_.start(self(), args);
if (ret) {
cerr << "failed to start process" << endl;
return TestFail;
diff --git a/test/process/process_test.cpp b/test/process/process_test.cpp
index 96bea17f..b410756b 100644
--- a/test/process/process_test.cpp
+++ b/test/process/process_test.cpp
@@ -55,7 +55,7 @@ protected:
proc_.kill();
/* Test starting the process and retrieving the exit code. */
- int ret = proc_.start("/proc/self/exe", args);
+ int ret = proc_.start(self(), args);
if (ret) {
cerr << "failed to start process" << endl;
return TestFail;