diff options
Diffstat (limited to 'test/libtest')
-rw-r--r-- | test/libtest/meson.build | 7 | ||||
-rw-r--r-- | test/libtest/test.cpp | 31 | ||||
-rw-r--r-- | test/libtest/test.h | 32 |
3 files changed, 70 insertions, 0 deletions
diff --git a/test/libtest/meson.build b/test/libtest/meson.build new file mode 100644 index 00000000..b998154d --- /dev/null +++ b/test/libtest/meson.build @@ -0,0 +1,7 @@ +libtest_sources = files([ + 'test.cpp', +]) + +libtest = static_library('libtest', libtest_sources) + +libtest_includes = include_directories('.') diff --git a/test/libtest/test.cpp b/test/libtest/test.cpp new file mode 100644 index 00000000..1bb6ebcb --- /dev/null +++ b/test/libtest/test.cpp @@ -0,0 +1,31 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ +/* + * Copyright (C) 2018, Google Inc. + * + * test.cpp - libcamera test base class + */ + +#include "test.h" + +Test::Test() +{ +} + +Test::~Test() +{ +} + +int Test::execute() +{ + int ret; + + ret = init(); + if (ret < 0) + return ret; + + ret = run(); + + cleanup(); + + return ret; +} diff --git a/test/libtest/test.h b/test/libtest/test.h new file mode 100644 index 00000000..c85eeb5d --- /dev/null +++ b/test/libtest/test.h @@ -0,0 +1,32 @@ +/* SPDX-License-Identifier: GPL-2.0-or-later */ +/* + * Copyright (C) 2018, Google Inc. + * + * test.h - libcamera test base class + */ +#ifndef __TEST_TEST_H__ +#define __TEST_TEST_H__ + +#include <sstream> + +class Test +{ +public: + Test(); + virtual ~Test(); + + int execute(); + +protected: + virtual int init() { return 0; } + virtual int run() = 0; + virtual void cleanup() { } +}; + +#define TEST_REGISTER(klass) \ +int main(int argc, char *argv[]) \ +{ \ + return klass().execute(); \ +} + +#endif /* __TEST_TEST_H__ */ |