[libcamera-devel] [PATCH] tests: Add a base Test class
Niklas Söderlund
niklas.soderlund at ragnatech.se
Thu Dec 20 19:53:20 CET 2018
Hi Laurent,
Thanks for your work.
On 2018-12-19 11:48:30 +0200, Laurent Pinchart wrote:
> The base Test class is meant to provide infrastructure common to all
> tests. It is very limited for now, and should be extended with at least
> logging and assertion handling.
I agree it's a bit limited now but can serve as a good base to build
upon. I have used this to write tests for device enumerator work.
>
> Signed-off-by: Laurent Pinchart <laurent.pinchart at ideasonboard.com>
Reviewed-by: Niklas Söderlund <niklas.soderlund at ragnatech.se>
> ---
> test/meson.build | 6 ++++++
> test/test.cpp | 28 ++++++++++++++++++++++++++++
> test/test.h | 28 ++++++++++++++++++++++++++++
> 3 files changed, 62 insertions(+)
> create mode 100644 test/test.cpp
> create mode 100644 test/test.h
>
> diff --git a/test/meson.build b/test/meson.build
> index 24d1927f977c..fc9c124927d2 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 000000000000..4e7779e750d5
> --- /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 000000000000..2464fc5cb607
> --- /dev/null
> +++ b/test/test.h
> @@ -0,0 +1,28 @@
> +/* SPDX-License-Identifier: GPL-2.0-or-later */
> +/*
> + * Copyright (C) 2018, Google Inc.
> + *
> + * test.h - libcamera test base class
> + */
> +
> +#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(); \
> +}
> --
> Regards,
>
> Laurent Pinchart
>
> _______________________________________________
> libcamera-devel mailing list
> libcamera-devel at lists.libcamera.org
> https://lists.libcamera.org/listinfo/libcamera-devel
--
Regards,
Niklas Söderlund
More information about the libcamera-devel
mailing list