-
Notifications
You must be signed in to change notification settings - Fork 82
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Testcases that use the sd_bus_add_object_vtable mock now fail in CI #97
Comments
geissonator
pushed a commit
to openbmc/phosphor-hwmon
that referenced
this issue
Jul 29, 2024
For some reason, having an expect on the sdbusplus mock sd_bus_add_object_vtable causes valgrind to fail in CI with errors such as: ``` ==729843== Conditional jump or move depends on uninitialized value(s) ==729843== at 0x5CB89AB: std::unique_ptr<sd_bus_slot, sdbusplus::slot::details::SlotDeleter>::~unique_ptr() (unique_ptr.h:403) ==729843== by 0x5CB8665: sdbusplus::slot::slot::~slot() (slot.hpp:43) ==729843== by 0x5CC3CC9: sdbusplus::server::interface::interface::~interface() (interface.cpp:38) ==729843== by 0x13189B: sdbusplus::server::xyz::openbmc_project::control::FanPwm::~FanPwm() (server.hpp:32) ==729843== by 0x13E267: sdbusplus::server::object::details::compose<sdbusplus::server::xyz::openbmc_project::control::FanPwm>::~compose() (object.hpp:181) ==729843== by 0x13E4BC: sdbusplus::server::object::object<sdbusplus::server::xyz::openbmc_project::control::FanPwm>::~object() (object.hpp:95) ==729843== by 0x13C5C9: hwmon::FanPwm::~FanPwm() (fan_pwm.hpp:18) ==729843== by 0x12C0D1: FanPwmTest_BasicConstructorDeferredTest_Test::TestBody() (fanpwm_unittest.cpp:76) ==729843== by 0x5E089FC: void testing::internal::HandleSehExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) (gtest.cc:2638) ==729843== by 0x5DFE67A: void testing::internal::HandleExceptionsInMethodIfSupported<testing::Test, void>(testing::Test*, void (testing::Test::*)(), char const*) (gtest.cc:2674) ==729843== by 0x5DD3BA3: testing::Test::Run() (gtest.cc:2713) ==729843== by 0x5DD4661: testing::TestInfo::Run() (gtest.cc:2859) ``` There are 4 more stanzas of similar 'Conditional jump or move...' errors. None of these show up without the vtable expect. Other repositories that use this same expect also fail. I opened sdbusplus issue openbmc/sdbusplus#97 for the problem. I spent time looking into it, and did not figure anything out. This commit just removes the call to it because in these testcases the FanPwm object, which is just derived from the sdbuplus interface object, is simply created on the stack: ``` hwmon::FanPwm f(...); ``` The unit tests aren't actually testing any code that conditionally creates a FanPwm interface on D-Bus, so checking that it happens isn't that useful and seems to more just be testing sdbusplus. Change-Id: Idf2df085bf909af1ad94ba06863c4605831a3824 Signed-off-by: Matt Spinler <[email protected]>
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Ever since CI was updated to fail on a valgrind error, any testcase that uses that sd_bus_add_object_vtable mock fails with something like:
(from https://jenkins.openbmc.org/job/ci-repository/88451/console triggered by https://gerrit.openbmc.org/c/openbmc/phosphor-hwmon/+/72996)
I tried to track down what was wrong and eventually gave up.
For phosphor-hwmon, I think I'm just going to remove the call to it because it's pretty much just testing sdbusplus at that point and not hwmon code anyway.
The text was updated successfully, but these errors were encountered: