sdbus: Add some sd_bus_error_* functions for mocking

This is needed for a future commit which implements dependency injection
on the SdBusError class.

Tested:
    Functions can be used and mocked as expected.

Change-Id: I15ae9643b2e1fad0abb1fa08483032502d0f623f
Signed-off-by: William A. Kennington III <wak@google.com>
diff --git a/sdbusplus/sdbus.hpp b/sdbusplus/sdbus.hpp
index ead2888..4477d6e 100644
--- a/sdbusplus/sdbus.hpp
+++ b/sdbusplus/sdbus.hpp
@@ -44,6 +44,10 @@
 
     virtual int sd_bus_error_set_const(sd_bus_error *e, const char *name,
                                        const char *message) = 0;
+    virtual int sd_bus_error_get_errno(const sd_bus_error *e) = 0;
+    virtual int sd_bus_error_set_errno(sd_bus_error *e, int error) = 0;
+    virtual int sd_bus_error_is_set(const sd_bus_error *e) = 0;
+    virtual void sd_bus_error_free(sd_bus_error *e) = 0;
 
     virtual sd_event *sd_bus_get_event(sd_bus *bus) = 0;
     virtual int sd_bus_get_fd(sd_bus *bus) = 0;
@@ -205,6 +209,26 @@
         return ::sd_bus_error_set_const(e, name, message);
     }
 
+    int sd_bus_error_get_errno(const sd_bus_error *e) override
+    {
+        return ::sd_bus_error_get_errno(e);
+    }
+
+    int sd_bus_error_set_errno(sd_bus_error *e, int error) override
+    {
+        return ::sd_bus_error_set_errno(e, error);
+    }
+
+    int sd_bus_error_is_set(const sd_bus_error *e) override
+    {
+        return ::sd_bus_error_is_set(e);
+    }
+
+    void sd_bus_error_free(sd_bus_error *e) override
+    {
+        return ::sd_bus_error_free(e);
+    }
+
     sd_event *sd_bus_get_event(sd_bus *bus) override
     {
         return ::sd_bus_get_event(bus);
diff --git a/sdbusplus/test/sdbus_mock.hpp b/sdbusplus/test/sdbus_mock.hpp
index be8d0ac..6fe9cb7 100644
--- a/sdbusplus/test/sdbus_mock.hpp
+++ b/sdbusplus/test/sdbus_mock.hpp
@@ -34,6 +34,10 @@
 
     MOCK_METHOD3(sd_bus_error_set_const,
                  int(sd_bus_error *, const char *, const char *));
+    MOCK_METHOD1(sd_bus_error_get_errno, int(const sd_bus_error *));
+    MOCK_METHOD2(sd_bus_error_set_errno, int(sd_bus_error *, int));
+    MOCK_METHOD1(sd_bus_error_is_set, int(const sd_bus_error *));
+    MOCK_METHOD1(sd_bus_error_free, void(sd_bus_error *));
 
     MOCK_METHOD1(sd_bus_get_event, sd_event *(sd_bus *));
     MOCK_METHOD1(sd_bus_get_fd, int(sd_bus *));