phosphor-ipmi-flash: Code Health Cleanup

Removed the following warning.
- using decl '*' is unused
- 'push_back' is called inside a loop; consider pre-allocating the
    container capacity before the loop
- function '*' defined in a header file; function
    definitions in header files can lead to ODR violations

Change-Id: I44e4b0f8056a853fb45b690394be1a8ebec45b20
Signed-off-by: Willy Tu <wltu@google.com>
diff --git a/bmc/test/image_mock.cpp b/bmc/test/image_mock.cpp
new file mode 100644
index 0000000..b1de68b
--- /dev/null
+++ b/bmc/test/image_mock.cpp
@@ -0,0 +1,9 @@
+#include "image_mock.hpp"
+
+namespace ipmi_flash
+{
+std::unique_ptr<ImageHandlerMock> CreateImageMock()
+{
+    return std::make_unique<ImageHandlerMock>();
+}
+} // namespace ipmi_flash
diff --git a/bmc/test/image_mock.hpp b/bmc/test/image_mock.hpp
index 9999f58..8d84dbe 100644
--- a/bmc/test/image_mock.hpp
+++ b/bmc/test/image_mock.hpp
@@ -23,9 +23,6 @@
     MOCK_METHOD(int, getSize, (), (override));
 };
 
-std::unique_ptr<ImageHandlerMock> CreateImageMock()
-{
-    return std::make_unique<ImageHandlerMock>();
-}
+std::unique_ptr<ImageHandlerMock> CreateImageMock();
 
 } // namespace ipmi_flash
diff --git a/bmc/test/meson.build b/bmc/test/meson.build
index c579ec8..61d4767 100644
--- a/bmc/test/meson.build
+++ b/bmc/test/meson.build
@@ -1 +1,28 @@
 bmc_test_inc = include_directories('.')
+
+image_mock_pre = declare_dependency(
+  include_directories: [root_inc, bmc_inc])
+
+image_mock_lib = static_library(
+  'image_mock',
+  'image_mock.cpp',
+  implicit_include_directories: false,
+  dependencies: image_mock_pre)
+
+image_mock_dep = declare_dependency(
+  link_with: image_mock_lib,
+  dependencies: image_mock_pre)
+
+
+triggerable_mock_pre = declare_dependency(
+  include_directories: [root_inc])
+
+triggerable_mock_lib = static_library(
+  'triggerable_mock',
+  'triggerable_mock.cpp',
+  implicit_include_directories: false,
+  dependencies: triggerable_mock_pre)
+
+triggerable_mock_dep = declare_dependency(
+  link_with: triggerable_mock_lib,
+  dependencies: triggerable_mock_pre)
diff --git a/bmc/test/triggerable_mock.cpp b/bmc/test/triggerable_mock.cpp
new file mode 100644
index 0000000..b599341
--- /dev/null
+++ b/bmc/test/triggerable_mock.cpp
@@ -0,0 +1,11 @@
+#include "triggerable_mock.hpp"
+
+#include <memory>
+
+namespace ipmi_flash
+{
+std::unique_ptr<TriggerableActionInterface> CreateTriggerMock()
+{
+    return std::make_unique<TriggerMock>();
+}
+} // namespace ipmi_flash
diff --git a/bmc/test/triggerable_mock.hpp b/bmc/test/triggerable_mock.hpp
index 0db90ee..4ae4463 100644
--- a/bmc/test/triggerable_mock.hpp
+++ b/bmc/test/triggerable_mock.hpp
@@ -22,9 +22,6 @@
     using TriggerableActionInterface::cb;
 };
 
-std::unique_ptr<TriggerableActionInterface> CreateTriggerMock()
-{
-    return std::make_unique<TriggerMock>();
-}
+std::unique_ptr<TriggerableActionInterface> CreateTriggerMock();
 
 } // namespace ipmi_flash