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