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 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 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 Test::execute()
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
|
|
|
@ -8,6 +8,7 @@
|
||||||
#pragma once
|
#pragma once
|
||||||
|
|
||||||
#include <sstream>
|
#include <sstream>
|
||||||
|
#include <string>
|
||||||
|
|
||||||
enum TestStatus {
|
enum TestStatus {
|
||||||
TestPass = 0,
|
TestPass = 0,
|
||||||
|
@ -21,16 +22,24 @@ public:
|
||||||
Test();
|
Test();
|
||||||
virtual ~Test();
|
virtual ~Test();
|
||||||
|
|
||||||
|
void setArgs(int argc, char *argv[]);
|
||||||
int execute();
|
int execute();
|
||||||
|
|
||||||
|
const std::string &self() const { return self_; }
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
virtual int init() { return 0; }
|
virtual int init() { return 0; }
|
||||||
virtual int run() = 0;
|
virtual int run() = 0;
|
||||||
virtual void cleanup() {}
|
virtual void cleanup() {}
|
||||||
|
|
||||||
|
private:
|
||||||
|
std::string self_;
|
||||||
};
|
};
|
||||||
|
|
||||||
#define TEST_REGISTER(klass) \
|
#define TEST_REGISTER(Klass) \
|
||||||
int main([[maybe_unused]] int argc, [[maybe_unused]] char *argv[]) \
|
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 child.run(status, num);
|
||||||
}
|
}
|
||||||
|
|
||||||
return LogProcessTest().execute();
|
LogProcessTest test;
|
||||||
|
test.setArgs(argc, argv);
|
||||||
|
return test.execute();
|
||||||
}
|
}
|
||||||
|
|
|
@ -9,7 +9,6 @@
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <vector>
|
#include <vector>
|
||||||
|
|
||||||
|
|
||||||
#include <libcamera/base/event_dispatcher.h>
|
#include <libcamera/base/event_dispatcher.h>
|
||||||
#include <libcamera/base/thread.h>
|
#include <libcamera/base/thread.h>
|
||||||
#include <libcamera/base/timer.h>
|
#include <libcamera/base/timer.h>
|
||||||
|
@ -106,5 +105,7 @@ int main(int argc, char **argv)
|
||||||
return child.run(status);
|
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