tree 44ac9222cc717ca04ab76789ae49bb6e79484e5b
parent 5cfe51037ae9a2686b7782788805c1382485fd39
author Jay Meyer <jaymeyer@us.ibm.com> 1598391436 -0500
committer Shawn McCarney <shawnmm@us.ibm.com> 1600891572 +0000

Enhance PSU tracing support - add device access info

Move file names for file errors to the journal message. Enhance usablility.

Logging messages for file errors contain the file names inside structured
entries rather than directly in the log message. This makes viewing errors
more difficult than need be. Before this change, the journal report needed to
be run with '-o verbose' to see the file names.

Tested: Ran unit tests. All successful
Tested:
* Changes to phosphor-power-supply/main.cpp were tested by running with the
  .json configuration file missing in either and both default locations.
* Change to loadJSONFromFile() in utility.cpp for an invalid file was tested by
  giving invalid  "psu_config.json" file to main program.
* Empty file message was tested by changing main() to allow loadJSONFromFile()
  to be called it when the file did not exist.
* Changes to other files were tested by running phosphor-power initialization
  and manipulating the code to force execution of various error paths.
* Methods that are changed but were not directly called by phosphor-power
  initialization:
   PMBus::readBit(), PMBus::readBinary() and PMBus::write().
   The changed log messages in these were tested by adding calls to them from
   PMBus::read() and then changing code to force execution through paths that
   created the log messages.

Signed-off-by: Jay Meyer <jaymeyer@us.ibm.com>
Change-Id: I1f0c01716495ac7022d5234e9a8dfdab8195c186
