diff --git a/test/fd/atomic.cpp b/test/fd/atomic.cpp
index c67ce41..b49112c 100644
--- a/test/fd/atomic.cpp
+++ b/test/fd/atomic.cpp
@@ -1,8 +1,9 @@
-#include <filesystem>
-#include <memory>
 #include <stdplus/fd/atomic.hpp>
 #include <stdplus/fd/ops.hpp>
 #include <stdplus/gtest/tmp.hpp>
+
+#include <filesystem>
+#include <memory>
 #include <string_view>
 
 namespace stdplus
@@ -18,9 +19,7 @@
     std::string filename;
     std::unique_ptr<AtomicWriter> file;
 
-    AtomicWriterTest() : filename(fmt::format("{}/out", CaseTmpDir()))
-    {
-    }
+    AtomicWriterTest() : filename(fmt::format("{}/out", CaseTmpDir())) {}
 
     ~AtomicWriterTest() noexcept
     {
@@ -47,8 +46,8 @@
 TEST_F(AtomicWriterTest, BadCommit)
 {
     auto tmp = fmt::format("{}/tmp.XXXXXX", CaseTmpDir());
-    ASSERT_NO_THROW(file =
-                        std::make_unique<AtomicWriter>("/dev/null", 0644, tmp));
+    ASSERT_NO_THROW(
+        file = std::make_unique<AtomicWriter>("/dev/null", 0644, tmp));
     writeExact(*file, "hi\n"sv);
     EXPECT_TRUE(std::filesystem::exists(file->getTmpname()));
     EXPECT_THROW(file->commit(), std::filesystem::filesystem_error);
diff --git a/test/fd/dupable.cpp b/test/fd/dupable.cpp
index e203932..3431e54 100644
--- a/test/fd/dupable.cpp
+++ b/test/fd/dupable.cpp
@@ -1,4 +1,2 @@
 #include <stdplus/fd/dupable.hpp>
-int main(int, char*[])
-{
-}
+int main(int, char*[]) {}
diff --git a/test/fd/fmt.cpp b/test/fd/fmt.cpp
index f7ff9d8..770bc99 100644
--- a/test/fd/fmt.cpp
+++ b/test/fd/fmt.cpp
@@ -1,14 +1,15 @@
-#include <gtest/gtest.h>
-
 #include <fmt/compile.h>
+#include <sys/mman.h>
+
 #include <stdplus/fd/fmt.hpp>
 #include <stdplus/fd/managed.hpp>
 #include <stdplus/util/cexec.hpp>
-#include <sys/mman.h>
 
 #include <string>
 #include <string_view>
 
+#include <gtest/gtest.h>
+
 namespace stdplus
 {
 namespace fd
diff --git a/test/fd/impl.cpp b/test/fd/impl.cpp
index 6d0c00b..7806b45 100644
--- a/test/fd/impl.cpp
+++ b/test/fd/impl.cpp
@@ -1,4 +1,2 @@
 #include <stdplus/fd/impl.hpp>
-int main(int, char*[])
-{
-}
+int main(int, char*[]) {}
diff --git a/test/fd/intf.cpp b/test/fd/intf.cpp
index d4cc8c2..bc58756 100644
--- a/test/fd/intf.cpp
+++ b/test/fd/intf.cpp
@@ -1,4 +1,2 @@
 #include <stdplus/fd/intf.hpp>
-int main(int, char*[])
-{
-}
+int main(int, char*[]) {}
diff --git a/test/fd/line.cpp b/test/fd/line.cpp
index 8d9eb32..2913a25 100644
--- a/test/fd/line.cpp
+++ b/test/fd/line.cpp
@@ -1,4 +1,5 @@
-#include <gtest/gtest.h>
+#include <sys/mman.h>
+
 #include <stdplus/exception.hpp>
 #include <stdplus/fd/gmock.hpp>
 #include <stdplus/fd/line.hpp>
@@ -6,8 +7,10 @@
 #include <stdplus/fd/ops.hpp>
 #include <stdplus/raw.hpp>
 #include <stdplus/util/cexec.hpp>
+
 #include <string_view>
-#include <sys/mman.h>
+
+#include <gtest/gtest.h>
 
 namespace stdplus
 {
@@ -70,7 +73,10 @@
 inline auto readSv(std::string_view s)
 {
     return [s](std::span<std::byte> buf) {
-        memcpy(buf.data(), s.data(), s.size());
+        if (s.size())
+        {
+            memcpy(buf.data(), s.data(), s.size());
+        }
         return buf.subspan(0, s.size());
     };
 }
diff --git a/test/fd/managed.cpp b/test/fd/managed.cpp
index f365618..a232fdc 100644
--- a/test/fd/managed.cpp
+++ b/test/fd/managed.cpp
@@ -1,4 +1,2 @@
 #include <stdplus/fd/managed.hpp>
-int main(int, char*[])
-{
-}
+int main(int, char*[]) {}
diff --git a/test/fd/mmap.cpp b/test/fd/mmap.cpp
index 3f1ab33..bf73556 100644
--- a/test/fd/mmap.cpp
+++ b/test/fd/mmap.cpp
@@ -1,8 +1,10 @@
-#include <array>
-#include <gtest/gtest.h>
 #include <stdplus/fd/create.hpp>
 #include <stdplus/fd/mmap.hpp>
 
+#include <array>
+
+#include <gtest/gtest.h>
+
 namespace stdplus
 {
 namespace fd
diff --git a/test/fd/mock.cpp b/test/fd/mock.cpp
index 0cc6dfd..a3ad784 100644
--- a/test/fd/mock.cpp
+++ b/test/fd/mock.cpp
@@ -1,6 +1,7 @@
-#include <gtest/gtest.h>
 #include <stdplus/fd/gmock.hpp>
 
+#include <gtest/gtest.h>
+
 namespace stdplus
 {
 
diff --git a/test/fd/ops.cpp b/test/fd/ops.cpp
index 2d52101..c0328fe 100644
--- a/test/fd/ops.cpp
+++ b/test/fd/ops.cpp
@@ -1,6 +1,7 @@
-#include <gtest/gtest.h>
 #include <stdplus/fd/ops.hpp>
 
+#include <gtest/gtest.h>
+
 namespace stdplus
 {
 namespace fd
