diff --git a/test/meson.build b/test/meson.build
index b7f0b47..cdfced7 100644
--- a/test/meson.build
+++ b/test/meson.build
@@ -8,70 +8,68 @@
                 dependency('threads'),
                 gtest_proj.dependency('gtest'),
                 gtest_proj.dependency('gtest_main'),
-            ]
+            ],
         )
         gmock_dep = gtest_proj.dependency('gmock')
-  else
+    else
         assert(
             not get_option('tests').allowed(),
-            'Googletest is required if tests are enabled'
+            'Googletest is required if tests are enabled',
         )
-  endif
+    endif
 endif
 
-test_yamls = [
-  'test-empty-group',
-  'test-group-priority',
-  'test-led-priority'
-]
+test_yamls = ['test-empty-group', 'test-group-priority', 'test-led-priority']
 
 test_sources = [
-  '../manager/manager.cpp',
-  '../manager/config-validator.cpp',
-  '../utils.cpp',
+    '../manager/manager.cpp',
+    '../manager/config-validator.cpp',
+    '../utils.cpp',
 ]
 
 foreach yaml : test_yamls
-  gen_hpp = custom_target(
-    yaml + '.hpp',
-    command : [
-        prog_python,
-        meson.project_source_root() + '/scripts/parse_led.py',
-        '--filename', meson.project_source_root() + '/test/config/' + yaml + '.yaml',
-        '-o', meson.current_build_dir(),
-        '--output-filename', yaml + '.hpp'
-    ],
-    output : yaml + '.hpp')
+    gen_hpp = custom_target(
+        yaml + '.hpp',
+        command: [
+            prog_python,
+            meson.project_source_root() + '/scripts/parse_led.py',
+            '--filename',
+            meson.project_source_root() + '/test/config/' + yaml + '.yaml',
+            '-o',
+            meson.current_build_dir(),
+            '--output-filename',
+            yaml + '.hpp',
+        ],
+        output: yaml + '.hpp',
+    )
 
-  test_sources += [ gen_hpp ]
+    test_sources += [gen_hpp]
 endforeach
 
 tests = [
-  'utest.cpp',
-  'utest-led-json.cpp',
-  'utest-group-priority.cpp',
-  'utest-led-yaml-group-priority.cpp',
-  'utest-led-yaml-led-priority.cpp',
-  'utest-led-yaml-empty-group.cpp',
-  'utest-config-validator.cpp'
+    'utest.cpp',
+    'utest-led-json.cpp',
+    'utest-group-priority.cpp',
+    'utest-led-yaml-group-priority.cpp',
+    'utest-led-yaml-led-priority.cpp',
+    'utest-led-yaml-empty-group.cpp',
+    'utest-config-validator.cpp',
 ]
 if get_option('persistent-led-asserted').allowed()
-  test_sources += [
-    '../manager/serialize.cpp',
-  ]
-  tests += [
-    'utest-serialize.cpp',
-  ]
+    test_sources += ['../manager/serialize.cpp']
+    tests += ['utest-serialize.cpp']
 endif
 
 foreach t : tests
-  test(t, executable(t.underscorify(), t,
-                     test_sources,
-                     include_directories: ['..', '../manager'],
-                     dependencies: [
-                         gtest_dep,
-                         gmock_dep,
-                         deps
-                         ]),
-       workdir: meson.current_source_dir())
+    test(
+        t,
+        executable(
+            t.underscorify(),
+            t,
+            test_sources,
+            include_directories: ['..', '../manager'],
+            dependencies: [gtest_dep, gmock_dep, deps],
+        ),
+        workdir: meson.current_source_dir(),
+    )
 endforeach
