clang-tidy: Add bugprone-unchecked-optional-access

Enabled the clang-tidy check `bugprone-unchecked-optional-access` to
improve code safety when working with std::optional.

Fixed the following instances where optional values were accessed
without prior validation.

'''
../libipmid/utils.cpp:173:12: error: unchecked access to optional value [bugprone-unchecked-optional-access,-warnings-as-errors]
  173 |     return cachedService.value();
./chassishandler.cpp:1124:21: error: unchecked access to optional value [bugprone-unchecked-optional-access,-warnings-as-errors]
 1124 |                     sdbusplus::message::convert_from_string<Intrusion::Status>(
'''

Change-Id: I910a6007453be4b01adc9bda36d2d37358de1ace
Signed-off-by: Jayanth Othayoth <ojayanth@gmail.com>
3 files changed
tree: 1374126fd44296cf2ce1707ea1d9654c552fe268
  1. app/
  2. dbus-sdr/
  3. docs/
  4. include/
  5. libipmid/
  6. oem/
  7. scripts/
  8. softoff/
  9. subprojects/
  10. test/
  11. transport/
  12. user_channel/
  13. xyz/
  14. .build.sh
  15. .clang-format
  16. .clang-tidy
  17. .gitignore
  18. .shellcheck
  19. .travis.yml
  20. apphandler.cpp
  21. apphandler.hpp
  22. chassishandler.cpp
  23. chassishandler.hpp
  24. dcmihandler.cpp
  25. dcmihandler.hpp
  26. error-HostEvent.hpp
  27. fruread.hpp
  28. generate_whitelist.sh
  29. generate_whitelist_create.sh
  30. globalhandler.cpp
  31. groupext.cpp
  32. host-cmd-manager.cpp
  33. host-cmd-manager.hpp
  34. host-interface.cpp
  35. host-interface.hpp
  36. host-ipmid-whitelist.conf
  37. ipmi_fru_info_area.cpp
  38. ipmi_fru_info_area.hpp
  39. ipmiallowlist.hpp
  40. ipmid-new.cpp
  41. ipmisensor.cpp
  42. LICENSE
  43. meson.build
  44. meson.options
  45. OWNERS
  46. read_fru_data.cpp
  47. read_fru_data.hpp
  48. README.md
  49. sbmrhandler.cpp
  50. selutility.cpp
  51. selutility.hpp
  52. sensordatahandler.cpp
  53. sensordatahandler.hpp
  54. sensorhandler.cpp
  55. sensorhandler.hpp
  56. settings.cpp
  57. settings.hpp
  58. storageaddsel.cpp
  59. storageaddsel.hpp
  60. storagehandler.cpp
  61. sys_info_param.cpp
  62. sys_info_param.hpp
  63. systemintfcmds.cpp
  64. systemintfcmds.hpp
  65. transportconstants.hpp
  66. transporthandler.cpp
  67. transporthandler.hpp
  68. whitelist-filter.cpp
README.md

phosphor-host-ipmid

Compile ipmid with default options

meson builddir
ninja -C builddir

Compile ipmid with yocto defaults

meson builddir -Dbuildtype=minsize -Db_lto=true -Dtests=disabled
ninja -C builddir

If any of the dependencies are not found on the host system during configuration, meson automatically gets them via its wrap dependencies mentioned in ipmid/subprojects.

Enable/Disable meson wrap feature

meson builddir -Dwrap_mode=nofallback
ninja -C builddir

Enable debug traces

meson builddir -Dbuildtype=debug
ninja -C builddir

Generate test coverage report

meson builddir -Db_coverage=true -Dtests=enabled
ninja -C builddir test
ninja -C builddir coverage