diff --git a/test/Makefile.am b/test/Makefile.am
index ff56179..0ded744 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -6,7 +6,8 @@
 
 utest_LDADD = $(top_builddir)/libocc_control.la -lstdc++fs
 
-utest_SOURCES = utest.cpp \
+utest_SOURCES = error_files_tests.cpp \
+                utest.cpp \
                 TestI2cOcc.cpp
 
 utest_CPPFLAGS = $(GTEST_CPPFLAGS) \
diff --git a/test/error_files_tests.cpp b/test/error_files_tests.cpp
new file mode 100644
index 0000000..532818a
--- /dev/null
+++ b/test/error_files_tests.cpp
@@ -0,0 +1,103 @@
+#include "occ_manager.hpp"
+
+#include <stdlib.h>
+
+#include <filesystem>
+#include <fstream>
+
+#include <gtest/gtest.h>
+
+constexpr auto num_error_files = 8;
+constexpr auto device = "occ-hwmon.1";
+constexpr auto error = "occ_error";
+constexpr auto errorMem = "occ_mem_throttle";
+constexpr auto errorPower = "occ_dvfs_power";
+constexpr auto errorTemp = "occ_dvfs_overtemp";
+constexpr auto legacyDevice = "occ-hwmon.2";
+constexpr auto legacyErrorTemp = "occ_dvfs_ot";
+constexpr auto noError = "0";
+
+namespace fs = std::experimental::filesystem;
+using namespace open_power::occ;
+
+class ErrorFiles : public ::testing::Test
+{
+  public:
+    ErrorFiles() :
+        bus(sdbusplus::bus::new_default()), rc(sd_event_default(&event)),
+        pEvent(event), manager(bus, pEvent),
+        status(bus, pEvent, "/dummy1", manager)
+    {
+        EXPECT_GE(rc, 0);
+        event = nullptr;
+    }
+
+    virtual void SetUp()
+    {
+        fs::path files[num_error_files];
+        char tmpDirTemplate[64];
+
+        strcpy(tmpDirTemplate, "/tmp/occXXXXXX");
+        auto path = mkdtemp(tmpDirTemplate);
+        assert(path != nullptr);
+
+        occPath = path;
+        devicePath = occPath / device;
+        legacyDevicePath = occPath / legacyDevice;
+
+        fs::create_directory(devicePath);
+        fs::create_directory(legacyDevicePath);
+
+        files[0] = devicePath / error;
+        files[1] = devicePath / errorMem;
+        files[2] = devicePath / errorPower;
+        files[3] = devicePath / errorTemp;
+        files[4] = legacyDevicePath / error;
+        files[5] = legacyDevicePath / errorMem;
+        files[6] = legacyDevicePath / errorPower;
+        files[7] = legacyDevicePath / legacyErrorTemp;
+
+        for (const fs::path& f : files)
+        {
+            auto stream = std::ofstream(f.c_str());
+
+            if (stream)
+            {
+                stream << noError;
+            }
+        }
+    }
+
+    virtual void TearDown()
+    {
+        fs::remove_all(occPath);
+    }
+
+    sdbusplus::bus::bus bus;
+    sd_event* event;
+    int rc;
+    open_power::occ::EventPtr pEvent;
+
+    Manager manager;
+    Status status;
+
+    fs::path devicePath;
+    fs::path legacyDevicePath;
+    fs::path occPath;
+};
+
+TEST_F(ErrorFiles, AddDeviceErrorWatch)
+{
+    Device occDevice(pEvent, devicePath, manager, status);
+
+    occDevice.addErrorWatch(false);
+    occDevice.removeErrorWatch();
+}
+
+TEST_F(ErrorFiles, AddLegacyDeviceErrorWatch)
+{
+    Device legacyOccDevice(pEvent, legacyDevicePath, manager, status);
+
+    legacyOccDevice.addErrorWatch(false);
+    legacyOccDevice.removeErrorWatch();
+}
diff --git a/test/utest.cpp b/test/utest.cpp
index eb9ca0b..39e5250 100644
--- a/test/utest.cpp
+++ b/test/utest.cpp
@@ -1,5 +1,6 @@
 #include "powercap.hpp"
 
+#include <experimental/filesystem>
 #include <occ_events.hpp>
 #include <occ_manager.hpp>
 
@@ -43,3 +44,27 @@
     uint32_t occInput = pcap.getOccInput(100, true);
     EXPECT_EQ(occInput, 90);
 }
+
+TEST(VerifyPathParsing, EmptyPath)
+{
+    std::experimental::filesystem::path path = "";
+    std::string parsed = Device::getPathBack(path);
+
+    EXPECT_STREQ(parsed.c_str(), "");
+}
+
+TEST(VerifyPathParsing, FilenamePath)
+{
+    std::experimental::filesystem::path path = "/test/foo.bar";
+    std::string parsed = Device::getPathBack(path);
+
+    EXPECT_STREQ(parsed.c_str(), "foo.bar");
+}
+
+TEST(VerifyPathParsing, DirectoryPath)
+{
+    std::experimental::filesystem::path path = "/test/bar/";
+    std::string parsed = Device::getPathBack(path);
+
+    EXPECT_STREQ(parsed.c_str(), "bar");
+}
