[libcamera-devel] [PATCH] test: Use foreach iterators to simplify definitions

Kieran Bingham kieran.bingham at ideasonboard.com
Fri Dec 21 10:08:04 CET 2018


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.

Signed-off-by: Kieran Bingham <kieran.bingham at ideasonboard.com>
---

This patch applies on top of the series "[PATCH 0/5] test: Define
libtest" just posted.


 test/meson.build | 26 ++++++++++++++++++++++----
 1 file changed, 22 insertions(+), 4 deletions(-)

diff --git a/test/meson.build b/test/meson.build
index 50ec11853203..754527324c7d 100644
--- a/test/meson.build
+++ b/test/meson.build
@@ -12,8 +12,26 @@ test_includes_internal = [
   libcamera_internal_includes,
 ]
 
-test_init = executable('test_init', 'init.cpp',
-                       link_with : test_libraries,
-                       include_directories : test_includes_public)
+public_tests = [
+  [ 'test_init',      'init.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('Initialisation test', test_init)
+  test(t[0], exe)
+endforeach
-- 
2.17.1



More information about the libcamera-devel mailing list