test: Move test objects to libtest

Create a subdirectory to contain the libtest helper library.

Define two variables to clarify when tests are aimed at public or
internal components.

Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
This commit is contained in:
Kieran Bingham 2018-12-20 15:40:37 +00:00 committed by Laurent Pinchart
parent b43f56c46d
commit 3900b0771e
5 changed files with 25 additions and 13 deletions

7
test/libtest/meson.build Normal file
View file

@ -0,0 +1,7 @@
libtest_sources = files([
'test.cpp',
])
libtest = static_library('libtest', libtest_sources)
libtest_includes = include_directories('.')

31
test/libtest/test.cpp Normal file
View file

@ -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;
}

32
test/libtest/test.h Normal file
View file

@ -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__ */