diff --git a/test/Makefile.am b/test/Makefile.am
index 45dab5f..d728099 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -21,6 +21,7 @@
 					$(SYSTEMD_CFLAGS) \
 					$(SDBUSPLUS_CFLAGS) \
 					$(SDEVENTPLUS_CFLAGS) \
+					$(STDPLUS_CFLAGS) \
 					$(PHOSPHOR_LOGGING_CFLAGS) \
 					$(PHOSPHOR_DBUS_INTERFACES_CFLAGS)
 
@@ -29,6 +30,7 @@
 					$(SYSTEMD_LIBS) \
 					$(SDBUSPLUS_LIBS) \
 					$(SDEVENTPLUS_LIBS) \
+					$(STDPLUS_LIBS) \
 					$(PHOSPHOR_LOGGING_LIBS) \
 					$(PHOSPHOR_DBUS_INTERFACES_LIBS)
 
diff --git a/test/mock_syscall.cpp b/test/mock_syscall.cpp
index 5493c58..665094d 100644
--- a/test/mock_syscall.cpp
+++ b/test/mock_syscall.cpp
@@ -19,6 +19,7 @@
 #include <map>
 #include <queue>
 #include <stdexcept>
+#include <stdplus/raw.hpp>
 #include <string>
 #include <string_view>
 #include <vector>
@@ -128,7 +129,7 @@
 ssize_t sendmsg_link_dump(std::queue<std::string>& msgs, std::string_view in)
 {
     const ssize_t ret = in.size();
-    const auto& hdrin = phosphor::copyFrom<nlmsghdr>(in);
+    const auto& hdrin = stdplus::raw::copyFrom<nlmsghdr>(in);
     if (hdrin.nlmsg_type != RTM_GETLINK)
     {
         return 0;
diff --git a/test/test_neighbor.cpp b/test/test_neighbor.cpp
index c7d926e..6b14912 100644
--- a/test/test_neighbor.cpp
+++ b/test/test_neighbor.cpp
@@ -8,6 +8,7 @@
 
 #include <cstring>
 #include <stdexcept>
+#include <stdplus/raw.hpp>
 #include <string>
 #include <vector>
 
@@ -115,7 +116,8 @@
     EXPECT_EQ(msg.ndm_ifindex, neighbors[0].interface);
     EXPECT_EQ(msg.ndm_state, neighbors[0].state);
     EXPECT_FALSE(neighbors[0].mac);
-    EXPECT_TRUE(equal(addr, std::get<in_addr>(neighbors[0].address)));
+    EXPECT_TRUE(
+        stdplus::raw::equal(addr, std::get<in_addr>(neighbors[0].address)));
 }
 
 TEST(ParseNeighbor, FilterInterface)
@@ -150,7 +152,8 @@
     EXPECT_EQ(msg.ndm_ifindex, neighbors[0].interface);
     EXPECT_EQ(msg.ndm_state, neighbors[0].state);
     EXPECT_FALSE(neighbors[0].mac);
-    EXPECT_TRUE(equal(addr, std::get<in_addr>(neighbors[0].address)));
+    EXPECT_TRUE(
+        stdplus::raw::equal(addr, std::get<in_addr>(neighbors[0].address)));
 }
 
 TEST(ParseNeighbor, FilterState)
@@ -185,7 +188,8 @@
     EXPECT_EQ(msg.ndm_ifindex, neighbors[0].interface);
     EXPECT_EQ(msg.ndm_state, neighbors[0].state);
     EXPECT_FALSE(neighbors[0].mac);
-    EXPECT_TRUE(equal(addr, std::get<in_addr>(neighbors[0].address)));
+    EXPECT_TRUE(
+        stdplus::raw::equal(addr, std::get<in_addr>(neighbors[0].address)));
 }
 
 TEST(ParseNeighbor, Full)
@@ -225,8 +229,9 @@
     EXPECT_EQ(msg.ndm_ifindex, neighbors[0].interface);
     EXPECT_EQ(msg.ndm_state, neighbors[0].state);
     EXPECT_TRUE(neighbors[0].mac);
-    EXPECT_TRUE(equal(mac, *neighbors[0].mac));
-    EXPECT_TRUE(equal(addr, std::get<in6_addr>(neighbors[0].address)));
+    EXPECT_TRUE(stdplus::raw::equal(mac, *neighbors[0].mac));
+    EXPECT_TRUE(
+        stdplus::raw::equal(addr, std::get<in6_addr>(neighbors[0].address)));
 }
 
 } // namespace detail
diff --git a/test/test_netlink.cpp b/test/test_netlink.cpp
index 8d20c39..6e5a198 100644
--- a/test/test_netlink.cpp
+++ b/test/test_netlink.cpp
@@ -7,6 +7,7 @@
 
 #include <cstring>
 #include <stdexcept>
+#include <stdplus/raw.hpp>
 #include <string_view>
 
 #include <gtest/gtest.h>
