tree 087dc288a66db55ae233dd902e13fecbd8c82955
parent aade4adb3987778a3e6f8e2e623109563cf7fd72
author Manojkiran Eda <manojkiran.eda@gmail.com> 1614239613 +0530
committer Manojkiran Eda <manojkiran.eda@gmail.com> 1615305511 +0530

Fix code to consume the secondary code

- The snooping daemon was coded to fill the Raw Value dbus
  property with uint64_t signature.

- The intent behind this commit is to work with the changed
  dbus backend from uint64_t to struct[uint64_t,array[byte]].

- The phosphor dbus interface change is documented in the below
  commit :
  https://gerrit.openbmc-project.xyz/c/openbmc/phosphor-dbus-interfaces/+/40903

Tested By:

- As the ibm systems does not a snooping port, i have done the
  unittesting & all the unit tests are PASSED with a system that
  has the above mentioned dbus interface change.

root@witherspoon:/tmp# ./post_reporter_test
[==========] Running 5 tests from 1 test suite.
[----------] Global test environment set-up.
[----------] 5 tests from PostReporterTest
[ RUN      ] PostReporterTest.EmitsObjectsOnExpectedDbusPath
[       OK ] PostReporterTest.EmitsObjectsOnExpectedDbusPath (17 ms)
[ RUN      ] PostReporterTest.AddsObjectWithExpectedName
[       OK ] PostReporterTest.AddsObjectWithExpectedName (5 ms)
[ RUN      ] PostReporterTest.ValueReadsDefaultToZero
[       OK ] PostReporterTest.ValueReadsDefaultToZero (1 ms)
[ RUN      ] PostReporterTest.SetValueToPositiveValueWorks
[       OK ] PostReporterTest.SetValueToPositiveValueWorks (2 ms)
[ RUN      ] PostReporterTest.SetValueMultipleTimesWorks
[       OK ] PostReporterTest.SetValueMultipleTimesWorks (2 ms)
[----------] 5 tests from PostReporterTest (34 ms total)

[----------] Global test environment tear-down
[==========] 5 tests from 1 test suite ran. (40 ms total)
[  PASSED  ] 5 tests.

Signed-off-by: Manojkiran Eda <manojkiran.eda@gmail.com>
Change-Id: Id0a79fcddc827d34f9d2a61ab14d8c9c4be522b5
