Include raw read value in PSU sensor conversion error messages. When a PSU sensor fails to convert read data to a number, the error message now includes the raw value that failed conversion to aid in debugging. Corresponding unit tests have been updated and expanded to verify this behavior. Google-Bug-Id:534801029 PiperOrigin-RevId: 968074336 Change-Id: Icb826ca0f0ecb413d4dd9d4ef1e2c31a49388ed8
diff --git a/tlbmc/sensors/psu_sensor.cc b/tlbmc/sensors/psu_sensor.cc index c00dc69..d50aece 100644 --- a/tlbmc/sensors/psu_sensor.cc +++ b/tlbmc/sensors/psu_sensor.cc
@@ -26,6 +26,7 @@ #include "absl/strings/match.h" #include "absl/strings/str_cat.h" #include "absl/strings/str_format.h" +#include "absl/strings/string_view.h" #include "absl/strings/substitute.h" #include "boost/asio.hpp" // NOLINT: boost::asio is commonly used in BMC #include "boost/asio/random_access_file.hpp" // NOLINT: boost::asio is commonly used in BMC @@ -696,9 +697,10 @@ if (result.ec != std::errc()) { State state; state.set_status(STATUS_STALE); - state.set_status_message( - absl::StrCat("Read data can't be converted to a number: ", - std::make_error_condition(result.ec).message())); + state.set_status_message(absl::Substitute( + "Read data can't be converted to a number: $0; raw value is $1", + std::make_error_condition(result.ec).message(), + absl::string_view(GetConstReadBuffer().data(), bytes_read))); UpdateState(std::move(state)); return; }