Home | History | Annotate | Download | only in ocmock
      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.
      4 
      5 #include "third_party/ocmock/gtest_support.h"
      6 
      7 #import <Foundation/Foundation.h>
      8 
      9 #import "third_party/ocmock/OCMock/OCMock.h"
     10 
     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
     19 
     20 namespace testing {
     21 namespace internal {
     22 
     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;
     33 }
     34 
     35 }  // namespace internal
     36 }  // namespace testing
     37