diff --git a/tests/meson.build b/tests/meson.build
index 82f7fde..ba538f9 100644
--- a/tests/meson.build
+++ b/tests/meson.build
@@ -27,7 +27,14 @@
 ]
 
 if get_option('abi').contains('testing')
-  tests += [ 'transport' ]
+  tests += [
+    'transport',
+    'transport/send_recv_one',
+    'transport/send_recv_timeout',
+    'transport/send_recv_unwanted',
+    'transport/send_recv_wrong_pldm_type',
+    'transport/send_recv_wrong_command_code'
+  ]
 endif
 
 if get_option('oem-ibm').allowed()
diff --git a/tests/transport.cpp b/tests/transport.cpp
index 93879dc..3fc783f 100644
--- a/tests/transport.cpp
+++ b/tests/transport.cpp
@@ -72,142 +72,6 @@
     pldm_transport_test_destroy(test);
 }
 
-TEST(Transport, send_recv_one)
-{
-    uint8_t req[] = {0x81, 0x00, 0x01, 0x01};
-    uint8_t resp[] = {0x01, 0x00, 0x01, 0x00};
-    const struct pldm_transport_test_descriptor seq[] = {
-        {
-            .type = PLDM_TRANSPORT_TEST_ELEMENT_MSG_SEND,
-            .send_msg =
-                {
-                    .dst = 1,
-                    .msg = req,
-                    .len = sizeof(req),
-                },
-        },
-        {
-            .type = PLDM_TRANSPORT_TEST_ELEMENT_LATENCY,
-            .latency =
-                {
-                    .it_interval = {0, 0},
-                    .it_value = {1, 0},
-                },
-        },
-        {
-            .type = PLDM_TRANSPORT_TEST_ELEMENT_MSG_RECV,
-            .recv_msg =
-                {
-                    .src = 1,
-                    .msg = resp,
-                    .len = sizeof(resp),
-                },
-        },
-    };
-    struct pldm_transport_test* test = NULL;
-    struct pldm_transport* ctx;
-    size_t len;
-    void* msg;
-    int rc;
-
-    EXPECT_EQ(pldm_transport_test_init(&test, seq, ARRAY_SIZE(seq)), 0);
-    ctx = pldm_transport_test_core(test);
-    rc = pldm_transport_send_recv_msg(ctx, 1, req, sizeof(req), &msg, &len);
-    EXPECT_EQ(rc, PLDM_REQUESTER_SUCCESS);
-    EXPECT_EQ(len, sizeof(resp));
-    EXPECT_EQ(memcmp(msg, resp, len), 0);
-    free(msg);
-    pldm_transport_test_destroy(test);
-}
-
-TEST(Transport, send_recv_timeout)
-{
-    uint8_t req[] = {0x81, 0x00, 0x01, 0x01};
-    const struct pldm_transport_test_descriptor seq[] = {
-        {
-            .type = PLDM_TRANSPORT_TEST_ELEMENT_MSG_SEND,
-            .send_msg =
-                {
-                    .dst = 1,
-                    .msg = req,
-                    .len = sizeof(req),
-                },
-        },
-        {
-            .type = PLDM_TRANSPORT_TEST_ELEMENT_LATENCY,
-            .latency =
-                {
-                    .it_interval = {0, 0},
-                    .it_value = {5, 0},
-                },
-        },
-    };
-    struct pldm_transport_test* test = NULL;
-    struct pldm_transport* ctx;
-    size_t len;
-    void* msg;
-    int rc;
-
-    EXPECT_EQ(pldm_transport_test_init(&test, seq, ARRAY_SIZE(seq)), 0);
-    ctx = pldm_transport_test_core(test);
-    rc = pldm_transport_send_recv_msg(ctx, 1, req, sizeof(req), &msg, &len);
-    EXPECT_EQ(rc, PLDM_REQUESTER_RECV_FAIL);
-    pldm_transport_test_destroy(test);
-}
-
-TEST(Transport, send_recv_unwanted)
-{
-    uint8_t req[] = {0x81, 0x00, 0x01, 0x01};
-    uint8_t resp[] = {0x02, 0x00, 0x01, 0x00};
-    const struct pldm_transport_test_descriptor seq[] = {
-        {
-            .type = PLDM_TRANSPORT_TEST_ELEMENT_MSG_SEND,
-            .send_msg =
-                {
-                    .dst = 1,
-                    .msg = req,
-                    .len = sizeof(req),
-                },
-        },
-        {
-            .type = PLDM_TRANSPORT_TEST_ELEMENT_LATENCY,
-            .latency =
-                {
-                    .it_interval = {0, 0},
-                    .it_value = {1, 0},
-                },
-        },
-        {
-            .type = PLDM_TRANSPORT_TEST_ELEMENT_MSG_RECV,
-            .recv_msg =
-                {
-                    .src = 2,
-                    .msg = resp,
-                    .len = sizeof(resp),
-                },
-        },
-        {
-            .type = PLDM_TRANSPORT_TEST_ELEMENT_LATENCY,
-            .latency =
-                {
-                    .it_interval = {0, 0},
-                    .it_value = {4, 0},
-                },
-        },
-    };
-    struct pldm_transport_test* test = NULL;
-    struct pldm_transport* ctx;
-    size_t len;
-    void* msg;
-    int rc;
-
-    EXPECT_EQ(pldm_transport_test_init(&test, seq, ARRAY_SIZE(seq)), 0);
-    ctx = pldm_transport_test_core(test);
-    rc = pldm_transport_send_recv_msg(ctx, 1, req, sizeof(req), &msg, &len);
-    EXPECT_EQ(rc, PLDM_REQUESTER_RECV_FAIL);
-    pldm_transport_test_destroy(test);
-}
-
 TEST(Transport, send_recv_drain_one_unwanted)
 {
     uint8_t unwanted[] = {0x01, 0x00, 0x01, 0x01};
@@ -258,112 +122,6 @@
     pldm_transport_test_destroy(test);
 }
 
