summaryrefslogtreecommitdiff
path: root/test/libtest
diff options
context:
space:
mode:
Diffstat (limited to 'test/libtest')
-rw-r--r--test/libtest/test.cpp5
-rw-r--r--test/libtest/test.h15
2 files changed, 17 insertions, 3 deletions
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(); \
}