tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

googletest-list-tests-unittest_.cc (4668B)


      1 // Copyright 2006, Google Inc.
      2 // All rights reserved.
      3 //
      4 // Redistribution and use in source and binary forms, with or without
      5 // modification, are permitted provided that the following conditions are
      6 // met:
      7 //
      8 //     * Redistributions of source code must retain the above copyright
      9 // notice, this list of conditions and the following disclaimer.
     10 //     * Redistributions in binary form must reproduce the above
     11 // copyright notice, this list of conditions and the following disclaimer
     12 // in the documentation and/or other materials provided with the
     13 // distribution.
     14 //     * Neither the name of Google Inc. nor the names of its
     15 // contributors may be used to endorse or promote products derived from
     16 // this software without specific prior written permission.
     17 //
     18 // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
     19 // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
     20 // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
     21 // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
     22 // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
     23 // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
     24 // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
     25 // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
     26 // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
     27 // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
     28 // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
     29 
     30 
     31 // Unit test for Google Test's --gtest_list_tests flag.
     32 //
     33 // A user can ask Google Test to list all tests that will run
     34 // so that when using a filter, a user will know what
     35 // tests to look for. The tests will not be run after listing.
     36 //
     37 // This program will be invoked from a Python unit test.
     38 // Don't run it directly.
     39 
     40 #include "gtest/gtest.h"
     41 
     42 // Several different test cases and tests that will be listed.
     43 TEST(Foo, Bar1) {
     44 }
     45 
     46 TEST(Foo, Bar2) {
     47 }
     48 
     49 TEST(Foo, DISABLED_Bar3) {
     50 }
     51 
     52 TEST(Abc, Xyz) {
     53 }
     54 
     55 TEST(Abc, Def) {
     56 }
     57 
     58 TEST(FooBar, Baz) {
     59 }
     60 
     61 class FooTest : public testing::Test {
     62 };
     63 
     64 TEST_F(FooTest, Test1) {
     65 }
     66 
     67 TEST_F(FooTest, DISABLED_Test2) {
     68 }
     69 
     70 TEST_F(FooTest, Test3) {
     71 }
     72 
     73 TEST(FooDeathTest, Test1) {
     74 }
     75 
     76 // A group of value-parameterized tests.
     77 
     78 class MyType {
     79 public:
     80  explicit MyType(const std::string& a_value) : value_(a_value) {}
     81 
     82  const std::string& value() const { return value_; }
     83 
     84 private:
     85  std::string value_;
     86 };
     87 
     88 // Teaches Google Test how to print a MyType.
     89 void PrintTo(const MyType& x, std::ostream* os) {
     90  *os << x.value();
     91 }
     92 
     93 class ValueParamTest : public testing::TestWithParam<MyType> {
     94 };
     95 
     96 TEST_P(ValueParamTest, TestA) {
     97 }
     98 
     99 TEST_P(ValueParamTest, TestB) {
    100 }
    101 
    102 INSTANTIATE_TEST_SUITE_P(
    103    MyInstantiation, ValueParamTest,
    104    testing::Values(MyType("one line"),
    105                    MyType("two\nlines"),
    106                    MyType("a very\nloooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong line")));  // NOLINT
    107 
    108 // A group of typed tests.
    109 
    110 // A deliberately long type name for testing the line-truncating
    111 // behavior when printing a type parameter.
    112 class VeryLoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooogName {  // NOLINT
    113 };
    114 
    115 template <typename T>
    116 class TypedTest : public testing::Test {
    117 };
    118 
    119 template <typename T, int kSize>
    120 class MyArray {
    121 };
    122 
    123 typedef testing::Types<VeryLoooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooogName,  // NOLINT
    124                       int*, MyArray<bool, 42> > MyTypes;
    125 
    126 TYPED_TEST_SUITE(TypedTest, MyTypes);
    127 
    128 TYPED_TEST(TypedTest, TestA) {
    129 }
    130 
    131 TYPED_TEST(TypedTest, TestB) {
    132 }
    133 
    134 // A group of type-parameterized tests.
    135 
    136 template <typename T>
    137 class TypeParamTest : public testing::Test {
    138 };
    139 
    140 TYPED_TEST_SUITE_P(TypeParamTest);
    141 
    142 TYPED_TEST_P(TypeParamTest, TestA) {
    143 }
    144 
    145 TYPED_TEST_P(TypeParamTest, TestB) {
    146 }
    147 
    148 REGISTER_TYPED_TEST_SUITE_P(TypeParamTest, TestA, TestB);
    149 
    150 INSTANTIATE_TYPED_TEST_SUITE_P(My, TypeParamTest, MyTypes);
    151 
    152 int main(int argc, char **argv) {
    153  ::testing::InitGoogleTest(&argc, argv);
    154 
    155  return RUN_ALL_TESTS();
    156 }