summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLaurent Pinchart <laurent.pinchart@ideasonboard.com>2021-11-29 23:02:27 +0200
committerLaurent Pinchart <laurent.pinchart@ideasonboard.com>2021-12-01 08:54:12 +0200
commitb24d9c4413b9d7f55f4105adeb7cf9a2450d3204 (patch)
treec896a9d23ffe729ffdac5146b965fe2e83fbdee8
parent68e4f70a6937a69339c3f48502cd4e332c3a16ca (diff)
test: Store path to the test executable in Test class
Store the path to the test executable, found in argv[0], in the Test instance. This can be useful for tests that need to fork processes. Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com> Reviewed-by: Jacopo Mondi <jacopo@jmondi.org> Reviewed-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
-rw-r--r--test/ipc/unixsocket.cpp4
-rw-r--r--test/ipc/unixsocket_ipc.cpp4
-rw-r--r--test/libtest/test.cpp5
-rw-r--r--test/libtest/test.h15
-rw-r--r--test/log/log_process.cpp4
-rw-r--r--test/process/process_test.cpp5
6 files changed, 29 insertions, 8 deletions
diff --git a/test/ipc/unixsocket.cpp b/test/ipc/unixsocket.cpp
index 7270bf4d..4fc1c10a 100644
--- a/test/ipc/unixsocket.cpp
+++ b/test/ipc/unixsocket.cpp
@@ -501,5 +501,7 @@ int main(int argc, char **argv)
return slave.run(ipcfd);
}
- return UnixSocketTest().execute();
+ UnixSocketTest test;
+ test.setArgs(argc, argv);
+ return test.execute();
}
diff --git a/test/ipc/unixsocket_ipc.cpp b/test/ipc/unixsocket_ipc.cpp
index ab5d2557..2e3b52ca 100644
--- a/test/ipc/unixsocket_ipc.cpp
+++ b/test/ipc/unixsocket_ipc.cpp
@@ -227,5 +227,7 @@ int main(int argc, char **argv)
return slave.run(ipcfd);
}
- return UnixSocketTestIPC().execute();
+ UnixSocketTestIPC test;
+ test.setArgs(argc, argv);
+ return test.execute();
}
diff --git a/test/libtest/test.cpp b/test/libtest/test.cpp
index fd9f3d74..af37b4dd 100644
--- a/test/libtest/test.cpp
+++ b/test/libtest/test.cpp
@@ -17,6 +17,11 @@ Test::~Test()
{
}
+void Test::setArgs([[maybe_unused]] int argc, char *argv[])
+{
+ self_ = argv[0];
+}
+
int Test::execute()
{
int ret;
diff --git a/test/libtest/test.h b/test/libtest/test.h
index ee01a225..23b07743 100644
--- a/test/libtest/test.h
+++ b/test/libtest/test.h
@@ -8,6 +8,7 @@
#pragma once
#include <sstream>
+#include <string>
enum TestStatus {
TestPass = 0,
@@ -21,16 +22,24 @@ public:
Test();
virtual ~Test();
+ void setArgs(int argc, char *argv[]);
int execute();
+ const std::string &self() const { return self_; }
+
protected:
virtual int init() { return 0; }
virtual int run() = 0;
virtual void cleanup() {}
+
+private:
+ std::string self_;
};
-#define TEST_REGISTER(klass) \
-int main([[maybe_unused]] int argc, [[maybe_unused]] char *argv[]) \
+#define TEST_REGISTER(Klass) \
+int main(int argc, char *argv[]) \
{ \
- return klass().execute(); \
+ Klass klass; \
+ klass.setArgs(argc, argv); \
+ return klass.execute(); \
}
diff --git a/test/log/log_process.cpp b/test/log/log_process.cpp
index a56a3998..ca835133 100644
--- a/test/log/log_process.cpp
+++ b/test/log/log_process.cpp
@@ -154,5 +154,7 @@ int main(int argc, char **argv)
return child.run(status, num);
}
- return LogProcessTest().execute();
+ LogProcessTest test;
+ test.setArgs(argc, argv);
+ return test.execute();
}
diff --git a/test/process/process_test.cpp b/test/process/process_test.cpp
index 378d680b..96bea17f 100644
--- a/test/process/process_test.cpp
+++ b/test/process/process_test.cpp
@@ -9,7 +9,6 @@
#include <unistd.h>
#include <vector>
-
#include <libcamera/base/event_dispatcher.h>
#include <libcamera/base/thread.h>
#include <libcamera/base/timer.h>
@@ -106,5 +105,7 @@ int main(int argc, char **argv)
return child.run(status);
}
- return ProcessTest().execute();
+ ProcessTest test;
+ test.setArgs(argc, argv);
+ return test.execute();
}