-TEST(Transport, send_recv_wrong_pldm_type)
-{
-    uint8_t req[] = {0x81, 0x00, 0x01, 0x01};
-    uint8_t resp[] = {0x01, 0x01, 0x01, 0x00};
-    const struct pldm_transport_test_descriptor seq[] = {
-        {
-            .type = PLDM_TRANSPORT_TEST_ELEMENT_MSG_SEND,
-            .send_msg =
-                {
-                    .dst = 1,
-                    .msg = req,
-                    .len = sizeof(req),
-                },
-        },
-        {
-            .type = PLDM_TRANSPORT_TEST_ELEMENT_LATENCY,
-            .latency =
-                {
-                    .it_interval = {0, 0},
-                    .it_value = {1, 0},
-                },
-        },
-        {
-            .type = PLDM_TRANSPORT_TEST_ELEMENT_MSG_RECV,
-            .recv_msg =
-                {
-                    .src = 2,
-                    .msg = resp,
-                    .len = sizeof(resp),
-                },
-        },
-        {
-            .type = PLDM_TRANSPORT_TEST_ELEMENT_LATENCY,
-            .latency =
-                {
-                    .it_interval = {0, 0},
-                    .it_value = {4, 0},
-                },
-        },
-    };
-    struct pldm_transport_test* test = NULL;
-    struct pldm_transport* ctx;
-    size_t len;
-    void* msg;
-    int rc;
-
-    EXPECT_EQ(pldm_transport_test_init(&test, seq, ARRAY_SIZE(seq)), 0);
-    ctx = pldm_transport_test_core(test);
-    rc = pldm_transport_send_recv_msg(ctx, 1, req, sizeof(req), &msg, &len);
-    EXPECT_EQ(rc, PLDM_REQUESTER_RECV_FAIL);
-    pldm_transport_test_destroy(test);
-}
-
-TEST(Transport, send_recv_wrong_command_code)
-{
-    uint8_t req[] = {0x81, 0x00, 0x01, 0x01};
-    uint8_t resp[] = {0x01, 0x00, 0x02, 0x00};
-    const struct pldm_transport_test_descriptor seq[] = {
-        {
-            .type = PLDM_TRANSPORT_TEST_ELEMENT_MSG_SEND,
-            .send_msg =
-                {
-                    .dst = 1,
-                    .msg = req,
-                    .len = sizeof(req),
-                },
-        },
-        {
-            .type = PLDM_TRANSPORT_TEST_ELEMENT_LATENCY,
-            .latency =
-                {
-                    .it_interval = {0, 0},
-                    .it_value = {1, 0},
-                },
-        },
-        {
-            .type = PLDM_TRANSPORT_TEST_ELEMENT_MSG_RECV,
-            .recv_msg =
-                {
-                    .src = 2,
-                    .msg = resp,
-                    .len = sizeof(resp),
-                },
-        },
-        {
-            .type = PLDM_TRANSPORT_TEST_ELEMENT_LATENCY,
-            .latency =
-                {
-                    .it_interval = {0, 0},
-                    .it_value = {4, 0},
-                },
-        },
-    };
-    struct pldm_transport_test* test = NULL;
-    struct pldm_transport* ctx;
-    size_t len;
-    void* msg;
-    int rc;
-
-    EXPECT_EQ(pldm_transport_test_init(&test, seq, ARRAY_SIZE(seq)), 0);
-    ctx = pldm_transport_test_core(test);
-    rc = pldm_transport_send_recv_msg(ctx, 1, req, sizeof(req), &msg, &len);
-    EXPECT_EQ(rc, PLDM_REQUESTER_RECV_FAIL);
-    pldm_transport_test_destroy(test);
-}
-
 TEST(Transport, send_recv_req_echo)
 {
     uint8_t req[] = {0x81, 0x00, 0x01, 0x01};
diff --git a/tests/transport/send_recv_one.cpp b/tests/transport/send_recv_one.cpp
new file mode 100644
index 0000000..f411e48
--- /dev/null
+++ b/tests/transport/send_recv_one.cpp
@@ -0,0 +1,53 @@
+#include "array.h"
+#include "libpldm/transport.h"
+#include "transport/test.h"
+
+#include <gtest/gtest.h>
+
+TEST(Transport, send_recv_one)
+{
+    uint8_t req[] = {0x81, 0x00, 0x01, 0x01};
+    uint8_t resp[] = {0x01, 0x00, 0x01, 0x00};
+    const struct pldm_transport_test_descriptor seq[] = {
+        {
+            .type = PLDM_TRANSPORT_TEST_ELEMENT_MSG_SEND,
+            .send_msg =
+                {
+                    .dst = 1,
+                    .msg = req,
+                    .len = sizeof(req),
+                },
+        },
+        {
+            .type = PLDM_TRANSPORT_TEST_ELEMENT_LATENCY,
+            .latency =
+                {
+                    .it_interval = {0, 0},
+                    .it_value = {1, 0},
+                },
+        },
+        {
+            .type = PLDM_TRANSPORT_TEST_ELEMENT_MSG_RECV,
+            .recv_msg =
+                {
+                    .src = 1,
+                    .msg = resp,
+                    .len = sizeof(resp),
+                },
+        },
+    };
+    struct pldm_transport_test* test = NULL;
+    struct pldm_transport* ctx;
+    size_t len;
+    void* msg;
+    int rc;
+
+    EXPECT_EQ(pldm_transport_test_init(&test, seq, ARRAY_SIZE(seq)), 0);
+    ctx = pldm_transport_test_core(test);
+    rc = pldm_transport_send_recv_msg(ctx, 1, req, sizeof(req), &msg, &len);
+    EXPECT_EQ(rc, PLDM_REQUESTER_SUCCESS);
+    EXPECT_EQ(len, sizeof(resp));
+    EXPECT_EQ(memcmp(msg, resp, len), 0);
+    free(msg);
+    pldm_transport_test_destroy(test);
+}
diff --git a/tests/transport/send_recv_timeout.cpp b/tests/transport/send_recv_timeout.cpp
new file mode 100644
index 0000000..d2d6853
--- /dev/null
+++ b/tests/transport/send_recv_timeout.cpp
@@ -0,0 +1,40 @@
+#include "array.h"
+#include "libpldm/transport.h"
+#include "transport/test.h"
+
+#include <gtest/gtest.h>
+
+TEST(Transport, send_recv_timeout)
+{
+    uint8_t req[] = {0x81, 0x00, 0x01, 0x01};
+    const struct pldm_transport_test_descriptor seq[] = {
+        {
+            .type = PLDM_TRANSPORT_TEST_ELEMENT_MSG_SEND,
+            .send_msg =
+                {
+                    .dst = 1,
+                    .msg = req,
+                    .len = sizeof(req),
+                },
+        },
+        {
+            .type = PLDM_TRANSPORT_TEST_ELEMENT_LATENCY,
+            .latency =
+                {
+                    .it_interval = {0, 0},
+                    .it_value = {5, 0},
+                },
+        },
+    };
+    struct pldm_transport_test* test = NULL;
+    struct pldm_transport* ctx;
+    size_t len;
+    void* msg;
+    int rc;
+
+    EXPECT_EQ(pldm_transport_test_init(&test, seq, ARRAY_SIZE(seq)), 0);
+    ctx = pldm_transport_test_core(test);
+    rc = pldm_transport_send_recv_msg(ctx, 1, req, sizeof(req), &msg, &len);
+    EXPECT_EQ(rc, PLDM_REQUESTER_RECV_FAIL);
+    pldm_transport_test_destroy(test);
+}
diff --git a/tests/transport/send_recv_unwanted.cpp b/tests/transport/send_recv_unwanted.cpp
new file mode 100644
index 0000000..7b3ebff
--- /dev/null
+++ b/tests/transport/send_recv_unwanted.cpp
@@ -0,0 +1,58 @@
+#include "array.h"
+#include "libpldm/transport.h"
+#include "transport/test.h"
+
+#include <gtest/gtest.h>
+
+TEST(Transport, send_recv_unwanted)
+{
+    uint8_t req[] = {0x81, 0x00, 0x01, 0x01};
+    uint8_t resp[] = {0x02, 0x00, 0x01, 0x00};
+    const struct pldm_transport_test_descriptor seq[] = {
+        {
+            .type = PLDM_TRANSPORT_TEST_ELEMENT_MSG_SEND,
+            .send_msg =
+                {
+                    .dst = 1,
+                    .msg = req,
+                    .len = sizeof(req),
+                },
+        },
+        {
+            .type = PLDM_TRANSPORT_TEST_ELEMENT_LATENCY,
+            .latency =
+                {
+                    .it_interval = {0, 0},
+                    .it_value = {1, 0},
+                },
+        },
+        {
+            .type = PLDM_TRANSPORT_TEST_ELEMENT_MSG_RECV,
+            .recv_msg =
+                {
+                    .src = 2,
+                    .msg = resp,
+                    .len = sizeof(resp),
+                },
+        },
+        {
+            .type = PLDM_TRANSPORT_TEST_ELEMENT_LATENCY,
+            .latency =
+                {
+                    .it_interval = {0, 0},
+                    .it_value = {4, 0},
+                },
+        },
+    };
+    struct pldm_transport_test* test = NULL;
+    struct pldm_transport* ctx;
+    size_t len;
+    void* msg;
+    int rc;
+
+    EXPECT_EQ(pldm_transport_test_init(&test, seq, ARRAY_SIZE(seq)), 0);
+    ctx = pldm_transport_test_core(test);
+    rc = pldm_transport_send_recv_msg(ctx, 1, req, sizeof(req), &msg, &len);
+    EXPECT_EQ(rc, PLDM_REQUESTER_RECV_FAIL);
+    pldm_transport_test_destroy(test);
+}
diff --git a/tests/transport/send_recv_wrong_command_code.cpp b/tests/transport/send_recv_wrong_command_code.cpp
new file mode 100644
index 0000000..f40a82a
--- /dev/null
+++ b/tests/transport/send_recv_wrong_command_code.cpp
@@ -0,0 +1,58 @@
+#include "array.h"
+#include "libpldm/transport.h"
+#include "transport/test.h"
+
+#include <gtest/gtest.h>
+
+TEST(Transport, send_recv_wrong_command_code)
+{
+    uint8_t req[] = {0x81, 0x00, 0x01, 0x01};
+    uint8_t resp[] = {0x01, 0x00, 0x02, 0x00};
+    const struct pldm_transport_test_descriptor seq[] = {
+        {
+            .type = PLDM_TRANSPORT_TEST_ELEMENT_MSG_SEND,
+            .send_msg =
+                {
+                    .dst = 1,
+                    .msg = req,
+                    .len = sizeof(req),
+                },
+        },
+        {
+            .type = PLDM_TRANSPORT_TEST_ELEMENT_LATENCY,
+            .latency =
+                {
+                    .it_interval = {0, 0},
+                    .it_value = {1, 0},
+                },
+        },
+        {
+            .type = PLDM_TRANSPORT_TEST_ELEMENT_MSG_RECV,
+            .recv_msg =
+                {
+                    .src = 2,
+                    .msg = resp,
+                    .len = sizeof(resp),
+                },
+        },
+        {
+            .type = PLDM_TRANSPORT_TEST_ELEMENT_LATENCY,
+            .latency =
+                {
+                    .it_interval = {0, 0},
+                    .it_value = {4, 0},
+                },
+        },
+    };
+    struct pldm_transport_test* test = NULL;
+    struct pldm_transport* ctx;
+    size_t len;
+    void* msg;
+    int rc;
+
+    EXPECT_EQ(pldm_transport_test_init(&test, seq, ARRAY_SIZE(seq)), 0);
+    ctx = pldm_transport_test_core(test);
+    rc = pldm_transport_send_recv_msg(ctx, 1, req, sizeof(req), &msg, &len);
+    EXPECT_EQ(rc, PLDM_REQUESTER_RECV_FAIL);
+    pldm_transport_test_destroy(test);
+}
diff --git a/tests/transport/send_recv_wrong_pldm_type.cpp b/tests/transport/send_recv_wrong_pldm_type.cpp
new file mode 100644
index 0000000..e57207d
--- /dev/null
+++ b/tests/transport/send_recv_wrong_pldm_type.cpp
@@ -0,0 +1,58 @@
+#include "array.h"
+#include "libpldm/transport.h"
+#include "transport/test.h"
+
+#include <gtest/gtest.h>
+
+TEST(Transport, send_recv_wrong_pldm_type)
+{
+    uint8_t req[] = {0x81, 0x00, 0x01, 0x01};
+    uint8_t resp[] = {0x01, 0x01, 0x01, 0x00};
+    const struct pldm_transport_test_descriptor seq[] = {
+        {
+            .type = PLDM_TRANSPORT_TEST_ELEMENT_MSG_SEND,
+            .send_msg =
+                {
+                    .dst = 1,
+                    .msg = req,
+                    .len = sizeof(req),
+                },
+        },
+        {
+            .type = PLDM_TRANSPORT_TEST_ELEMENT_LATENCY,
+            .latency =
+                {
+                    .it_interval = {0, 0},
+                    .it_value = {1, 0},
+                },
+        },
+        {
+            .type = PLDM_TRANSPORT_TEST_ELEMENT_MSG_RECV,
+            .recv_msg =
+                {
+                    .src = 2,
+                    .msg = resp,
+                    .len = sizeof(resp),
+                },
+        },
+        {
+            .type = PLDM_TRANSPORT_TEST_ELEMENT_LATENCY,
+            .latency =
+                {
+                    .it_interval = {0, 0},
+                    .it_value = {4, 0},
+                },
+        },
+    };
+    struct pldm_transport_test* test = NULL;
+    struct pldm_transport* ctx;
+    size_t len;
+    void* msg;
+    int rc;
+
+    EXPECT_EQ(pldm_transport_test_init(&test, seq, ARRAY_SIZE(seq)), 0);
+    ctx = pldm_transport_test_core(test);
+    rc = pldm_transport_send_recv_msg(ctx, 1, req, sizeof(req), &msg, &len);
+    EXPECT_EQ(rc, PLDM_REQUESTER_RECV_FAIL);
+    pldm_transport_test_destroy(test);
+}
