Commit ff0b9b45 authored by Stephen Morris's avatar Stephen Morris

[master] Merge branch 'trac3050'

parents 72bcad54 35f65cf6
......@@ -113,13 +113,15 @@ CalloutManager::calloutsPresent(int hook_index) const {
void
CalloutManager::callCallouts(int hook_index, CalloutHandle& callout_handle) {
// Clear the "skip" flag so we don't carry state from a previous call.
// This is done regardless of whether callouts are present to avoid passing
// any state from the previous call of callCallouts().
callout_handle.setSkip(false);
// Only initialize and iterate if there are callouts present. This check
// also catches the case of an invalid index.
if (calloutsPresent(hook_index)) {
// Clear the "skip" flag so we don't carry state from a previous call.
callout_handle.setSkip(false);
// Set the current hook index. This is used should a callout wish to
// determine to what hook it is attached.
current_hook_ = hook_index;
......
......@@ -841,6 +841,24 @@ TEST_F(HandlesTest, ReturnSkipClear) {
EXPECT_FALSE(callout_handle.getSkip());
}
// Check that the skip flag is cleared when callouts are called - even if
// there are no callouts.
TEST_F(HandlesTest, NoCalloutsSkipTest) {
// Note - no callouts are registered on any hook.
CalloutHandle callout_handle(getCalloutManager());
// Clear the skip flag and call a hook with no callouts.
callout_handle.setSkip(false);
getCalloutManager()->callCallouts(alpha_index_, callout_handle);
EXPECT_FALSE(callout_handle.getSkip());
// Set the skip flag and call a hook with no callouts.
callout_handle.setSkip(true);
getCalloutManager()->callCallouts(alpha_index_, callout_handle);
EXPECT_FALSE(callout_handle.getSkip());
}
// The next set of callouts do a similar thing to the above "skip" tests,
// but alter the value of a string argument. This is for testing that the
// a callout is able to change an argument and return it to the caller.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment