Re-subimission of https://codereview.chromium.org/1041213003/
[chromium-blink-merge.git] / third_party / ocmock / gtest_support.mm
blobe7b481f7d6eed82f032bf0279781574f189fe315
1 // Copyright (c) 2011 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
5 #include "third_party/ocmock/gtest_support.h"
7 #import <Foundation/Foundation.h>
9 #import "third_party/ocmock/OCMock/OCMock.h"
11 // When C++ exceptions are disabled, the C++ library defines |try| and
12 // |catch| so as to allow exception-expecting C++ code to build properly when
13 // language support for exceptions is not present.  These macros interfere
14 // with the use of |@try| and |@catch| in Objective-C files such as this one.
15 // Undefine these macros here, after everything has been #included, since
16 // there will be no C++ uses and only Objective-C uses from this point on.
17 #undef try
18 #undef catch
20 namespace testing {
21 namespace internal {
23 bool VerifyOCMock(OCMockObject* mock, const char* file, int line) {
24   bool result = true;
25   @try {
26     [mock verify];
27   } @catch (NSException* e) {
28     result = false;
29     ADD_FAILURE_AT(file, line) << "OCMock validation failed: "
30                                << [[e description] UTF8String];
31   }
32   return result;
35 }  // namespace internal
36 }  // namespace testing