@@ -125,8 +126,9 @@
     processMsg(data, done, cb);
     EXPECT_EQ(0, data.size());
     EXPECT_EQ(1, cbCalls);
-    EXPECT_TRUE(equal(hdr, hdrOut));
-    EXPECT_TRUE(equal(err, extract<nlmsgerr>(dataOut)));
+    EXPECT_TRUE(stdplus::raw::equal(hdr, hdrOut));
+    EXPECT_TRUE(
+        stdplus::raw::equal(err, stdplus::raw::extract<nlmsgerr>(dataOut)));
     EXPECT_EQ(0, dataOut.size());
     EXPECT_TRUE(done);
 }
diff --git a/test/test_util.cpp b/test/test_util.cpp
index 89723f5..83fcb83 100644
--- a/test/test_util.cpp
+++ b/test/test_util.cpp
@@ -5,6 +5,7 @@
 
 #include <cstddef>
 #include <cstring>
+#include <stdplus/raw.hpp>
 #include <string>
 #include <string_view>
 #include <xyz/openbmc_project/Common/error.hpp>
@@ -213,94 +214,6 @@
     EXPECT_EQ("eth28addr", interfaceToUbootEthAddr("eth28"));
 }
 
-TEST_F(TestUtil, CopyFromTooSmall)
-{
-    constexpr auto expected = "abcde"sv;
-    struct
-    {
-        uint8_t data[10];
-    } data;
-    static_assert(sizeof(data) > expected.size());
-    EXPECT_THROW(copyFrom<decltype(data)>(expected), std::runtime_error);
-}
-
-TEST_F(TestUtil, CopyFromSome)
-{
-    constexpr auto expected = "abcde"sv;
-    struct
-    {
-        uint8_t data[2];
-    } data;
-    static_assert(sizeof(data) < expected.size());
-    data = copyFrom<decltype(data)>(expected);
-    EXPECT_EQ(0, memcmp(&data, expected.data(), sizeof(data)));
-}
-
-TEST_F(TestUtil, CopyFromAll)
-{
-    constexpr auto expected = "abcde"sv;
-    struct
-    {
-        uint8_t data[5];
-    } data;
-    static_assert(sizeof(data) == expected.size());
-    data = copyFrom<decltype(data)>(expected);
-    EXPECT_EQ(0, memcmp(&data, expected.data(), sizeof(data)));
-}
-
-TEST_F(TestUtil, ExtractSome)
-{
-    constexpr auto expected = "abcde"sv;
-    auto buf = expected;
-    struct
-    {
-        uint8_t data[2];
-    } data;
-    static_assert(sizeof(data) < expected.size());
-    data = extract<decltype(data)>(buf);
-    EXPECT_EQ(0, memcmp(&data, expected.data(), sizeof(data)));
-    EXPECT_EQ(3, buf.size());
-    EXPECT_EQ(expected.substr(2), buf);
-}
-
-TEST_F(TestUtil, ExtractAll)
-{
-    constexpr auto expected = "abcde"sv;
-    auto buf = expected;
-    struct
-    {
-        uint8_t data[5];
-    } data;
-    static_assert(sizeof(data) == expected.size());
-    data = extract<decltype(data)>(buf);
-    EXPECT_EQ(0, memcmp(&data, expected.data(), sizeof(data)));
-    EXPECT_EQ(0, buf.size());
-}
-
-TEST_F(TestUtil, Equal)
-{
-    struct
-    {
-        int i;
-    } a, b{};
-    a.i = 4;
-    b.i = 4;
-
-    EXPECT_TRUE(equal(a, b));
-}
-
-TEST_F(TestUtil, NotEqual)
-{
-    struct
-    {
-        int i;
-    } a, b{};
-    a.i = 2;
-    b.i = 4;
-
-    EXPECT_FALSE(equal(a, b));
-}
-
 namespace mac_address
 {
 
@@ -313,11 +226,14 @@
 
 TEST(MacFromString, Valid)
 {
-    EXPECT_TRUE(equal(ether_addr{}, fromString("00:00:00:00:00:00")));
-    EXPECT_TRUE(equal(ether_addr{0xff, 0xee, 0xdd, 0xcc, 0xbb, 0xaa},
-                      fromString("FF:EE:DD:cc:bb:aa")));
-    EXPECT_TRUE(equal(ether_addr{0x00, 0x01, 0x02, 0x03, 0x04, 0x05},
-                      fromString("0:1:2:3:4:5")));
+    EXPECT_TRUE(
+        stdplus::raw::equal(ether_addr{}, fromString("00:00:00:00:00:00")));
+    EXPECT_TRUE(
+        stdplus::raw::equal(ether_addr{0xff, 0xee, 0xdd, 0xcc, 0xbb, 0xaa},
+                            fromString("FF:EE:DD:cc:bb:aa")));
+    EXPECT_TRUE(
+        stdplus::raw::equal(ether_addr{0x00, 0x01, 0x02, 0x03, 0x04, 0x05},
+                            fromString("0:1:2:3:4:5")));
 }
 
 TEST(MacToString, Valid)
