diff --git a/test/elog_errorwrap_test.hpp b/test/elog_errorwrap_test.hpp
index d5a4b33..553e2e8 100644
--- a/test/elog_errorwrap_test.hpp
+++ b/test/elog_errorwrap_test.hpp
@@ -68,7 +68,7 @@
 class MockJournal : public Manager
 {
   public:
-    MockJournal(sdbusplus::bus::bus& bus, const char* objPath) :
+    MockJournal(sdbusplus::bus_t& bus, const char* objPath) :
         Manager(bus, objPath){};
     MOCK_METHOD0(journalSync, void());
     MOCK_METHOD2(sd_journal_open, int(sd_journal**, int));
@@ -80,7 +80,7 @@
 class TestLogManager : public testing::Test
 {
   public:
-    sdbusplus::bus::bus bus;
+    sdbusplus::bus_t bus;
     MockJournal manager;
     TestLogManager() :
         bus(sdbusplus::bus::new_default()),
diff --git a/test/elog_quiesce_test.cpp b/test/elog_quiesce_test.cpp
index a80cb91..7416e4f 100644
--- a/test/elog_quiesce_test.cpp
+++ b/test/elog_quiesce_test.cpp
@@ -21,7 +21,7 @@
 {
   public:
     sdbusplus::SdBusMock sdbusMock;
-    sdbusplus::bus::bus mockedBus = sdbusplus::get_mocked_new(&sdbusMock);
+    sdbusplus::bus_t mockedBus = sdbusplus::get_mocked_new(&sdbusMock);
     phosphor::logging::internal::Manager manager;
 
     TestQuiesceOnError() : manager(mockedBus, OBJ_INTERNAL)
diff --git a/test/extensions_test.cpp b/test/extensions_test.cpp
index a3bd119..c54f376 100644
--- a/test/extensions_test.cpp
+++ b/test/extensions_test.cpp
@@ -60,7 +60,7 @@
 TEST(ExtensionsTest, FunctionCallTest)
 {
     sdbusplus::SdBusMock sdbusMock;
-    sdbusplus::bus::bus bus = sdbusplus::get_mocked_new(&sdbusMock);
+    sdbusplus::bus_t bus = sdbusplus::get_mocked_new(&sdbusMock);
     internal::Manager manager(bus, "testpath");
 
     EXPECT_EQ(Extensions::getStartupFunctions().size(), 2);
diff --git a/test/openpower-pels/pel_manager_test.cpp b/test/openpower-pels/pel_manager_test.cpp
index 41d6138..fc77a5e 100644
--- a/test/openpower-pels/pel_manager_test.cpp
+++ b/test/openpower-pels/pel_manager_test.cpp
@@ -63,7 +63,7 @@
     }
 
     NiceMock<sdbusplus::SdBusMock> sdbusInterface;
-    sdbusplus::bus::bus bus;
+    sdbusplus::bus_t bus;
     phosphor::logging::internal::Manager logManager;
     sd_event* sdEvent;
     TestLogger logger;
diff --git a/test/remote_logging_tests.hpp b/test/remote_logging_tests.hpp
index d56a539..9c7e3a2 100644
--- a/test/remote_logging_tests.hpp
+++ b/test/remote_logging_tests.hpp
@@ -24,7 +24,7 @@
 class MockServer : public phosphor::rsyslog_config::Server
 {
   public:
-    MockServer(sdbusplus::bus::bus& bus, const std::string& path,
+    MockServer(sdbusplus::bus_t& bus, const std::string& path,
                const char* filePath) :
         phosphor::rsyslog_config::Server(bus, path, filePath)
     {
diff --git a/test/serialization_tests.hpp b/test/serialization_tests.hpp
index 902ddf3..c92237a 100644
--- a/test/serialization_tests.hpp
+++ b/test/serialization_tests.hpp
@@ -21,7 +21,7 @@
 
 char tmplt[] = "/tmp/logging_test.XXXXXX";
 sdbusplus::SdBusMock sdbusMock;
-sdbusplus::bus::bus bus = sdbusplus::get_mocked_new(&sdbusMock);
+sdbusplus::bus_t bus = sdbusplus::get_mocked_new(&sdbusMock);
 phosphor::logging::internal::Manager manager(bus, OBJ_INTERNAL);
 
 class TestSerialization : public testing::Test
