diff --git a/test/mock_syscall.cpp b/test/mock_syscall.cpp
index 3f96e1d..021c304 100644
--- a/test/mock_syscall.cpp
+++ b/test/mock_syscall.cpp
@@ -41,6 +41,15 @@
 std::map<int, std::string> mock_if_indextoname;
 std::map<std::string, ether_addr> mock_macs;
 
+void mock_clear()
+{
+    mock_ifaddrs = nullptr;
+    ifaddr_count = 0;
+    mock_if_nametoindex.clear();
+    mock_if_indextoname.clear();
+    mock_macs.clear();
+}
+
 void mock_addIF(const std::string& name, int idx, const ether_addr& mac)
 {
     if (idx == 0)
diff --git a/test/mock_syscall.hpp b/test/mock_syscall.hpp
index 4d934b3..74a693e 100644
--- a/test/mock_syscall.hpp
+++ b/test/mock_syscall.hpp
@@ -3,6 +3,10 @@
 
 #include <string>
 
+/** @brief Clears out the interfaces and IPs configured for mocking
+ */
+void mock_clear();
+
 /** @brief Adds the given interface and addr info
  *         into the ifaddr list.
  *  @param[in] name - Interface name.
diff --git a/test/test_ethernet_interface.cpp b/test/test_ethernet_interface.cpp
index c25bba9..5ea7f7a 100644
--- a/test/test_ethernet_interface.cpp
+++ b/test/test_ethernet_interface.cpp
@@ -56,6 +56,7 @@
     static EthernetInterface makeInterface(sdbusplus::bus::bus& bus,
                                            MockManager& manager)
     {
+        mock_clear();
         mock_addIF("test0", 1, mac);
         return {bus, "/xyz/openbmc_test/network/test0", false, manager};
     }
diff --git a/test/test_neighbor.cpp b/test/test_neighbor.cpp
index ffb0d5d..ecde351 100644
--- a/test/test_neighbor.cpp
+++ b/test/test_neighbor.cpp
@@ -61,6 +61,7 @@
 
 TEST(ParseNeighbor, NoAttrs)
 {
+    mock_clear();
     mock_addIF(ifStr, ifIdx);
 
     nlmsghdr hdr{};
@@ -78,6 +79,7 @@
 
 TEST(ParseNeighbor, NoAddress)
 {
+    mock_clear();
     mock_addIF(ifStr, ifIdx);
 
     nlmsghdr hdr{};
@@ -104,6 +106,7 @@
 
 TEST(ParseNeighbor, NoMAC)
 {
+    mock_clear();
     mock_addIF(ifStr, ifIdx);
 
     nlmsghdr hdr{};
@@ -137,6 +140,7 @@
 
 TEST(ParseNeighbor, Full)
 {
+    mock_clear();
     mock_addIF(ifStr, ifIdx);
 
     nlmsghdr hdr{};
diff --git a/test/test_netlink.cpp b/test/test_netlink.cpp
index b788dd1..41cd1ca 100644
--- a/test/test_netlink.cpp
+++ b/test/test_netlink.cpp
@@ -1,3 +1,4 @@
+#include "mock_syscall.hpp"
 #include "netlink.hpp"
 #include "util.hpp"
 
diff --git a/test/test_network_manager.cpp b/test/test_network_manager.cpp
index f4de35a..2837296 100644
--- a/test/test_network_manager.cpp
+++ b/test/test_network_manager.cpp
@@ -70,6 +70,8 @@
     bool caughtException = false;
     try
     {
+        mock_clear();
+
         // Adds the following ip in the getifaddrs list.
         mock_addIF("igb1", 2);
         mock_addIP("igb1", "192.0.2.3", "255.255.255.128",
@@ -93,6 +95,8 @@
 {
     try
     {
+        mock_clear();
+
         mock_addIF("igb0", 1);
         mock_addIP("igb0", "192.0.2.2", "255.255.255.128",
                    IFF_UP | IFF_RUNNING);
diff --git a/test/test_rtnetlink.cpp b/test/test_rtnetlink.cpp
index 794a0dd..6a8c02d 100644
--- a/test/test_rtnetlink.cpp
+++ b/test/test_rtnetlink.cpp
@@ -87,6 +87,7 @@
 TEST_F(TestRtNetlink, WithSingleInterface)
 {
     using namespace std::chrono;
+    mock_clear();
     // Adds the following ip in the getifaddrs list.
     mock_addIF("igb5", 6);
     mock_addIP("igb5", "127.0.0.1", "255.255.255.128", IFF_UP | IFF_RUNNING);
diff --git a/test/test_vlan_interface.cpp b/test/test_vlan_interface.cpp
index 0ff893c..1dffc7e 100644
--- a/test/test_vlan_interface.cpp
+++ b/test/test_vlan_interface.cpp
@@ -48,6 +48,7 @@
     static EthernetInterface makeInterface(sdbusplus::bus::bus& bus,
                                            MockManager& manager)
     {
+        mock_clear();
         mock_addIF("test0", 1);
         return {bus, "/xyz/openbmc_test/network/test0", false, manager};
     }
