regulators: Modify close() to use services
Modify the Device::close() method in the Device class to have a new
first parameter: Services& services.
Modify Device::close() to log messages using the new Journal
interface.
Modify the Chassis::closeDevices() method in the Chassis class to
have a new first parameter: Services& services.
Modify Chassis::closeDevices() to log messages using the new
Journal interface.
Signed-off-by: Bob King <Bob_King@wistron.com>
Change-Id: I2a07417d6f7470685f2c27c878ef7936e9f1aa8a
diff --git a/phosphor-regulators/test/device_tests.cpp b/phosphor-regulators/test/device_tests.cpp
index 62cf97e..19271d4 100644
--- a/phosphor-regulators/test/device_tests.cpp
+++ b/phosphor-regulators/test/device_tests.cpp
@@ -19,7 +19,6 @@
#include "device.hpp"
#include "i2c_interface.hpp"
#include "id_map.hpp"
-#include "journal.hpp"
#include "mock_action.hpp"
#include "mock_journal.hpp"
#include "mock_services.hpp"
@@ -154,14 +153,19 @@
EXPECT_CALL(*i2cInterface, isOpen).Times(1).WillOnce(Return(false));
EXPECT_CALL(*i2cInterface, close).Times(0);
+ // Create mock services. No logError should occur.
+ MockServices services{};
+ MockJournal& journal = services.getMockJournal();
+ EXPECT_CALL(journal, logError(A<const std::string&>())).Times(0);
+ EXPECT_CALL(journal, logError(A<const std::vector<std::string>&>()))
+ .Times(0);
+
// Create Device
Device device{"vdd_reg", true, "/system/chassis/motherboard/reg2",
std::move(i2cInterface)};
// Close Device
- journal::clear();
- device.close();
- EXPECT_EQ(journal::getErrMessages().size(), 0);
+ device.close(services);
}
// Test where works: I2C interface is open
@@ -172,14 +176,19 @@
EXPECT_CALL(*i2cInterface, isOpen).Times(1).WillOnce(Return(true));
EXPECT_CALL(*i2cInterface, close).Times(1);
+ // Create mock services. No logError should occur.
+ MockServices services{};
+ MockJournal& journal = services.getMockJournal();
+ EXPECT_CALL(journal, logError(A<const std::string&>())).Times(0);
+ EXPECT_CALL(journal, logError(A<const std::vector<std::string>&>()))
+ .Times(0);
+
// Create Device
Device device{"vdd_reg", true, "/system/chassis/motherboard/reg2",
std::move(i2cInterface)};
// Close Device
- journal::clear();
- device.close();
- EXPECT_EQ(journal::getErrMessages().size(), 0);
+ device.close(services);
}
// Test where fails: closing I2C interface fails
@@ -193,17 +202,21 @@
.WillOnce(Throw(
i2c::I2CException{"Failed to close", "/dev/i2c-1", 0x70}));
+ // Create mock services. Expect logError() to be called.
+ MockServices services{};
+ MockJournal& journal = services.getMockJournal();
+ std::vector<std::string> expectedErrMessagesException{
+ "I2CException: Failed to close: bus /dev/i2c-1, addr 0x70"};
+ EXPECT_CALL(journal, logError("Unable to close device vdd_reg"))
+ .Times(1);
+ EXPECT_CALL(journal, logError(expectedErrMessagesException)).Times(1);
+
// Create Device
Device device{"vdd_reg", true, "/system/chassis/motherboard/reg2",
std::move(i2cInterface)};
// Close Device
- journal::clear();
- device.close();
- std::vector<std::string> expectedErrMessages{
- "I2CException: Failed to close: bus /dev/i2c-1, addr 0x70",
- "Unable to close device vdd_reg"};
- EXPECT_EQ(journal::getErrMessages(), expectedErrMessages);
+ device.close(services);
}
}