003 File Manager
Current Path:
/usr/src/contrib/googletest/googletest/test
usr
/
src
/
contrib
/
googletest
/
googletest
/
test
/
📁
..
📄
BUILD.bazel
(13.24 KB)
📄
googletest-break-on-failure-unittest.py
(7.13 KB)
📄
googletest-break-on-failure-unittest_.cc
(3.16 KB)
📄
googletest-catch-exceptions-test.py
(9.64 KB)
📄
googletest-catch-exceptions-test_.cc
(8.63 KB)
📄
googletest-color-test.py
(4.76 KB)
📄
googletest-color-test_.cc
(2.45 KB)
📄
googletest-death-test-test.cc
(43.63 KB)
📄
googletest-death-test_ex_test.cc
(3.53 KB)
📄
googletest-env-var-test.py
(3.91 KB)
📄
googletest-env-var-test_.cc
(3.39 KB)
📄
googletest-filepath-test.cc
(22.16 KB)
📄
googletest-filter-unittest.py
(20.88 KB)
📄
googletest-filter-unittest_.cc
(3.38 KB)
📄
googletest-json-outfiles-test.py
(5.36 KB)
📄
googletest-json-output-unittest.py
(20.67 KB)
📄
googletest-linked-ptr-test.cc
(3.93 KB)
📄
googletest-list-tests-unittest.py
(6.37 KB)
📄
googletest-list-tests-unittest_.cc
(4.55 KB)
📄
googletest-listener-test.cc
(9.57 KB)
📄
googletest-message-test.cc
(5.14 KB)
📄
googletest-options-test.cc
(7.46 KB)
📄
googletest-output-test-golden-lin.txt
(34.9 KB)
📄
googletest-output-test.py
(12.34 KB)
📄
googletest-output-test_.cc
(33.82 KB)
📄
googletest-param-test-invalid-name1-test.py
(2.32 KB)
📄
googletest-param-test-invalid-name1-test_.cc
(1.97 KB)
📄
googletest-param-test-invalid-name2-test.py
(2.28 KB)
📄
googletest-param-test-invalid-name2-test_.cc
(2.08 KB)
📄
googletest-param-test-test.cc
(39.39 KB)
📄
googletest-param-test-test.h
(2.2 KB)
📄
googletest-param-test2-test.cc
(2.74 KB)
📄
googletest-port-test.cc
(39.4 KB)
📄
googletest-printers-test.cc
(55.58 KB)
📄
googletest-shuffle-test.py
(12.22 KB)
📄
googletest-shuffle-test_.cc
(3.19 KB)
📄
googletest-test-part-test.cc
(7.98 KB)
📄
googletest-test2_test.cc
(2.74 KB)
📄
googletest-throw-on-failure-test.py
(5.6 KB)
📄
googletest-throw-on-failure-test_.cc
(2.99 KB)
📄
googletest-tuple-test.cc
(8.99 KB)
📄
googletest-uninitialized-test.py
(2.41 KB)
📄
googletest-uninitialized-test_.cc
(1.83 KB)
📄
gtest-typed-test2_test.cc
(1.97 KB)
📄
gtest-typed-test_test.cc
(14.62 KB)
📄
gtest-typed-test_test.h
(2.38 KB)
📄
gtest-unittest-api_test.cc
(12.86 KB)
📄
gtest_all_test.cc
(2.23 KB)
📄
gtest_assert_by_exception_test.cc
(3.8 KB)
📄
gtest_environment_test.cc
(6.31 KB)
📄
gtest_help_test.py
(5.69 KB)
📄
gtest_help_test_.cc
(2.04 KB)
📄
gtest_json_test_utils.py
(2.35 KB)
📄
gtest_list_output_unittest.py
(4.8 KB)
📄
gtest_list_output_unittest_.cc
(2.07 KB)
📄
gtest_main_unittest.cc
(1.8 KB)
📄
gtest_no_test_unittest.cc
(2.35 KB)
📄
gtest_pred_impl_unittest.cc
(75.56 KB)
📄
gtest_premature_exit_test.cc
(4.16 KB)
📄
gtest_prod_test.cc
(2.1 KB)
📄
gtest_repeat_test.cc
(7.31 KB)
📄
gtest_skip_in_environment_setup_test.cc
(2.17 KB)
📄
gtest_skip_test.cc
(1.93 KB)
📄
gtest_sole_header_test.cc
(2.12 KB)
📄
gtest_stress_test.cc
(9.12 KB)
📄
gtest_test_macro_stack_footprint_test.cc
(3.68 KB)
📄
gtest_test_utils.py
(10.44 KB)
📄
gtest_testbridge_test.py
(2.42 KB)
📄
gtest_testbridge_test_.cc
(1.88 KB)
📄
gtest_throw_on_failure_ex_test.cc
(3.32 KB)
📄
gtest_unittest.cc
(245.37 KB)
📄
gtest_xml_outfile1_test_.cc
(1.92 KB)
📄
gtest_xml_outfile2_test_.cc
(1.92 KB)
📄
gtest_xml_outfiles_test.py
(5.42 KB)
📄
gtest_xml_output_unittest.py
(16.91 KB)
📄
gtest_xml_output_unittest_.cc
(5.96 KB)
📄
gtest_xml_test_utils.py
(9 KB)
📄
production.cc
(1.64 KB)
📄
production.h
(2.07 KB)
Editing: gtest_repeat_test.cc
// Copyright 2008, Google Inc. // All rights reserved. // // Redistribution and use in source and binary forms, with or without // modification, are permitted provided that the following conditions are // met: // // * Redistributions of source code must retain the above copyright // notice, this list of conditions and the following disclaimer. // * Redistributions in binary form must reproduce the above // copyright notice, this list of conditions and the following disclaimer // in the documentation and/or other materials provided with the // distribution. // * Neither the name of Google Inc. nor the names of its // contributors may be used to endorse or promote products derived from // this software without specific prior written permission. // // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. // Tests the --gtest_repeat=number flag. #include <stdlib.h> #include <iostream> #include "gtest/gtest.h" #include "src/gtest-internal-inl.h" namespace testing { GTEST_DECLARE_string_(death_test_style); GTEST_DECLARE_string_(filter); GTEST_DECLARE_int32_(repeat); } // namespace testing using testing::GTEST_FLAG(death_test_style); using testing::GTEST_FLAG(filter); using testing::GTEST_FLAG(repeat); namespace { // We need this when we are testing Google Test itself and therefore // cannot use Google Test assertions. #define GTEST_CHECK_INT_EQ_(expected, actual) \ do {\ const int expected_val = (expected);\ const int actual_val = (actual);\ if (::testing::internal::IsTrue(expected_val != actual_val)) {\ ::std::cout << "Value of: " #actual "\n"\ << " Actual: " << actual_val << "\n"\ << "Expected: " #expected "\n"\ << "Which is: " << expected_val << "\n";\ ::testing::internal::posix::Abort();\ }\ } while (::testing::internal::AlwaysFalse()) // Used for verifying that global environment set-up and tear-down are // inside the --gtest_repeat loop. int g_environment_set_up_count = 0; int g_environment_tear_down_count = 0; class MyEnvironment : public testing::Environment { public: MyEnvironment() {} virtual void SetUp() { g_environment_set_up_count++; } virtual void TearDown() { g_environment_tear_down_count++; } }; // A test that should fail. int g_should_fail_count = 0; TEST(FooTest, ShouldFail) { g_should_fail_count++; EXPECT_EQ(0, 1) << "Expected failure."; } // A test that should pass. int g_should_pass_count = 0; TEST(FooTest, ShouldPass) { g_should_pass_count++; } // A test that contains a thread-safe death test and a fast death // test. It should pass. int g_death_test_count = 0; TEST(BarDeathTest, ThreadSafeAndFast) { g_death_test_count++; GTEST_FLAG(death_test_style) = "threadsafe"; EXPECT_DEATH_IF_SUPPORTED(::testing::internal::posix::Abort(), ""); GTEST_FLAG(death_test_style) = "fast"; EXPECT_DEATH_IF_SUPPORTED(::testing::internal::posix::Abort(), ""); } int g_param_test_count = 0; const int kNumberOfParamTests = 10; class MyParamTest : public testing::TestWithParam<int> {}; TEST_P(MyParamTest, ShouldPass) { // FIXME: Make parameter value checking robust WRT order of tests. GTEST_CHECK_INT_EQ_(g_param_test_count % kNumberOfParamTests, GetParam()); g_param_test_count++; } INSTANTIATE_TEST_CASE_P(MyParamSequence, MyParamTest, testing::Range(0, kNumberOfParamTests)); // Resets the count for each test. void ResetCounts() { g_environment_set_up_count = 0; g_environment_tear_down_count = 0; g_should_fail_count = 0; g_should_pass_count = 0; g_death_test_count = 0; g_param_test_count = 0; } // Checks that the count for each test is expected. void CheckCounts(int expected) { GTEST_CHECK_INT_EQ_(expected, g_environment_set_up_count); GTEST_CHECK_INT_EQ_(expected, g_environment_tear_down_count); GTEST_CHECK_INT_EQ_(expected, g_should_fail_count); GTEST_CHECK_INT_EQ_(expected, g_should_pass_count); GTEST_CHECK_INT_EQ_(expected, g_death_test_count); GTEST_CHECK_INT_EQ_(expected * kNumberOfParamTests, g_param_test_count); } // Tests the behavior of Google Test when --gtest_repeat is not specified. void TestRepeatUnspecified() { ResetCounts(); GTEST_CHECK_INT_EQ_(1, RUN_ALL_TESTS()); CheckCounts(1); } // Tests the behavior of Google Test when --gtest_repeat has the given value. void TestRepeat(int repeat) { GTEST_FLAG(repeat) = repeat; ResetCounts(); GTEST_CHECK_INT_EQ_(repeat > 0 ? 1 : 0, RUN_ALL_TESTS()); CheckCounts(repeat); } // Tests using --gtest_repeat when --gtest_filter specifies an empty // set of tests. void TestRepeatWithEmptyFilter(int repeat) { GTEST_FLAG(repeat) = repeat; GTEST_FLAG(filter) = "None"; ResetCounts(); GTEST_CHECK_INT_EQ_(0, RUN_ALL_TESTS()); CheckCounts(0); } // Tests using --gtest_repeat when --gtest_filter specifies a set of // successful tests. void TestRepeatWithFilterForSuccessfulTests(int repeat) { GTEST_FLAG(repeat) = repeat; GTEST_FLAG(filter) = "*-*ShouldFail"; ResetCounts(); GTEST_CHECK_INT_EQ_(0, RUN_ALL_TESTS()); GTEST_CHECK_INT_EQ_(repeat, g_environment_set_up_count); GTEST_CHECK_INT_EQ_(repeat, g_environment_tear_down_count); GTEST_CHECK_INT_EQ_(0, g_should_fail_count); GTEST_CHECK_INT_EQ_(repeat, g_should_pass_count); GTEST_CHECK_INT_EQ_(repeat, g_death_test_count); GTEST_CHECK_INT_EQ_(repeat * kNumberOfParamTests, g_param_test_count); } // Tests using --gtest_repeat when --gtest_filter specifies a set of // failed tests. void TestRepeatWithFilterForFailedTests(int repeat) { GTEST_FLAG(repeat) = repeat; GTEST_FLAG(filter) = "*ShouldFail"; ResetCounts(); GTEST_CHECK_INT_EQ_(1, RUN_ALL_TESTS()); GTEST_CHECK_INT_EQ_(repeat, g_environment_set_up_count); GTEST_CHECK_INT_EQ_(repeat, g_environment_tear_down_count); GTEST_CHECK_INT_EQ_(repeat, g_should_fail_count); GTEST_CHECK_INT_EQ_(0, g_should_pass_count); GTEST_CHECK_INT_EQ_(0, g_death_test_count); GTEST_CHECK_INT_EQ_(0, g_param_test_count); } } // namespace int main(int argc, char **argv) { testing::InitGoogleTest(&argc, argv); testing::AddGlobalTestEnvironment(new MyEnvironment); TestRepeatUnspecified(); TestRepeat(0); TestRepeat(1); TestRepeat(5); TestRepeatWithEmptyFilter(2); TestRepeatWithEmptyFilter(3); TestRepeatWithFilterForSuccessfulTests(3); TestRepeatWithFilterForFailedTests(4); // It would be nice to verify that the tests indeed loop forever // when GTEST_FLAG(repeat) is negative, but this test will be quite // complicated to write. Since this flag is for interactive // debugging only and doesn't affect the normal test result, such a // test would be an overkill. printf("PASS\n"); return 0; }
Upload File
Create Folder