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>
This commit is contained in:
parent
68e4f70a69
commit
b24d9c4413
6 changed files with 29 additions and 8 deletions
|
@ -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();
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
|
|
|
@ -17,6 +17,11 @@ Test::~Test()
|
|||
{
|
||||
}
|
||||
|
||||
void Test::setArgs([[maybe_unused]] int argc, char *argv[])
|
||||
{
|
||||
self_ = argv[0];
|
||||
}
|
||||
|
||||
int Test::execute()
|
||||
{
|
||||
int ret;
|
||||
|
|
|
@ -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(); \
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue