test: Use foreach iterators to simplify definitions

Create two arrays, to contain public and internal test targets, and use
the foreach iterators to automatically generate test output targets for
each entry in each array.

The public tests array is linked only against public libcamera headers,
while tests declared in the internal_tests will have access to
non-public API headers from within the libcamera sources.

Reviewed-by: Niklas Söderlund <niklas.soderlund@ragnatech.se>
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
Signed-off-by: Kieran Bingham <kieran.bingham@ideasonboard.com>
Signed-off-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com>
This commit is contained in:
Kieran Bingham 2019-01-01 14:36:35 +00:00 committed by Laurent Pinchart
parent a9fe3adc4f
commit 5802259b3c

View file

@ -12,10 +12,27 @@ test_includes_internal = [
libcamera_internal_includes,
]
list = executable('list', 'list.cpp',
link_with : test_libraries,
include_directories : test_includes_public)
subdir('media_device')
test('List Camera API tests', list)
public_tests = [
['list', 'list.cpp'],
]
internal_tests = [
]
foreach t : public_tests
exe = executable(t[0], t[1],
link_with : test_libraries,
include_directories : test_includes_public)
test(t[0], exe)
endforeach
foreach t : internal_tests
exe = executable(t[0], t[1],
link_with : test_libraries,
include_directories : test_includes_internal)
test(t[0], exe)
endforeach