Benjamin Bannier created MESOS-7877:

             Summary: Audit test code for undefined behavior in accessing 
container elements
                 Key: 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
Future<vector<Offer>> offers;

// Satisfy offers.


const auto& offer = (*offers)[0];

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.,
ASSERT_FALSE(offers.empty()); // Prevent execution of rest of test body.

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

Reply via email to