Create libi2c_dev_mock.a to solve linker errors
The i2c::create() function is currently defined in
mocked_i2c_interface.hpp. This causes linker errors if that header file
is included by multiple .cpp files in the same test executable.
Moved i2c::create() to mocked_i2c_interface.cpp so that it is only
defined once. Created the static library libi2c_dev_mock.a that
contains mocked_i2c_interface.o.
Test executables that need the mock version of i2c::create() should link
with libi2c_dev_mock.a.
Normal executables that need the real version of i2c::create() should
link with libi2c_dev.a as before. This has not changed.
Signed-off-by: Shawn McCarney <shawnmm@us.ibm.com>
Change-Id: Ic00203c5429c1a2162327905ba547602258c6b0d
diff --git a/tools/power-utils/test/meson.build b/tools/power-utils/test/meson.build
index 1f23ad0..1d365c3 100644
--- a/tools/power-utils/test/meson.build
+++ b/tools/power-utils/test/meson.build
@@ -29,9 +29,14 @@
phosphor_logging,
],
implicit_include_directories: false,
- include_directories: [libpower_inc, libi2c_inc],
+ include_directories: [
+ libpower_inc,
+ libi2c_inc,
+ libi2c_dev_mock_inc
+ ],
link_with: [
libpower,
+ libi2c_dev_mock
],
objects: record_manager,
)
diff --git a/tools/power-utils/test/test_updater.cpp b/tools/power-utils/test/test_updater.cpp
index c51c233..6ad3f73 100644
--- a/tools/power-utils/test/test_updater.cpp
+++ b/tools/power-utils/test/test_updater.cpp
@@ -14,7 +14,7 @@
* limitations under the License.
*/
#include "../updater.hpp"
-#include "test/mocked_i2c_interface.hpp"
+#include "mocked_i2c_interface.hpp"
#include <filesystem>