Home | History | Annotate | Download | only in testing
      1 // Copyright (c) 2006-2008 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 #ifndef TESTING_PLATFORM_TEST_H_
      6 #define TESTING_PLATFORM_TEST_H_
      7 
      8 #include <gtest/gtest.h>
      9 
     10 #if defined(GTEST_OS_MAC)
     11 #ifdef __OBJC__
     12 @class NSAutoreleasePool;
     13 #else
     14 class NSAutoreleasePool;
     15 #endif
     16 
     17 // The purpose of this class us to provide a hook for platform-specific
     18 // operations across unit tests.  For example, on the Mac, it creates and
     19 // releases an outer NSAutoreleasePool for each test case.  For now, it's only
     20 // implemented on the Mac.  To enable this for another platform, just adjust
     21 // the #ifdefs and add a platform_test_<platform>.cc implementation file.
     22 class PlatformTest : public testing::Test {
     23  public:
     24   virtual ~PlatformTest();
     25 
     26  protected:
     27   PlatformTest();
     28 
     29  private:
     30   NSAutoreleasePool* pool_;
     31 };
     32 #else
     33 typedef testing::Test PlatformTest;
     34 #endif // GTEST_OS_MAC
     35 
     36 #endif // TESTING_PLATFORM_TEST_H_
     37