1f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdoch// Copyright 2008 Google Inc. 2f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdoch// All Rights Reserved. 3f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdoch// 4f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdoch// Redistribution and use in source and binary forms, with or without 5f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdoch// modification, are permitted provided that the following conditions are 6f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdoch// met: 7f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdoch// 8f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdoch// * Redistributions of source code must retain the above copyright 9f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdoch// notice, this list of conditions and the following disclaimer. 10f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdoch// * Redistributions in binary form must reproduce the above 11f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdoch// copyright notice, this list of conditions and the following disclaimer 12f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdoch// in the documentation and/or other materials provided with the 13f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdoch// distribution. 14f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdoch// * Neither the name of Google Inc. nor the names of its 15f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdoch// contributors may be used to endorse or promote products derived from 16f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdoch// this software without specific prior written permission. 17f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdoch// 18f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdoch// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 19f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdoch// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 20f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdoch// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 21f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdoch// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 22f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdoch// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 23f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdoch// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 24f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdoch// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 25f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdoch// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 26f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdoch// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 27f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdoch// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 28f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdoch// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 29f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdoch// 30f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdoch// Author: wan@google.com (Zhanyong Wan) 31f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdoch 32f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdoch#ifndef GTEST_TEST_GTEST_TYPED_TEST_TEST_H_ 33f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdoch#define GTEST_TEST_GTEST_TYPED_TEST_TEST_H_ 34f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdoch 35f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdoch#include "gtest/gtest.h" 36f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdoch 37f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdoch#if GTEST_HAS_TYPED_TEST_P 38f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdoch 39f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdochusing testing::Test; 40f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdoch 41f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdoch// For testing that the same type-parameterized test case can be 42f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdoch// instantiated in different translation units linked together. 43f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdoch// ContainerTest will be instantiated in both gtest-typed-test_test.cc 44f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdoch// and gtest-typed-test2_test.cc. 45f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdoch 46f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdochtemplate <typename T> 47f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdochclass ContainerTest : public Test { 48f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdoch}; 49f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdoch 50f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen MurdochTYPED_TEST_CASE_P(ContainerTest); 51f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdoch 52f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen MurdochTYPED_TEST_P(ContainerTest, CanBeDefaultConstructed) { 53f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdoch TypeParam container; 54f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdoch} 55f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdoch 56f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen MurdochTYPED_TEST_P(ContainerTest, InitialSizeIsZero) { 57f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdoch TypeParam container; 58f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdoch EXPECT_EQ(0U, container.size()); 59f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdoch} 60f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdoch 61f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen MurdochREGISTER_TYPED_TEST_CASE_P(ContainerTest, 62f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdoch CanBeDefaultConstructed, InitialSizeIsZero); 63f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdoch 64f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdoch#endif // GTEST_HAS_TYPED_TEST_P 65f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdoch 66f91f0611dbaf29ca0f1d4aecb357ce243a19d2faBen Murdoch#endif // GTEST_TEST_GTEST_TYPED_TEST_TEST_H_ 67