tools/pci: add wrapper for libpciaccess
This allows unit testing code that uses libpciaccess.
Signed-off-by: Benjamin Fair <benjaminfair@google.com>
Change-Id: Iec559c72e0e7b6c2e8737a54bb3e88fe1e0f4fdb
diff --git a/tools/test/Makefile.am b/tools/test/Makefile.am
index 1fe35a0..16c1bb3 100644
--- a/tools/test/Makefile.am
+++ b/tools/test/Makefile.am
@@ -18,6 +18,7 @@
check_PROGRAMS = \
tools_bt_unittest \
tools_lpc_unittest \
+ tools_pci_unittest \
tools_net_unittest \
tools_updater_unittest \
tools_helper_unittest
@@ -30,6 +31,9 @@
tools_lpc_unittest_SOURCES = tools_lpc_unittest.cpp
tools_lpc_unittest_LDADD = $(top_builddir)/tools/libupdater.la
+tools_pci_unittest_SOURCES = tools_pci_unittest.cpp
+tools_pci_unittest_LDADD = $(top_builddir)/tools/libupdater.la
+
tools_net_unittest_SOURCES = tools_net_unittest.cpp
tools_net_unittest_LDADD = $(top_builddir)/tools/libupdater.la
diff --git a/tools/test/pciaccess_mock.hpp b/tools/test/pciaccess_mock.hpp
new file mode 100644
index 0000000..e717c74
--- /dev/null
+++ b/tools/test/pciaccess_mock.hpp
@@ -0,0 +1,25 @@
+#pragma once
+
+#include "pciaccess.hpp"
+
+#include <gmock/gmock.h>
+
+namespace host_tool
+{
+
+class PciAccessMock : public PciAccess
+{
+ public:
+ MOCK_CONST_METHOD1(pci_id_match_iterator_create,
+ struct pci_device_iterator*(const struct pci_id_match*));
+ MOCK_CONST_METHOD1(pci_iterator_destroy, void(struct pci_device_iterator*));
+ MOCK_CONST_METHOD1(pci_device_next,
+ struct pci_device*(struct pci_device_iterator*));
+ MOCK_CONST_METHOD1(pci_device_probe, int(struct pci_device*));
+ MOCK_CONST_METHOD5(pci_device_map_range, int(struct pci_device*, pciaddr_t,
+ pciaddr_t, unsigned, void**));
+ MOCK_CONST_METHOD3(pci_device_unmap_range,
+ int(struct pci_device*, void*, pciaddr_t));
+};
+
+} // namespace host_tool
diff --git a/tools/test/tools_pci_unittest.cpp b/tools/test/tools_pci_unittest.cpp
new file mode 100644
index 0000000..cc67926
--- /dev/null
+++ b/tools/test/tools_pci_unittest.cpp
@@ -0,0 +1,19 @@
+#include "internal_sys_mock.hpp"
+#include "pciaccess_mock.hpp"
+
+#include <gtest/gtest.h>
+
+namespace host_tool
+{
+namespace
+{
+
+TEST(PciHandleTest, empty)
+{
+ PciAccessMock pciMock;
+
+ (void)pciMock;
+}
+
+} // namespace
+} // namespace host_tool