diff --git a/test/meson.build b/test/meson.build
index 378e666..ac86f24 100644
--- a/test/meson.build
+++ b/test/meson.build
@@ -1,110 +1,116 @@
 gtests = {
-  'cancel': [stdplus_dep, gtest_main_dep],
-  'exception': [stdplus_dep, gtest_main_dep],
-  'function_view': [stdplus_dep, gtest_main_dep],
-  'handle/copyable': [stdplus_dep, gtest_main_dep],
-  'handle/managed': [stdplus_dep, gtest_main_dep],
-  'hash': [stdplus_dep, gtest_main_dep],
-  'hash/array': [stdplus_dep, gtest_main_dep],
-  'hash/tuple': [stdplus_dep, gtest_main_dep],
-  'net/addr/ether': [stdplus_dep, gtest_main_dep],
-  'net/addr/ip': [stdplus_dep, gtest_main_dep],
-  'net/addr/sock': [stdplus_dep, gtest_main_dep],
-  'net/addr/subnet': [stdplus_dep, gtest_main_dep],
-  'numeric/endian': [stdplus_dep, gtest_main_dep],
-  'numeric/str': [stdplus_dep, gtest_main_dep],
-  'pinned': [stdplus_dep, gtest_main_dep],
-  'print': [stdplus_dep, gtest_main_dep],
-  'raw': [stdplus_dep, gmock_dep, gtest_main_dep],
-  'signal': [stdplus_dep, gtest_main_dep],
-  'str/buf': [stdplus_dep, gtest_main_dep],
-  'str/cat': [stdplus_dep, gtest_main_dep],
-  'str/cexpr': [stdplus_dep, gtest_main_dep],
-  'str/conv': [stdplus_dep, gmock_dep, gtest_main_dep],
-  'str/maps': [stdplus_dep, gmock_dep, gtest_main_dep],
-  'util/cexec': [stdplus_dep, gtest_main_dep],
-  'variant': [stdplus_dep, gtest_main_dep],
-  'zstring': [stdplus_dep, gtest_main_dep],
-  'zstring_view': [stdplus_dep, gtest_main_dep],
+    'cancel': [stdplus_dep, gtest_main_dep],
+    'exception': [stdplus_dep, gtest_main_dep],
+    'function_view': [stdplus_dep, gtest_main_dep],
+    'handle/copyable': [stdplus_dep, gtest_main_dep],
+    'handle/managed': [stdplus_dep, gtest_main_dep],
+    'hash': [stdplus_dep, gtest_main_dep],
+    'hash/array': [stdplus_dep, gtest_main_dep],
+    'hash/tuple': [stdplus_dep, gtest_main_dep],
+    'net/addr/ether': [stdplus_dep, gtest_main_dep],
+    'net/addr/ip': [stdplus_dep, gtest_main_dep],
+    'net/addr/sock': [stdplus_dep, gtest_main_dep],
+    'net/addr/subnet': [stdplus_dep, gtest_main_dep],
+    'numeric/endian': [stdplus_dep, gtest_main_dep],
+    'numeric/str': [stdplus_dep, gtest_main_dep],
+    'pinned': [stdplus_dep, gtest_main_dep],
+    'print': [stdplus_dep, gtest_main_dep],
+    'raw': [stdplus_dep, gmock_dep, gtest_main_dep],
+    'signal': [stdplus_dep, gtest_main_dep],
+    'str/buf': [stdplus_dep, gtest_main_dep],
+    'str/cat': [stdplus_dep, gtest_main_dep],
+    'str/cexpr': [stdplus_dep, gtest_main_dep],
+    'str/conv': [stdplus_dep, gmock_dep, gtest_main_dep],
+    'str/maps': [stdplus_dep, gmock_dep, gtest_main_dep],
+    'util/cexec': [stdplus_dep, gtest_main_dep],
+    'variant': [stdplus_dep, gtest_main_dep],
+    'zstring': [stdplus_dep, gtest_main_dep],
+    'zstring_view': [stdplus_dep, gtest_main_dep],
 }
 
 if has_dl
-  gtests += {
-    'dl': [stdplus_dl_dep, gtest_main_dep],
-  }
+    gtests += {'dl': [stdplus_dl_dep, gtest_main_dep]}
 elif build_tests.enabled()
-  error('Not testing libdl feature')
+    error('Not testing libdl feature')
 else
-  warning('Not testing libdl feature')
+    warning('Not testing libdl feature')
 endif
 
 if has_fd
