Benjamin Bannier created MESOS-7877:
---------------------------------------
Summary: Audit test code for undefined behavior in accessing
container elements
Key: MESOS-7877
URL: https://issues.apache.org/jira/browse/MESOS-7877
Project: Mesos
Issue Type: Bug
Components: test
Reporter: Benjamin Bannier
We do not always make sure we never access elements from empty containers,
e.g., we use patterns like the following
{code}
Future<vector<Offer>> offers;
// Satisfy offers.
EXPECT_FALSE(offers.empty());
const auto& offer = (*offers)[0];
{code}
While the intention here is to diagnose an empty {{offers}}, the code still
exhibits undefined behavior in the element access if {{offers}} was indeed
empty (compilers might aggressively exploit undefined behavior to e.g., remove
"impossible" code). Instead one should prevent accessing any elements of an
empty container, e.g.,
{code}
ASSERT_FALSE(offers.empty()); // Prevent execution of rest of test body.
{code}
We should audit and fix existing test code for such incorrect checks and
variations involving e.g., {{EXPECT_NE}}.
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)