1d9f0c9bcce7092bf92cab485981630bd74307831Patrick Scott// Copyright (c) 2006-2008 The Chromium Authors. All rights reserved. 2d9f0c9bcce7092bf92cab485981630bd74307831Patrick Scott// Use of this source code is governed by a BSD-style license that can be 3d9f0c9bcce7092bf92cab485981630bd74307831Patrick Scott// found in the LICENSE file. 4d9f0c9bcce7092bf92cab485981630bd74307831Patrick Scott 5d9f0c9bcce7092bf92cab485981630bd74307831Patrick Scott#ifndef TESTING_PLATFORM_TEST_H_ 6d9f0c9bcce7092bf92cab485981630bd74307831Patrick Scott#define TESTING_PLATFORM_TEST_H_ 7d9f0c9bcce7092bf92cab485981630bd74307831Patrick Scott 8d9f0c9bcce7092bf92cab485981630bd74307831Patrick Scott#include <gtest/gtest.h> 9d9f0c9bcce7092bf92cab485981630bd74307831Patrick Scott 10d9f0c9bcce7092bf92cab485981630bd74307831Patrick Scott#if defined(GTEST_OS_MAC) 11d9f0c9bcce7092bf92cab485981630bd74307831Patrick Scott#ifdef __OBJC__ 12d9f0c9bcce7092bf92cab485981630bd74307831Patrick Scott@class NSAutoreleasePool; 13d9f0c9bcce7092bf92cab485981630bd74307831Patrick Scott#else 14d9f0c9bcce7092bf92cab485981630bd74307831Patrick Scottclass NSAutoreleasePool; 15d9f0c9bcce7092bf92cab485981630bd74307831Patrick Scott#endif 16d9f0c9bcce7092bf92cab485981630bd74307831Patrick Scott 17d9f0c9bcce7092bf92cab485981630bd74307831Patrick Scott// The purpose of this class us to provide a hook for platform-specific 18d9f0c9bcce7092bf92cab485981630bd74307831Patrick Scott// operations across unit tests. For example, on the Mac, it creates and 19d9f0c9bcce7092bf92cab485981630bd74307831Patrick Scott// releases an outer NSAutoreleasePool for each test case. For now, it's only 20d9f0c9bcce7092bf92cab485981630bd74307831Patrick Scott// implemented on the Mac. To enable this for another platform, just adjust 21d9f0c9bcce7092bf92cab485981630bd74307831Patrick Scott// the #ifdefs and add a platform_test_<platform>.cc implementation file. 22d9f0c9bcce7092bf92cab485981630bd74307831Patrick Scottclass PlatformTest : public testing::Test { 23d9f0c9bcce7092bf92cab485981630bd74307831Patrick Scott protected: 24d9f0c9bcce7092bf92cab485981630bd74307831Patrick Scott PlatformTest(); 25d9f0c9bcce7092bf92cab485981630bd74307831Patrick Scott virtual ~PlatformTest(); 26d9f0c9bcce7092bf92cab485981630bd74307831Patrick Scott 27d9f0c9bcce7092bf92cab485981630bd74307831Patrick Scott private: 28d9f0c9bcce7092bf92cab485981630bd74307831Patrick Scott NSAutoreleasePool* pool_; 29d9f0c9bcce7092bf92cab485981630bd74307831Patrick Scott}; 30d9f0c9bcce7092bf92cab485981630bd74307831Patrick Scott#else 31d9f0c9bcce7092bf92cab485981630bd74307831Patrick Scotttypedef testing::Test PlatformTest; 32d9f0c9bcce7092bf92cab485981630bd74307831Patrick Scott#endif // GTEST_OS_MAC 33d9f0c9bcce7092bf92cab485981630bd74307831Patrick Scott 34d9f0c9bcce7092bf92cab485981630bd74307831Patrick Scott#endif // TESTING_PLATFORM_TEST_H_ 35