-  gtests += {
-    'fd/dupable': [stdplus_fd_dep],
-    'fd/managed': [stdplus_fd_dep],
-    'fd/fmt': [stdplus_fd_dep, stdplus_dep, gtest_main_dep],
-    'fd/intf': [stdplus_fd_dep],
-    'fd/impl': [stdplus_fd_dep],
-    'fd/line': [stdplus_fd_dep, stdplus_dep, gmock_dep, gtest_main_dep],
-    'fd/mmap': [stdplus_fd_dep, gtest_main_dep],
-    'fd/mock': [stdplus_fd_dep, gmock_dep, gtest_main_dep],
-    'fd/ops': [stdplus_fd_dep, stdplus_dep, gmock_dep, gtest_main_dep],
-  }
-  if has_gtest
     gtests += {
-      'fd/atomic': [stdplus_fd_dep, stdplus_gtest_dep, gtest_main_dep],
+        'fd/dupable': [stdplus_fd_dep],
+        'fd/managed': [stdplus_fd_dep],
+        'fd/fmt': [stdplus_fd_dep, stdplus_dep, gtest_main_dep],
+        'fd/intf': [stdplus_fd_dep],
+        'fd/impl': [stdplus_fd_dep],
+        'fd/line': [stdplus_fd_dep, stdplus_dep, gmock_dep, gtest_main_dep],
+        'fd/mmap': [stdplus_fd_dep, gtest_main_dep],
+        'fd/mock': [stdplus_fd_dep, gmock_dep, gtest_main_dep],
+        'fd/ops': [stdplus_fd_dep, stdplus_dep, gmock_dep, gtest_main_dep],
     }
-  elif build_tests.enabled()
-    error('Not testing fd/atomic feature')
-  else
-    warning('Not testing fd/atomic feature')
-  endif
+    if has_gtest
+        gtests += {
+            'fd/atomic': [stdplus_fd_dep, stdplus_gtest_dep, gtest_main_dep],
+        }
+    elif build_tests.enabled()
+        error('Not testing fd/atomic feature')
+    else
+        warning('Not testing fd/atomic feature')
+    endif
 elif build_tests.enabled()
-  error('Not testing file descriptor feature')
+    error('Not testing file descriptor feature')
 else
-  warning('Not testing file descriptor feature')
+    warning('Not testing file descriptor feature')
 endif
 
 if has_io_uring
-  gtests += {
-    'io_uring': [stdplus_io_uring_dep, stdplus_dep, gmock_dep, gtest_main_dep],
-  }
+    gtests += {
+        'io_uring': [
+            stdplus_io_uring_dep,
+            stdplus_dep,
+            gmock_dep,
+            gtest_main_dep,
+        ],
+    }
 elif build_tests.enabled()
-  error('Not testing io_uring feature')
+    error('Not testing io_uring feature')
 else
-  warning('Not testing io_uring feature')
+    warning('Not testing io_uring feature')
 endif
 
 if has_gtest
-  gtests += {
-    'gtest/tmp': [stdplus_gtest_dep, gtest_main_dep],
-  }
+    gtests += {'gtest/tmp': [stdplus_gtest_dep, gtest_main_dep]}
 elif build_tests.enabled()
-  error('Not testing gtest lib feature')
+    error('Not testing gtest lib feature')
 else
-  warning('Not testing gtest lib feature')
+    warning('Not testing gtest lib feature')
 endif
 
 add_test_setup(
-  'stdplus',
-  exe_wrapper: run_with_tmp,
-  env: {'TMPTMPL': 'stdplus-test.XXXXXXXXXX'},
-  is_default: true)
+    'stdplus',
+    exe_wrapper: run_with_tmp,
+    env: {'TMPTMPL': 'stdplus-test.XXXXXXXXXX'},
+    is_default: true,
+)
 
 add_test_setup(
-  'valgrind',
-  exe_wrapper: [run_with_tmp, 'valgrind'],
-  env: {'TMPTMPL': 'stdplus-test.XXXXXXXXXX'})
+    'valgrind',
+    exe_wrapper: [run_with_tmp, 'valgrind'],
+    env: {'TMPTMPL': 'stdplus-test.XXXXXXXXXX'},
+)
 
 if gtest_dep.found() and gmock_dep.found()
-  foreach t, deps : gtests
-    test(
-      t,
-      executable(
-        t.underscorify(), t + '.cpp',
-        build_by_default: false,
-        implicit_include_directories: false,
-        cpp_args: '-Wno-missing-braces',
-        dependencies: deps))
-  endforeach
+    foreach t, deps : gtests
+        test(
+            t,
+            executable(
+                t.underscorify(),
+                t + '.cpp',
+                build_by_default: false,
+                implicit_include_directories: false,
+                cpp_args: '-Wno-missing-braces',
+                dependencies: deps,
+            ),
+        )
+    endforeach
 endif
