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