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
