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
14class 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.
22class PlatformTest : public testing::Test {
23 public:
24  virtual ~PlatformTest();
25
26 protected:
27  PlatformTest();
28
29 private:
30  NSAutoreleasePool* pool_;
31};
32#else
33typedef testing::Test PlatformTest;
34#endif // GTEST_OS_MAC
35
36#endif // TESTING_PLATFORM_TEST_H_
37