Michael Park created MESOS-4112:
-----------------------------------

             Summary: Clean up libprocess gtest macros
                 Key: MESOS-4112
                 URL: https://issues.apache.org/jira/browse/MESOS-4112
             Project: Mesos
          Issue Type: Task
          Components: libprocess, test
            Reporter: Michael Park


This ticket is regarding the libprocess gtest helpers in 
{{3rdparty/libprocess/include/process/gtest.hpp}}.

The pattern in this file seems to be a set of macros:

* {{AWAIT_ASSERT_<STATE>_FOR}}
* {{AWAIT_ASSERT_<STATE>}} -- default of 15 seconds
* {{AWAIT_<STATE>\_FOR}} -- alias for {{AWAIT_ASSERT_<STATE>_FOR}}
* {{AWAIT_<STATE>}} -- alias for {{AWAIT_ASSERT_<STATE>}}
* {{AWAIT_EXPECT_<STATE>_FOR}}
* {{AWAIT_EXPECT_<STATE>}} -- default of 15 seconds

(1) {{AWAIT_EQ_FOR}} should be added for completeness.

(2) In {{gtest}}, we've got {{EXPECT_EQ}} as well as the {{bool}}-specific 
versions: {{EXPECT_TRUE}} and {{EXPECT_FALSE}}.

We should adopt this pattern in these helpers as well. Keeping the pattern 
above in mind, the following are missing:

* {{AWAIT_ASSERT_TRUE_FOR}}
* {{AWAIT_ASSERT_TRUE}}
* {{AWAIT_ASSERT_FALSE_FOR}}
* {{AWAIT_ASSERT_FALSE}}
* {{AWAIT_EXPECT_TRUE_FOR}}
* {{AWAIT_EXPECT_FALSE_FOR}}

(3) There are HTTP response related macros at the bottom of the file, e.g. 
{{AWAIT_EXPECT_RESPONSE_STATUS_EQ}}, however these are missing their {{ASSERT}} 
counterparts.

(4) The reason for (3) presumably is because we reach for {{EXPECT}} over 
{{ASSERT}} in general due to the test suite crashing behavior of {{ASSERT}}. If 
this is the case, it would be worthwhile considering whether macros such as 
{{AWAIT_READY}} should alias {{AWAIT_EXPECT_READY}} rather than 
{{AWAIT_ASSERT_READY}}.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to