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
diff --git a/test/post_reporter_test.cpp b/test/post_reporter_test.cpp
index 0dbbcfe..5213593 100644
--- a/test/post_reporter_test.cpp
+++ b/test/post_reporter_test.cpp
@@ -55,29 +55,51 @@
TEST_F(PostReporterTest, ValueReadsDefaultToZero)
{
PostReporter testReporter(bus, SNOOP_OBJECTPATH, true);
- EXPECT_EQ(0, testReporter.value());
+ EXPECT_EQ(0, std::get<primary_post_code_t>(testReporter.value()));
}
TEST_F(PostReporterTest, SetValueToPositiveValueWorks)
{
PostReporter testReporter(bus, SNOOP_OBJECTPATH, true);
- testReporter.value(65537);
- EXPECT_EQ(65537, testReporter.value());
+ secondary_post_code_t secondaryCode = {123, 124, 125};
+ testReporter.value(std::make_tuple(65537, secondaryCode));
+ EXPECT_EQ(65537, std::get<primary_post_code_t>(testReporter.value()));
+ EXPECT_EQ(secondaryCode,
+ std::get<secondary_post_code_t>(testReporter.value()));
}
TEST_F(PostReporterTest, SetValueMultipleTimesWorks)
{
PostReporter testReporter(bus, SNOOP_OBJECTPATH, true);
- testReporter.value(123);
- EXPECT_EQ(123, testReporter.value());
- testReporter.value(456);
- EXPECT_EQ(456, testReporter.value());
- testReporter.value(0);
- EXPECT_EQ(0, testReporter.value());
- testReporter.value(456);
- EXPECT_EQ(456, testReporter.value());
- testReporter.value(456);
- EXPECT_EQ(456, testReporter.value());
+ secondary_post_code_t secondaryCode = {10, 40, 0, 245, 56};
+ testReporter.value(std::make_tuple(123, secondaryCode));
+ EXPECT_EQ(123, std::get<primary_post_code_t>(testReporter.value()));
+ EXPECT_EQ(secondaryCode,
+ std::get<secondary_post_code_t>(testReporter.value()));
+
+ secondaryCode = {0, 0, 0, 0, 0};
+ testReporter.value(std::make_tuple(45, secondaryCode));
+ EXPECT_EQ(45, std::get<primary_post_code_t>(testReporter.value()));
+ EXPECT_EQ(secondaryCode,
+ std::get<secondary_post_code_t>(testReporter.value()));
+
+ secondaryCode = {23, 200, 0, 45, 2};
+ testReporter.value(std::make_tuple(0, secondaryCode));
+ EXPECT_EQ(0, std::get<primary_post_code_t>(testReporter.value()));
+ EXPECT_EQ(secondaryCode,
+ std::get<secondary_post_code_t>(testReporter.value()));
+
+ secondaryCode = {10, 40, 0, 35, 78};
+ testReporter.value(std::make_tuple(46, secondaryCode));
+ EXPECT_EQ(46, std::get<primary_post_code_t>(testReporter.value()));
+ EXPECT_EQ(secondaryCode,
+ std::get<secondary_post_code_t>(testReporter.value()));
+
+ secondaryCode = {10, 40, 0, 35, 78};
+ testReporter.value(std::make_tuple(46, secondaryCode));
+ EXPECT_EQ(46, std::get<primary_post_code_t>(testReporter.value()));
+ EXPECT_EQ(secondaryCode,
+ std::get<secondary_post_code_t>(testReporter.value()));
}
} // namespace