diff options
Diffstat (limited to 'test')
-rw-r--r-- | test/meson.build | 6 | ||||
-rw-r--r-- | test/test.cpp | 28 | ||||
-rw-r--r-- | test/test.h | 32 |
3 files changed, 66 insertions, 0 deletions
diff --git a/test/meson.build b/test/meson.build index 924a26f1..da0aea96 100644 --- a/test/meson.build +++ b/test/meson.build @@ -1,3 +1,9 @@ +libtest_sources = files([ + 'test.cpp', +]) + +libtest = static_library('libtest', libtest_sources) + test_init = executable('test_init', 'init.cpp', link_with : libcamera, include_directories : libcamera_includes) diff --git a/test/test.cpp b/test/test.cpp new file mode 100644 index 00000000..4e7779e7 --- /dev/null +++ b/test/test.cpp @@ -0,0 +1,28 @@ +/* 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() +{ + cleanup(); +} + +int Test::execute() +{ + int ret; + + ret = init(); + if (ret < 0) + return ret; + + return run(); +} diff --git a/test/test.h b/test/test.h new file mode 100644 index 00000000..c85eeb5d --- /dev/null +++ b/test/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__ */ |