http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/f8cf7fba/third_party/src/tmb/third_party/gtest/test/gtest-unittest-api_test.cc ---------------------------------------------------------------------- diff --git a/third_party/src/tmb/third_party/gtest/test/gtest-unittest-api_test.cc b/third_party/src/tmb/third_party/gtest/test/gtest-unittest-api_test.cc deleted file mode 100644 index 07083e5..0000000 --- a/third_party/src/tmb/third_party/gtest/test/gtest-unittest-api_test.cc +++ /dev/null @@ -1,341 +0,0 @@ -// Copyright 2009 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. -// -// Author: vl...@google.com (Vlad Losev) -// -// The Google C++ Testing Framework (Google Test) -// -// This file contains tests verifying correctness of data provided via -// UnitTest's public methods. - -#include "gtest/gtest.h" - -#include <string.h> // For strcmp. -#include <algorithm> - -using ::testing::InitGoogleTest; - -namespace testing { -namespace internal { - -template <typename T> -struct LessByName { - bool operator()(const T* a, const T* b) { - return strcmp(a->name(), b->name()) < 0; - } -}; - -class UnitTestHelper { - public: - // Returns the array of pointers to all test cases sorted by the test case - // name. The caller is responsible for deleting the array. - static TestCase const** const GetSortedTestCases() { - UnitTest& unit_test = *UnitTest::GetInstance(); - TestCase const** const test_cases = - new const TestCase*[unit_test.total_test_case_count()]; - - for (int i = 0; i < unit_test.total_test_case_count(); ++i) - test_cases[i] = unit_test.GetTestCase(i); - - std::sort(test_cases, - test_cases + unit_test.total_test_case_count(), - LessByName<TestCase>()); - return test_cases; - } - - // Returns the test case by its name. The caller doesn't own the returned - // pointer. - static const TestCase* FindTestCase(const char* name) { - UnitTest& unit_test = *UnitTest::GetInstance(); - for (int i = 0; i < unit_test.total_test_case_count(); ++i) { - const TestCase* test_case = unit_test.GetTestCase(i); - if (0 == strcmp(test_case->name(), name)) - return test_case; - } - return NULL; - } - - // Returns the array of pointers to all tests in a particular test case - // sorted by the test name. The caller is responsible for deleting the - // array. - static TestInfo const** const GetSortedTests(const TestCase* test_case) { - TestInfo const** const tests = - new const TestInfo*[test_case->total_test_count()]; - - for (int i = 0; i < test_case->total_test_count(); ++i) - tests[i] = test_case->GetTestInfo(i); - - std::sort(tests, tests + test_case->total_test_count(), - LessByName<TestInfo>()); - return tests; - } -}; - -#if GTEST_HAS_TYPED_TEST -template <typename T> class TestCaseWithCommentTest : public Test {}; -TYPED_TEST_CASE(TestCaseWithCommentTest, Types<int>); -TYPED_TEST(TestCaseWithCommentTest, Dummy) {} - -const int kTypedTestCases = 1; -const int kTypedTests = 1; -#else -const int kTypedTestCases = 0; -const int kTypedTests = 0; -#endif // GTEST_HAS_TYPED_TEST - -// We can only test the accessors that do not change value while tests run. -// Since tests can be run in any order, the values the accessors that track -// test execution (such as failed_test_count) can not be predicted. -TEST(ApiTest, UnitTestImmutableAccessorsWork) { - UnitTest* unit_test = UnitTest::GetInstance(); - - ASSERT_EQ(2 + kTypedTestCases, unit_test->total_test_case_count()); - EXPECT_EQ(1 + kTypedTestCases, unit_test->test_case_to_run_count()); - EXPECT_EQ(2, unit_test->disabled_test_count()); - EXPECT_EQ(5 + kTypedTests, unit_test->total_test_count()); - EXPECT_EQ(3 + kTypedTests, unit_test->test_to_run_count()); - - const TestCase** const test_cases = UnitTestHelper::GetSortedTestCases(); - - EXPECT_STREQ("ApiTest", test_cases[0]->name()); - EXPECT_STREQ("DISABLED_Test", test_cases[1]->name()); -#if GTEST_HAS_TYPED_TEST - EXPECT_STREQ("TestCaseWithCommentTest/0", test_cases[2]->name()); -#endif // GTEST_HAS_TYPED_TEST - - delete[] test_cases; - - // The following lines initiate actions to verify certain methods in - // FinalSuccessChecker::TearDown. - - // Records a test property to verify TestResult::GetTestProperty(). - RecordProperty("key", "value"); -} - -AssertionResult IsNull(const char* str) { - if (str != NULL) { - return testing::AssertionFailure() << "argument is " << str; - } - return AssertionSuccess(); -} - -TEST(ApiTest, TestCaseImmutableAccessorsWork) { - const TestCase* test_case = UnitTestHelper::FindTestCase("ApiTest"); - ASSERT_TRUE(test_case != NULL); - - EXPECT_STREQ("ApiTest", test_case->name()); - EXPECT_TRUE(IsNull(test_case->type_param())); - EXPECT_TRUE(test_case->should_run()); - EXPECT_EQ(1, test_case->disabled_test_count()); - EXPECT_EQ(3, test_case->test_to_run_count()); - ASSERT_EQ(4, test_case->total_test_count()); - - const TestInfo** tests = UnitTestHelper::GetSortedTests(test_case); - - EXPECT_STREQ("DISABLED_Dummy1", tests[0]->name()); - EXPECT_STREQ("ApiTest", tests[0]->test_case_name()); - EXPECT_TRUE(IsNull(tests[0]->value_param())); - EXPECT_TRUE(IsNull(tests[0]->type_param())); - EXPECT_FALSE(tests[0]->should_run()); - - EXPECT_STREQ("TestCaseDisabledAccessorsWork", tests[1]->name()); - EXPECT_STREQ("ApiTest", tests[1]->test_case_name()); - EXPECT_TRUE(IsNull(tests[1]->value_param())); - EXPECT_TRUE(IsNull(tests[1]->type_param())); - EXPECT_TRUE(tests[1]->should_run()); - - EXPECT_STREQ("TestCaseImmutableAccessorsWork", tests[2]->name()); - EXPECT_STREQ("ApiTest", tests[2]->test_case_name()); - EXPECT_TRUE(IsNull(tests[2]->value_param())); - EXPECT_TRUE(IsNull(tests[2]->type_param())); - EXPECT_TRUE(tests[2]->should_run()); - - EXPECT_STREQ("UnitTestImmutableAccessorsWork", tests[3]->name()); - EXPECT_STREQ("ApiTest", tests[3]->test_case_name()); - EXPECT_TRUE(IsNull(tests[3]->value_param())); - EXPECT_TRUE(IsNull(tests[3]->type_param())); - EXPECT_TRUE(tests[3]->should_run()); - - delete[] tests; - tests = NULL; - -#if GTEST_HAS_TYPED_TEST - test_case = UnitTestHelper::FindTestCase("TestCaseWithCommentTest/0"); - ASSERT_TRUE(test_case != NULL); - - EXPECT_STREQ("TestCaseWithCommentTest/0", test_case->name()); - EXPECT_STREQ(GetTypeName<int>().c_str(), test_case->type_param()); - EXPECT_TRUE(test_case->should_run()); - EXPECT_EQ(0, test_case->disabled_test_count()); - EXPECT_EQ(1, test_case->test_to_run_count()); - ASSERT_EQ(1, test_case->total_test_count()); - - tests = UnitTestHelper::GetSortedTests(test_case); - - EXPECT_STREQ("Dummy", tests[0]->name()); - EXPECT_STREQ("TestCaseWithCommentTest/0", tests[0]->test_case_name()); - EXPECT_TRUE(IsNull(tests[0]->value_param())); - EXPECT_STREQ(GetTypeName<int>().c_str(), tests[0]->type_param()); - EXPECT_TRUE(tests[0]->should_run()); - - delete[] tests; -#endif // GTEST_HAS_TYPED_TEST -} - -TEST(ApiTest, TestCaseDisabledAccessorsWork) { - const TestCase* test_case = UnitTestHelper::FindTestCase("DISABLED_Test"); - ASSERT_TRUE(test_case != NULL); - - EXPECT_STREQ("DISABLED_Test", test_case->name()); - EXPECT_TRUE(IsNull(test_case->type_param())); - EXPECT_FALSE(test_case->should_run()); - EXPECT_EQ(1, test_case->disabled_test_count()); - EXPECT_EQ(0, test_case->test_to_run_count()); - ASSERT_EQ(1, test_case->total_test_count()); - - const TestInfo* const test_info = test_case->GetTestInfo(0); - EXPECT_STREQ("Dummy2", test_info->name()); - EXPECT_STREQ("DISABLED_Test", test_info->test_case_name()); - EXPECT_TRUE(IsNull(test_info->value_param())); - EXPECT_TRUE(IsNull(test_info->type_param())); - EXPECT_FALSE(test_info->should_run()); -} - -// These two tests are here to provide support for testing -// test_case_to_run_count, disabled_test_count, and test_to_run_count. -TEST(ApiTest, DISABLED_Dummy1) {} -TEST(DISABLED_Test, Dummy2) {} - -class FinalSuccessChecker : public Environment { - protected: - virtual void TearDown() { - UnitTest* unit_test = UnitTest::GetInstance(); - - EXPECT_EQ(1 + kTypedTestCases, unit_test->successful_test_case_count()); - EXPECT_EQ(3 + kTypedTests, unit_test->successful_test_count()); - EXPECT_EQ(0, unit_test->failed_test_case_count()); - EXPECT_EQ(0, unit_test->failed_test_count()); - EXPECT_TRUE(unit_test->Passed()); - EXPECT_FALSE(unit_test->Failed()); - ASSERT_EQ(2 + kTypedTestCases, unit_test->total_test_case_count()); - - const TestCase** const test_cases = UnitTestHelper::GetSortedTestCases(); - - EXPECT_STREQ("ApiTest", test_cases[0]->name()); - EXPECT_TRUE(IsNull(test_cases[0]->type_param())); - EXPECT_TRUE(test_cases[0]->should_run()); - EXPECT_EQ(1, test_cases[0]->disabled_test_count()); - ASSERT_EQ(4, test_cases[0]->total_test_count()); - EXPECT_EQ(3, test_cases[0]->successful_test_count()); - EXPECT_EQ(0, test_cases[0]->failed_test_count()); - EXPECT_TRUE(test_cases[0]->Passed()); - EXPECT_FALSE(test_cases[0]->Failed()); - - EXPECT_STREQ("DISABLED_Test", test_cases[1]->name()); - EXPECT_TRUE(IsNull(test_cases[1]->type_param())); - EXPECT_FALSE(test_cases[1]->should_run()); - EXPECT_EQ(1, test_cases[1]->disabled_test_count()); - ASSERT_EQ(1, test_cases[1]->total_test_count()); - EXPECT_EQ(0, test_cases[1]->successful_test_count()); - EXPECT_EQ(0, test_cases[1]->failed_test_count()); - -#if GTEST_HAS_TYPED_TEST - EXPECT_STREQ("TestCaseWithCommentTest/0", test_cases[2]->name()); - EXPECT_STREQ(GetTypeName<int>().c_str(), test_cases[2]->type_param()); - EXPECT_TRUE(test_cases[2]->should_run()); - EXPECT_EQ(0, test_cases[2]->disabled_test_count()); - ASSERT_EQ(1, test_cases[2]->total_test_count()); - EXPECT_EQ(1, test_cases[2]->successful_test_count()); - EXPECT_EQ(0, test_cases[2]->failed_test_count()); - EXPECT_TRUE(test_cases[2]->Passed()); - EXPECT_FALSE(test_cases[2]->Failed()); -#endif // GTEST_HAS_TYPED_TEST - - const TestCase* test_case = UnitTestHelper::FindTestCase("ApiTest"); - const TestInfo** tests = UnitTestHelper::GetSortedTests(test_case); - EXPECT_STREQ("DISABLED_Dummy1", tests[0]->name()); - EXPECT_STREQ("ApiTest", tests[0]->test_case_name()); - EXPECT_FALSE(tests[0]->should_run()); - - EXPECT_STREQ("TestCaseDisabledAccessorsWork", tests[1]->name()); - EXPECT_STREQ("ApiTest", tests[1]->test_case_name()); - EXPECT_TRUE(IsNull(tests[1]->value_param())); - EXPECT_TRUE(IsNull(tests[1]->type_param())); - EXPECT_TRUE(tests[1]->should_run()); - EXPECT_TRUE(tests[1]->result()->Passed()); - EXPECT_EQ(0, tests[1]->result()->test_property_count()); - - EXPECT_STREQ("TestCaseImmutableAccessorsWork", tests[2]->name()); - EXPECT_STREQ("ApiTest", tests[2]->test_case_name()); - EXPECT_TRUE(IsNull(tests[2]->value_param())); - EXPECT_TRUE(IsNull(tests[2]->type_param())); - EXPECT_TRUE(tests[2]->should_run()); - EXPECT_TRUE(tests[2]->result()->Passed()); - EXPECT_EQ(0, tests[2]->result()->test_property_count()); - - EXPECT_STREQ("UnitTestImmutableAccessorsWork", tests[3]->name()); - EXPECT_STREQ("ApiTest", tests[3]->test_case_name()); - EXPECT_TRUE(IsNull(tests[3]->value_param())); - EXPECT_TRUE(IsNull(tests[3]->type_param())); - EXPECT_TRUE(tests[3]->should_run()); - EXPECT_TRUE(tests[3]->result()->Passed()); - EXPECT_EQ(1, tests[3]->result()->test_property_count()); - const TestProperty& property = tests[3]->result()->GetTestProperty(0); - EXPECT_STREQ("key", property.key()); - EXPECT_STREQ("value", property.value()); - - delete[] tests; - -#if GTEST_HAS_TYPED_TEST - test_case = UnitTestHelper::FindTestCase("TestCaseWithCommentTest/0"); - tests = UnitTestHelper::GetSortedTests(test_case); - - EXPECT_STREQ("Dummy", tests[0]->name()); - EXPECT_STREQ("TestCaseWithCommentTest/0", tests[0]->test_case_name()); - EXPECT_TRUE(IsNull(tests[0]->value_param())); - EXPECT_STREQ(GetTypeName<int>().c_str(), tests[0]->type_param()); - EXPECT_TRUE(tests[0]->should_run()); - EXPECT_TRUE(tests[0]->result()->Passed()); - EXPECT_EQ(0, tests[0]->result()->test_property_count()); - - delete[] tests; -#endif // GTEST_HAS_TYPED_TEST - delete[] test_cases; - } -}; - -} // namespace internal -} // namespace testing - -int main(int argc, char **argv) { - InitGoogleTest(&argc, argv); - - AddGlobalTestEnvironment(new testing::internal::FinalSuccessChecker()); - - return RUN_ALL_TESTS(); -}
http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/f8cf7fba/third_party/src/tmb/third_party/gtest/test/gtest_all_test.cc ---------------------------------------------------------------------- diff --git a/third_party/src/tmb/third_party/gtest/test/gtest_all_test.cc b/third_party/src/tmb/third_party/gtest/test/gtest_all_test.cc deleted file mode 100644 index 955aa62..0000000 --- a/third_party/src/tmb/third_party/gtest/test/gtest_all_test.cc +++ /dev/null @@ -1,47 +0,0 @@ -// Copyright 2009, 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. -// -// Author: w...@google.com (Zhanyong Wan) -// -// Tests for Google C++ Testing Framework (Google Test) -// -// Sometimes it's desirable to build most of Google Test's own tests -// by compiling a single file. This file serves this purpose. -#include "test/gtest-filepath_test.cc" -#include "test/gtest-linked_ptr_test.cc" -#include "test/gtest-message_test.cc" -#include "test/gtest-options_test.cc" -#include "test/gtest-port_test.cc" -#include "test/gtest_pred_impl_unittest.cc" -#include "test/gtest_prod_test.cc" -#include "test/gtest-test-part_test.cc" -#include "test/gtest-typed-test_test.cc" -#include "test/gtest-typed-test2_test.cc" -#include "test/gtest_unittest.cc" -#include "test/production.cc" http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/f8cf7fba/third_party/src/tmb/third_party/gtest/test/gtest_break_on_failure_unittest.py ---------------------------------------------------------------------- diff --git a/third_party/src/tmb/third_party/gtest/test/gtest_break_on_failure_unittest.py b/third_party/src/tmb/third_party/gtest/test/gtest_break_on_failure_unittest.py deleted file mode 100755 index 78f3e0f..0000000 --- a/third_party/src/tmb/third_party/gtest/test/gtest_break_on_failure_unittest.py +++ /dev/null @@ -1,212 +0,0 @@ -#!/usr/bin/env python -# -# Copyright 2006, 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. - -"""Unit test for Google Test's break-on-failure mode. - -A user can ask Google Test to seg-fault when an assertion fails, using -either the GTEST_BREAK_ON_FAILURE environment variable or the ---gtest_break_on_failure flag. This script tests such functionality -by invoking gtest_break_on_failure_unittest_ (a program written with -Google Test) with different environments and command line flags. -""" - -__author__ = 'w...@google.com (Zhanyong Wan)' - -import gtest_test_utils -import os -import sys - - -# Constants. - -IS_WINDOWS = os.name == 'nt' - -# The environment variable for enabling/disabling the break-on-failure mode. -BREAK_ON_FAILURE_ENV_VAR = 'GTEST_BREAK_ON_FAILURE' - -# The command line flag for enabling/disabling the break-on-failure mode. -BREAK_ON_FAILURE_FLAG = 'gtest_break_on_failure' - -# The environment variable for enabling/disabling the throw-on-failure mode. -THROW_ON_FAILURE_ENV_VAR = 'GTEST_THROW_ON_FAILURE' - -# The environment variable for enabling/disabling the catch-exceptions mode. -CATCH_EXCEPTIONS_ENV_VAR = 'GTEST_CATCH_EXCEPTIONS' - -# Path to the gtest_break_on_failure_unittest_ program. -EXE_PATH = gtest_test_utils.GetTestExecutablePath( - 'gtest_break_on_failure_unittest_') - - -environ = gtest_test_utils.environ -SetEnvVar = gtest_test_utils.SetEnvVar - -# Tests in this file run a Google-Test-based test program and expect it -# to terminate prematurely. Therefore they are incompatible with -# the premature-exit-file protocol by design. Unset the -# premature-exit filepath to prevent Google Test from creating -# the file. -SetEnvVar(gtest_test_utils.PREMATURE_EXIT_FILE_ENV_VAR, None) - - -def Run(command): - """Runs a command; returns 1 if it was killed by a signal, or 0 otherwise.""" - - p = gtest_test_utils.Subprocess(command, env=environ) - if p.terminated_by_signal: - return 1 - else: - return 0 - - -# The tests. - - -class GTestBreakOnFailureUnitTest(gtest_test_utils.TestCase): - """Tests using the GTEST_BREAK_ON_FAILURE environment variable or - the --gtest_break_on_failure flag to turn assertion failures into - segmentation faults. - """ - - def RunAndVerify(self, env_var_value, flag_value, expect_seg_fault): - """Runs gtest_break_on_failure_unittest_ and verifies that it does - (or does not) have a seg-fault. - - Args: - env_var_value: value of the GTEST_BREAK_ON_FAILURE environment - variable; None if the variable should be unset. - flag_value: value of the --gtest_break_on_failure flag; - None if the flag should not be present. - expect_seg_fault: 1 if the program is expected to generate a seg-fault; - 0 otherwise. - """ - - SetEnvVar(BREAK_ON_FAILURE_ENV_VAR, env_var_value) - - if env_var_value is None: - env_var_value_msg = ' is not set' - else: - env_var_value_msg = '=' + env_var_value - - if flag_value is None: - flag = '' - elif flag_value == '0': - flag = '--%s=0' % BREAK_ON_FAILURE_FLAG - else: - flag = '--%s' % BREAK_ON_FAILURE_FLAG - - command = [EXE_PATH] - if flag: - command.append(flag) - - if expect_seg_fault: - should_or_not = 'should' - else: - should_or_not = 'should not' - - has_seg_fault = Run(command) - - SetEnvVar(BREAK_ON_FAILURE_ENV_VAR, None) - - msg = ('when %s%s, an assertion failure in "%s" %s cause a seg-fault.' % - (BREAK_ON_FAILURE_ENV_VAR, env_var_value_msg, ' '.join(command), - should_or_not)) - self.assert_(has_seg_fault == expect_seg_fault, msg) - - def testDefaultBehavior(self): - """Tests the behavior of the default mode.""" - - self.RunAndVerify(env_var_value=None, - flag_value=None, - expect_seg_fault=0) - - def testEnvVar(self): - """Tests using the GTEST_BREAK_ON_FAILURE environment variable.""" - - self.RunAndVerify(env_var_value='0', - flag_value=None, - expect_seg_fault=0) - self.RunAndVerify(env_var_value='1', - flag_value=None, - expect_seg_fault=1) - - def testFlag(self): - """Tests using the --gtest_break_on_failure flag.""" - - self.RunAndVerify(env_var_value=None, - flag_value='0', - expect_seg_fault=0) - self.RunAndVerify(env_var_value=None, - flag_value='1', - expect_seg_fault=1) - - def testFlagOverridesEnvVar(self): - """Tests that the flag overrides the environment variable.""" - - self.RunAndVerify(env_var_value='0', - flag_value='0', - expect_seg_fault=0) - self.RunAndVerify(env_var_value='0', - flag_value='1', - expect_seg_fault=1) - self.RunAndVerify(env_var_value='1', - flag_value='0', - expect_seg_fault=0) - self.RunAndVerify(env_var_value='1', - flag_value='1', - expect_seg_fault=1) - - def testBreakOnFailureOverridesThrowOnFailure(self): - """Tests that gtest_break_on_failure overrides gtest_throw_on_failure.""" - - SetEnvVar(THROW_ON_FAILURE_ENV_VAR, '1') - try: - self.RunAndVerify(env_var_value=None, - flag_value='1', - expect_seg_fault=1) - finally: - SetEnvVar(THROW_ON_FAILURE_ENV_VAR, None) - - if IS_WINDOWS: - def testCatchExceptionsDoesNotInterfere(self): - """Tests that gtest_catch_exceptions doesn't interfere.""" - - SetEnvVar(CATCH_EXCEPTIONS_ENV_VAR, '1') - try: - self.RunAndVerify(env_var_value='1', - flag_value='1', - expect_seg_fault=1) - finally: - SetEnvVar(CATCH_EXCEPTIONS_ENV_VAR, None) - - -if __name__ == '__main__': - gtest_test_utils.Main() http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/f8cf7fba/third_party/src/tmb/third_party/gtest/test/gtest_break_on_failure_unittest_.cc ---------------------------------------------------------------------- diff --git a/third_party/src/tmb/third_party/gtest/test/gtest_break_on_failure_unittest_.cc b/third_party/src/tmb/third_party/gtest/test/gtest_break_on_failure_unittest_.cc deleted file mode 100644 index dd07478..0000000 --- a/third_party/src/tmb/third_party/gtest/test/gtest_break_on_failure_unittest_.cc +++ /dev/null @@ -1,88 +0,0 @@ -// Copyright 2006, 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. -// -// Author: w...@google.com (Zhanyong Wan) - -// Unit test for Google Test's break-on-failure mode. -// -// A user can ask Google Test to seg-fault when an assertion fails, using -// either the GTEST_BREAK_ON_FAILURE environment variable or the -// --gtest_break_on_failure flag. This file is used for testing such -// functionality. -// -// This program will be invoked from a Python unit test. It is -// expected to fail. Don't run it directly. - -#include "gtest/gtest.h" - -#if GTEST_OS_WINDOWS -# include <windows.h> -# include <stdlib.h> -#endif - -namespace { - -// A test that's expected to fail. -TEST(Foo, Bar) { - EXPECT_EQ(2, 3); -} - -#if GTEST_HAS_SEH && !GTEST_OS_WINDOWS_MOBILE -// On Windows Mobile global exception handlers are not supported. -LONG WINAPI ExitWithExceptionCode( - struct _EXCEPTION_POINTERS* exception_pointers) { - exit(exception_pointers->ExceptionRecord->ExceptionCode); -} -#endif - -} // namespace - -int main(int argc, char **argv) { -#if GTEST_OS_WINDOWS - // Suppresses display of the Windows error dialog upon encountering - // a general protection fault (segment violation). - SetErrorMode(SEM_NOGPFAULTERRORBOX | SEM_FAILCRITICALERRORS); - -# if GTEST_HAS_SEH && !GTEST_OS_WINDOWS_MOBILE - - // The default unhandled exception filter does not always exit - // with the exception code as exit code - for example it exits with - // 0 for EXCEPTION_ACCESS_VIOLATION and 1 for EXCEPTION_BREAKPOINT - // if the application is compiled in debug mode. Thus we use our own - // filter which always exits with the exception code for unhandled - // exceptions. - SetUnhandledExceptionFilter(ExitWithExceptionCode); - -# endif -#endif - - testing::InitGoogleTest(&argc, argv); - - return RUN_ALL_TESTS(); -} http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/f8cf7fba/third_party/src/tmb/third_party/gtest/test/gtest_catch_exceptions_test.py ---------------------------------------------------------------------- diff --git a/third_party/src/tmb/third_party/gtest/test/gtest_catch_exceptions_test.py b/third_party/src/tmb/third_party/gtest/test/gtest_catch_exceptions_test.py deleted file mode 100755 index e6fc22f..0000000 --- a/third_party/src/tmb/third_party/gtest/test/gtest_catch_exceptions_test.py +++ /dev/null @@ -1,237 +0,0 @@ -#!/usr/bin/env python -# -# Copyright 2010 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 Google Test's exception catching behavior. - -This script invokes gtest_catch_exceptions_test_ and -gtest_catch_exceptions_ex_test_ (programs written with -Google Test) and verifies their output. -""" - -__author__ = 'vl...@google.com (Vlad Losev)' - -import os - -import gtest_test_utils - -# Constants. -FLAG_PREFIX = '--gtest_' -LIST_TESTS_FLAG = FLAG_PREFIX + 'list_tests' -NO_CATCH_EXCEPTIONS_FLAG = FLAG_PREFIX + 'catch_exceptions=0' -FILTER_FLAG = FLAG_PREFIX + 'filter' - -# Path to the gtest_catch_exceptions_ex_test_ binary, compiled with -# exceptions enabled. -EX_EXE_PATH = gtest_test_utils.GetTestExecutablePath( - 'gtest_catch_exceptions_ex_test_') - -# Path to the gtest_catch_exceptions_test_ binary, compiled with -# exceptions disabled. -EXE_PATH = gtest_test_utils.GetTestExecutablePath( - 'gtest_catch_exceptions_no_ex_test_') - -environ = gtest_test_utils.environ -SetEnvVar = gtest_test_utils.SetEnvVar - -# Tests in this file run a Google-Test-based test program and expect it -# to terminate prematurely. Therefore they are incompatible with -# the premature-exit-file protocol by design. Unset the -# premature-exit filepath to prevent Google Test from creating -# the file. -SetEnvVar(gtest_test_utils.PREMATURE_EXIT_FILE_ENV_VAR, None) - -TEST_LIST = gtest_test_utils.Subprocess( - [EXE_PATH, LIST_TESTS_FLAG], env=environ).output - -SUPPORTS_SEH_EXCEPTIONS = 'ThrowsSehException' in TEST_LIST - -if SUPPORTS_SEH_EXCEPTIONS: - BINARY_OUTPUT = gtest_test_utils.Subprocess([EXE_PATH], env=environ).output - -EX_BINARY_OUTPUT = gtest_test_utils.Subprocess( - [EX_EXE_PATH], env=environ).output - - -# The tests. -if SUPPORTS_SEH_EXCEPTIONS: - # pylint:disable-msg=C6302 - class CatchSehExceptionsTest(gtest_test_utils.TestCase): - """Tests exception-catching behavior.""" - - - def TestSehExceptions(self, test_output): - self.assert_('SEH exception with code 0x2a thrown ' - 'in the test fixture\'s constructor' - in test_output) - self.assert_('SEH exception with code 0x2a thrown ' - 'in the test fixture\'s destructor' - in test_output) - self.assert_('SEH exception with code 0x2a thrown in SetUpTestCase()' - in test_output) - self.assert_('SEH exception with code 0x2a thrown in TearDownTestCase()' - in test_output) - self.assert_('SEH exception with code 0x2a thrown in SetUp()' - in test_output) - self.assert_('SEH exception with code 0x2a thrown in TearDown()' - in test_output) - self.assert_('SEH exception with code 0x2a thrown in the test body' - in test_output) - - def testCatchesSehExceptionsWithCxxExceptionsEnabled(self): - self.TestSehExceptions(EX_BINARY_OUTPUT) - - def testCatchesSehExceptionsWithCxxExceptionsDisabled(self): - self.TestSehExceptions(BINARY_OUTPUT) - - -class CatchCxxExceptionsTest(gtest_test_utils.TestCase): - """Tests C++ exception-catching behavior. - - Tests in this test case verify that: - * C++ exceptions are caught and logged as C++ (not SEH) exceptions - * Exception thrown affect the remainder of the test work flow in the - expected manner. - """ - - def testCatchesCxxExceptionsInFixtureConstructor(self): - self.assert_('C++ exception with description ' - '"Standard C++ exception" thrown ' - 'in the test fixture\'s constructor' - in EX_BINARY_OUTPUT) - self.assert_('unexpected' not in EX_BINARY_OUTPUT, - 'This failure belongs in this test only if ' - '"CxxExceptionInConstructorTest" (no quotes) ' - 'appears on the same line as words "called unexpectedly"') - - if ('CxxExceptionInDestructorTest.ThrowsExceptionInDestructor' in - EX_BINARY_OUTPUT): - - def testCatchesCxxExceptionsInFixtureDestructor(self): - self.assert_('C++ exception with description ' - '"Standard C++ exception" thrown ' - 'in the test fixture\'s destructor' - in EX_BINARY_OUTPUT) - self.assert_('CxxExceptionInDestructorTest::TearDownTestCase() ' - 'called as expected.' - in EX_BINARY_OUTPUT) - - def testCatchesCxxExceptionsInSetUpTestCase(self): - self.assert_('C++ exception with description "Standard C++ exception"' - ' thrown in SetUpTestCase()' - in EX_BINARY_OUTPUT) - self.assert_('CxxExceptionInConstructorTest::TearDownTestCase() ' - 'called as expected.' - in EX_BINARY_OUTPUT) - self.assert_('CxxExceptionInSetUpTestCaseTest constructor ' - 'called as expected.' - in EX_BINARY_OUTPUT) - self.assert_('CxxExceptionInSetUpTestCaseTest destructor ' - 'called as expected.' - in EX_BINARY_OUTPUT) - self.assert_('CxxExceptionInSetUpTestCaseTest::SetUp() ' - 'called as expected.' - in EX_BINARY_OUTPUT) - self.assert_('CxxExceptionInSetUpTestCaseTest::TearDown() ' - 'called as expected.' - in EX_BINARY_OUTPUT) - self.assert_('CxxExceptionInSetUpTestCaseTest test body ' - 'called as expected.' - in EX_BINARY_OUTPUT) - - def testCatchesCxxExceptionsInTearDownTestCase(self): - self.assert_('C++ exception with description "Standard C++ exception"' - ' thrown in TearDownTestCase()' - in EX_BINARY_OUTPUT) - - def testCatchesCxxExceptionsInSetUp(self): - self.assert_('C++ exception with description "Standard C++ exception"' - ' thrown in SetUp()' - in EX_BINARY_OUTPUT) - self.assert_('CxxExceptionInSetUpTest::TearDownTestCase() ' - 'called as expected.' - in EX_BINARY_OUTPUT) - self.assert_('CxxExceptionInSetUpTest destructor ' - 'called as expected.' - in EX_BINARY_OUTPUT) - self.assert_('CxxExceptionInSetUpTest::TearDown() ' - 'called as expected.' - in EX_BINARY_OUTPUT) - self.assert_('unexpected' not in EX_BINARY_OUTPUT, - 'This failure belongs in this test only if ' - '"CxxExceptionInSetUpTest" (no quotes) ' - 'appears on the same line as words "called unexpectedly"') - - def testCatchesCxxExceptionsInTearDown(self): - self.assert_('C++ exception with description "Standard C++ exception"' - ' thrown in TearDown()' - in EX_BINARY_OUTPUT) - self.assert_('CxxExceptionInTearDownTest::TearDownTestCase() ' - 'called as expected.' - in EX_BINARY_OUTPUT) - self.assert_('CxxExceptionInTearDownTest destructor ' - 'called as expected.' - in EX_BINARY_OUTPUT) - - def testCatchesCxxExceptionsInTestBody(self): - self.assert_('C++ exception with description "Standard C++ exception"' - ' thrown in the test body' - in EX_BINARY_OUTPUT) - self.assert_('CxxExceptionInTestBodyTest::TearDownTestCase() ' - 'called as expected.' - in EX_BINARY_OUTPUT) - self.assert_('CxxExceptionInTestBodyTest destructor ' - 'called as expected.' - in EX_BINARY_OUTPUT) - self.assert_('CxxExceptionInTestBodyTest::TearDown() ' - 'called as expected.' - in EX_BINARY_OUTPUT) - - def testCatchesNonStdCxxExceptions(self): - self.assert_('Unknown C++ exception thrown in the test body' - in EX_BINARY_OUTPUT) - - def testUnhandledCxxExceptionsAbortTheProgram(self): - # Filters out SEH exception tests on Windows. Unhandled SEH exceptions - # cause tests to show pop-up windows there. - FITLER_OUT_SEH_TESTS_FLAG = FILTER_FLAG + '=-*Seh*' - # By default, Google Test doesn't catch the exceptions. - uncaught_exceptions_ex_binary_output = gtest_test_utils.Subprocess( - [EX_EXE_PATH, - NO_CATCH_EXCEPTIONS_FLAG, - FITLER_OUT_SEH_TESTS_FLAG], - env=environ).output - - self.assert_('Unhandled C++ exception terminating the program' - in uncaught_exceptions_ex_binary_output) - self.assert_('unexpected' not in uncaught_exceptions_ex_binary_output) - - -if __name__ == '__main__': - gtest_test_utils.Main() http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/f8cf7fba/third_party/src/tmb/third_party/gtest/test/gtest_catch_exceptions_test_.cc ---------------------------------------------------------------------- diff --git a/third_party/src/tmb/third_party/gtest/test/gtest_catch_exceptions_test_.cc b/third_party/src/tmb/third_party/gtest/test/gtest_catch_exceptions_test_.cc deleted file mode 100644 index d0fc82c..0000000 --- a/third_party/src/tmb/third_party/gtest/test/gtest_catch_exceptions_test_.cc +++ /dev/null @@ -1,311 +0,0 @@ -// Copyright 2010, 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. -// -// Author: vl...@google.com (Vlad Losev) -// -// Tests for Google Test itself. Tests in this file throw C++ or SEH -// exceptions, and the output is verified by gtest_catch_exceptions_test.py. - -#include "gtest/gtest.h" - -#include <stdio.h> // NOLINT -#include <stdlib.h> // For exit(). - -#if GTEST_HAS_SEH -# include <windows.h> -#endif - -#if GTEST_HAS_EXCEPTIONS -# include <exception> // For set_terminate(). -# include <stdexcept> -#endif - -using testing::Test; - -#if GTEST_HAS_SEH - -class SehExceptionInConstructorTest : public Test { - public: - SehExceptionInConstructorTest() { RaiseException(42, 0, 0, NULL); } -}; - -TEST_F(SehExceptionInConstructorTest, ThrowsExceptionInConstructor) {} - -class SehExceptionInDestructorTest : public Test { - public: - ~SehExceptionInDestructorTest() { RaiseException(42, 0, 0, NULL); } -}; - -TEST_F(SehExceptionInDestructorTest, ThrowsExceptionInDestructor) {} - -class SehExceptionInSetUpTestCaseTest : public Test { - public: - static void SetUpTestCase() { RaiseException(42, 0, 0, NULL); } -}; - -TEST_F(SehExceptionInSetUpTestCaseTest, ThrowsExceptionInSetUpTestCase) {} - -class SehExceptionInTearDownTestCaseTest : public Test { - public: - static void TearDownTestCase() { RaiseException(42, 0, 0, NULL); } -}; - -TEST_F(SehExceptionInTearDownTestCaseTest, ThrowsExceptionInTearDownTestCase) {} - -class SehExceptionInSetUpTest : public Test { - protected: - virtual void SetUp() { RaiseException(42, 0, 0, NULL); } -}; - -TEST_F(SehExceptionInSetUpTest, ThrowsExceptionInSetUp) {} - -class SehExceptionInTearDownTest : public Test { - protected: - virtual void TearDown() { RaiseException(42, 0, 0, NULL); } -}; - -TEST_F(SehExceptionInTearDownTest, ThrowsExceptionInTearDown) {} - -TEST(SehExceptionTest, ThrowsSehException) { - RaiseException(42, 0, 0, NULL); -} - -#endif // GTEST_HAS_SEH - -#if GTEST_HAS_EXCEPTIONS - -class CxxExceptionInConstructorTest : public Test { - public: - CxxExceptionInConstructorTest() { - // Without this macro VC++ complains about unreachable code at the end of - // the constructor. - GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_( - throw std::runtime_error("Standard C++ exception")); - } - - static void TearDownTestCase() { - printf("%s", - "CxxExceptionInConstructorTest::TearDownTestCase() " - "called as expected.\n"); - } - - protected: - ~CxxExceptionInConstructorTest() { - ADD_FAILURE() << "CxxExceptionInConstructorTest destructor " - << "called unexpectedly."; - } - - virtual void SetUp() { - ADD_FAILURE() << "CxxExceptionInConstructorTest::SetUp() " - << "called unexpectedly."; - } - - virtual void TearDown() { - ADD_FAILURE() << "CxxExceptionInConstructorTest::TearDown() " - << "called unexpectedly."; - } -}; - -TEST_F(CxxExceptionInConstructorTest, ThrowsExceptionInConstructor) { - ADD_FAILURE() << "CxxExceptionInConstructorTest test body " - << "called unexpectedly."; -} - -// Exceptions in destructors are not supported in C++11. -#if !defined(__GXX_EXPERIMENTAL_CXX0X__) && __cplusplus < 201103L -class CxxExceptionInDestructorTest : public Test { - public: - static void TearDownTestCase() { - printf("%s", - "CxxExceptionInDestructorTest::TearDownTestCase() " - "called as expected.\n"); - } - - protected: - ~CxxExceptionInDestructorTest() { - GTEST_SUPPRESS_UNREACHABLE_CODE_WARNING_BELOW_( - throw std::runtime_error("Standard C++ exception")); - } -}; - -TEST_F(CxxExceptionInDestructorTest, ThrowsExceptionInDestructor) {} -#endif // C++11 mode - -class CxxExceptionInSetUpTestCaseTest : public Test { - public: - CxxExceptionInSetUpTestCaseTest() { - printf("%s", - "CxxExceptionInSetUpTestCaseTest constructor " - "called as expected.\n"); - } - - static void SetUpTestCase() { - throw std::runtime_error("Standard C++ exception"); - } - - static void TearDownTestCase() { - printf("%s", - "CxxExceptionInSetUpTestCaseTest::TearDownTestCase() " - "called as expected.\n"); - } - - protected: - ~CxxExceptionInSetUpTestCaseTest() { - printf("%s", - "CxxExceptionInSetUpTestCaseTest destructor " - "called as expected.\n"); - } - - virtual void SetUp() { - printf("%s", - "CxxExceptionInSetUpTestCaseTest::SetUp() " - "called as expected.\n"); - } - - virtual void TearDown() { - printf("%s", - "CxxExceptionInSetUpTestCaseTest::TearDown() " - "called as expected.\n"); - } -}; - -TEST_F(CxxExceptionInSetUpTestCaseTest, ThrowsExceptionInSetUpTestCase) { - printf("%s", - "CxxExceptionInSetUpTestCaseTest test body " - "called as expected.\n"); -} - -class CxxExceptionInTearDownTestCaseTest : public Test { - public: - static void TearDownTestCase() { - throw std::runtime_error("Standard C++ exception"); - } -}; - -TEST_F(CxxExceptionInTearDownTestCaseTest, ThrowsExceptionInTearDownTestCase) {} - -class CxxExceptionInSetUpTest : public Test { - public: - static void TearDownTestCase() { - printf("%s", - "CxxExceptionInSetUpTest::TearDownTestCase() " - "called as expected.\n"); - } - - protected: - ~CxxExceptionInSetUpTest() { - printf("%s", - "CxxExceptionInSetUpTest destructor " - "called as expected.\n"); - } - - virtual void SetUp() { throw std::runtime_error("Standard C++ exception"); } - - virtual void TearDown() { - printf("%s", - "CxxExceptionInSetUpTest::TearDown() " - "called as expected.\n"); - } -}; - -TEST_F(CxxExceptionInSetUpTest, ThrowsExceptionInSetUp) { - ADD_FAILURE() << "CxxExceptionInSetUpTest test body " - << "called unexpectedly."; -} - -class CxxExceptionInTearDownTest : public Test { - public: - static void TearDownTestCase() { - printf("%s", - "CxxExceptionInTearDownTest::TearDownTestCase() " - "called as expected.\n"); - } - - protected: - ~CxxExceptionInTearDownTest() { - printf("%s", - "CxxExceptionInTearDownTest destructor " - "called as expected.\n"); - } - - virtual void TearDown() { - throw std::runtime_error("Standard C++ exception"); - } -}; - -TEST_F(CxxExceptionInTearDownTest, ThrowsExceptionInTearDown) {} - -class CxxExceptionInTestBodyTest : public Test { - public: - static void TearDownTestCase() { - printf("%s", - "CxxExceptionInTestBodyTest::TearDownTestCase() " - "called as expected.\n"); - } - - protected: - ~CxxExceptionInTestBodyTest() { - printf("%s", - "CxxExceptionInTestBodyTest destructor " - "called as expected.\n"); - } - - virtual void TearDown() { - printf("%s", - "CxxExceptionInTestBodyTest::TearDown() " - "called as expected.\n"); - } -}; - -TEST_F(CxxExceptionInTestBodyTest, ThrowsStdCxxException) { - throw std::runtime_error("Standard C++ exception"); -} - -TEST(CxxExceptionTest, ThrowsNonStdCxxException) { - throw "C-string"; -} - -// This terminate handler aborts the program using exit() rather than abort(). -// This avoids showing pop-ups on Windows systems and core dumps on Unix-like -// ones. -void TerminateHandler() { - fprintf(stderr, "%s\n", "Unhandled C++ exception terminating the program."); - fflush(NULL); - exit(3); -} - -#endif // GTEST_HAS_EXCEPTIONS - -int main(int argc, char** argv) { -#if GTEST_HAS_EXCEPTIONS - std::set_terminate(&TerminateHandler); -#endif - testing::InitGoogleTest(&argc, argv); - return RUN_ALL_TESTS(); -} http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/f8cf7fba/third_party/src/tmb/third_party/gtest/test/gtest_color_test.py ---------------------------------------------------------------------- diff --git a/third_party/src/tmb/third_party/gtest/test/gtest_color_test.py b/third_party/src/tmb/third_party/gtest/test/gtest_color_test.py deleted file mode 100755 index d02a53e..0000000 --- a/third_party/src/tmb/third_party/gtest/test/gtest_color_test.py +++ /dev/null @@ -1,130 +0,0 @@ -#!/usr/bin/env python -# -# 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. - -"""Verifies that Google Test correctly determines whether to use colors.""" - -__author__ = 'w...@google.com (Zhanyong Wan)' - -import os -import gtest_test_utils - - -IS_WINDOWS = os.name = 'nt' - -COLOR_ENV_VAR = 'GTEST_COLOR' -COLOR_FLAG = 'gtest_color' -COMMAND = gtest_test_utils.GetTestExecutablePath('gtest_color_test_') - - -def SetEnvVar(env_var, value): - """Sets the env variable to 'value'; unsets it when 'value' is None.""" - - if value is not None: - os.environ[env_var] = value - elif env_var in os.environ: - del os.environ[env_var] - - -def UsesColor(term, color_env_var, color_flag): - """Runs gtest_color_test_ and returns its exit code.""" - - SetEnvVar('TERM', term) - SetEnvVar(COLOR_ENV_VAR, color_env_var) - - if color_flag is None: - args = [] - else: - args = ['--%s=%s' % (COLOR_FLAG, color_flag)] - p = gtest_test_utils.Subprocess([COMMAND] + args) - return not p.exited or p.exit_code - - -class GTestColorTest(gtest_test_utils.TestCase): - def testNoEnvVarNoFlag(self): - """Tests the case when there's neither GTEST_COLOR nor --gtest_color.""" - - if not IS_WINDOWS: - self.assert_(not UsesColor('dumb', None, None)) - self.assert_(not UsesColor('emacs', None, None)) - self.assert_(not UsesColor('xterm-mono', None, None)) - self.assert_(not UsesColor('unknown', None, None)) - self.assert_(not UsesColor(None, None, None)) - self.assert_(UsesColor('linux', None, None)) - self.assert_(UsesColor('cygwin', None, None)) - self.assert_(UsesColor('xterm', None, None)) - self.assert_(UsesColor('xterm-color', None, None)) - self.assert_(UsesColor('xterm-256color', None, None)) - - def testFlagOnly(self): - """Tests the case when there's --gtest_color but not GTEST_COLOR.""" - - self.assert_(not UsesColor('dumb', None, 'no')) - self.assert_(not UsesColor('xterm-color', None, 'no')) - if not IS_WINDOWS: - self.assert_(not UsesColor('emacs', None, 'auto')) - self.assert_(UsesColor('xterm', None, 'auto')) - self.assert_(UsesColor('dumb', None, 'yes')) - self.assert_(UsesColor('xterm', None, 'yes')) - - def testEnvVarOnly(self): - """Tests the case when there's GTEST_COLOR but not --gtest_color.""" - - self.assert_(not UsesColor('dumb', 'no', None)) - self.assert_(not UsesColor('xterm-color', 'no', None)) - if not IS_WINDOWS: - self.assert_(not UsesColor('dumb', 'auto', None)) - self.assert_(UsesColor('xterm-color', 'auto', None)) - self.assert_(UsesColor('dumb', 'yes', None)) - self.assert_(UsesColor('xterm-color', 'yes', None)) - - def testEnvVarAndFlag(self): - """Tests the case when there are both GTEST_COLOR and --gtest_color.""" - - self.assert_(not UsesColor('xterm-color', 'no', 'no')) - self.assert_(UsesColor('dumb', 'no', 'yes')) - self.assert_(UsesColor('xterm-color', 'no', 'auto')) - - def testAliasesOfYesAndNo(self): - """Tests using aliases in specifying --gtest_color.""" - - self.assert_(UsesColor('dumb', None, 'true')) - self.assert_(UsesColor('dumb', None, 'YES')) - self.assert_(UsesColor('dumb', None, 'T')) - self.assert_(UsesColor('dumb', None, '1')) - - self.assert_(not UsesColor('xterm', None, 'f')) - self.assert_(not UsesColor('xterm', None, 'false')) - self.assert_(not UsesColor('xterm', None, '0')) - self.assert_(not UsesColor('xterm', None, 'unknown')) - - -if __name__ == '__main__': - gtest_test_utils.Main() http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/f8cf7fba/third_party/src/tmb/third_party/gtest/test/gtest_color_test_.cc ---------------------------------------------------------------------- diff --git a/third_party/src/tmb/third_party/gtest/test/gtest_color_test_.cc b/third_party/src/tmb/third_party/gtest/test/gtest_color_test_.cc deleted file mode 100644 index f61ebb8..0000000 --- a/third_party/src/tmb/third_party/gtest/test/gtest_color_test_.cc +++ /dev/null @@ -1,71 +0,0 @@ -// 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. -// -// Author: w...@google.com (Zhanyong Wan) - -// A helper program for testing how Google Test determines whether to use -// colors in the output. It prints "YES" and returns 1 if Google Test -// decides to use colors, and prints "NO" and returns 0 otherwise. - -#include <stdio.h> - -#include "gtest/gtest.h" - -// Indicates that this translation unit is part of Google Test's -// implementation. It must come before gtest-internal-inl.h is -// included, or there will be a compiler error. This trick is to -// prevent a user from accidentally including gtest-internal-inl.h in -// his code. -#define GTEST_IMPLEMENTATION_ 1 -#include "src/gtest-internal-inl.h" -#undef GTEST_IMPLEMENTATION_ - -using testing::internal::ShouldUseColor; - -// The purpose of this is to ensure that the UnitTest singleton is -// created before main() is entered, and thus that ShouldUseColor() -// works the same way as in a real Google-Test-based test. We don't actual -// run the TEST itself. -TEST(GTestColorTest, Dummy) { -} - -int main(int argc, char** argv) { - testing::InitGoogleTest(&argc, argv); - - if (ShouldUseColor(true)) { - // Google Test decides to use colors in the output (assuming it - // goes to a TTY). - printf("YES\n"); - return 1; - } else { - // Google Test decides not to use colors in the output. - printf("NO\n"); - return 0; - } -} http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/f8cf7fba/third_party/src/tmb/third_party/gtest/test/gtest_env_var_test.py ---------------------------------------------------------------------- diff --git a/third_party/src/tmb/third_party/gtest/test/gtest_env_var_test.py b/third_party/src/tmb/third_party/gtest/test/gtest_env_var_test.py deleted file mode 100755 index ac24337..0000000 --- a/third_party/src/tmb/third_party/gtest/test/gtest_env_var_test.py +++ /dev/null @@ -1,103 +0,0 @@ -#!/usr/bin/env python -# -# 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. - -"""Verifies that Google Test correctly parses environment variables.""" - -__author__ = 'w...@google.com (Zhanyong Wan)' - -import os -import gtest_test_utils - - -IS_WINDOWS = os.name == 'nt' -IS_LINUX = os.name == 'posix' and os.uname()[0] == 'Linux' - -COMMAND = gtest_test_utils.GetTestExecutablePath('gtest_env_var_test_') - -environ = os.environ.copy() - - -def AssertEq(expected, actual): - if expected != actual: - print 'Expected: %s' % (expected,) - print ' Actual: %s' % (actual,) - raise AssertionError - - -def SetEnvVar(env_var, value): - """Sets the env variable to 'value'; unsets it when 'value' is None.""" - - if value is not None: - environ[env_var] = value - elif env_var in environ: - del environ[env_var] - - -def GetFlag(flag): - """Runs gtest_env_var_test_ and returns its output.""" - - args = [COMMAND] - if flag is not None: - args += [flag] - return gtest_test_utils.Subprocess(args, env=environ).output - - -def TestFlag(flag, test_val, default_val): - """Verifies that the given flag is affected by the corresponding env var.""" - - env_var = 'GTEST_' + flag.upper() - SetEnvVar(env_var, test_val) - AssertEq(test_val, GetFlag(flag)) - SetEnvVar(env_var, None) - AssertEq(default_val, GetFlag(flag)) - - -class GTestEnvVarTest(gtest_test_utils.TestCase): - def testEnvVarAffectsFlag(self): - """Tests that environment variable should affect the corresponding flag.""" - - TestFlag('break_on_failure', '1', '0') - TestFlag('color', 'yes', 'auto') - TestFlag('filter', 'FooTest.Bar', '*') - TestFlag('output', 'xml:tmp/foo.xml', '') - TestFlag('print_time', '0', '1') - TestFlag('repeat', '999', '1') - TestFlag('throw_on_failure', '1', '0') - TestFlag('death_test_style', 'threadsafe', 'fast') - TestFlag('catch_exceptions', '0', '1') - - if IS_LINUX: - TestFlag('death_test_use_fork', '1', '0') - TestFlag('stack_trace_depth', '0', '100') - - -if __name__ == '__main__': - gtest_test_utils.Main() http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/f8cf7fba/third_party/src/tmb/third_party/gtest/test/gtest_env_var_test_.cc ---------------------------------------------------------------------- diff --git a/third_party/src/tmb/third_party/gtest/test/gtest_env_var_test_.cc b/third_party/src/tmb/third_party/gtest/test/gtest_env_var_test_.cc deleted file mode 100644 index 539afc9..0000000 --- a/third_party/src/tmb/third_party/gtest/test/gtest_env_var_test_.cc +++ /dev/null @@ -1,126 +0,0 @@ -// 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. -// -// Author: w...@google.com (Zhanyong Wan) - -// A helper program for testing that Google Test parses the environment -// variables correctly. - -#include "gtest/gtest.h" - -#include <iostream> - -#define GTEST_IMPLEMENTATION_ 1 -#include "src/gtest-internal-inl.h" -#undef GTEST_IMPLEMENTATION_ - -using ::std::cout; - -namespace testing { - -// The purpose of this is to make the test more realistic by ensuring -// that the UnitTest singleton is created before main() is entered. -// We don't actual run the TEST itself. -TEST(GTestEnvVarTest, Dummy) { -} - -void PrintFlag(const char* flag) { - if (strcmp(flag, "break_on_failure") == 0) { - cout << GTEST_FLAG(break_on_failure); - return; - } - - if (strcmp(flag, "catch_exceptions") == 0) { - cout << GTEST_FLAG(catch_exceptions); - return; - } - - if (strcmp(flag, "color") == 0) { - cout << GTEST_FLAG(color); - return; - } - - if (strcmp(flag, "death_test_style") == 0) { - cout << GTEST_FLAG(death_test_style); - return; - } - - if (strcmp(flag, "death_test_use_fork") == 0) { - cout << GTEST_FLAG(death_test_use_fork); - return; - } - - if (strcmp(flag, "filter") == 0) { - cout << GTEST_FLAG(filter); - return; - } - - if (strcmp(flag, "output") == 0) { - cout << GTEST_FLAG(output); - return; - } - - if (strcmp(flag, "print_time") == 0) { - cout << GTEST_FLAG(print_time); - return; - } - - if (strcmp(flag, "repeat") == 0) { - cout << GTEST_FLAG(repeat); - return; - } - - if (strcmp(flag, "stack_trace_depth") == 0) { - cout << GTEST_FLAG(stack_trace_depth); - return; - } - - if (strcmp(flag, "throw_on_failure") == 0) { - cout << GTEST_FLAG(throw_on_failure); - return; - } - - cout << "Invalid flag name " << flag - << ". Valid names are break_on_failure, color, filter, etc.\n"; - exit(1); -} - -} // namespace testing - -int main(int argc, char** argv) { - testing::InitGoogleTest(&argc, argv); - - if (argc != 2) { - cout << "Usage: gtest_env_var_test_ NAME_OF_FLAG\n"; - return 1; - } - - testing::PrintFlag(argv[1]); - return 0; -} http://git-wip-us.apache.org/repos/asf/incubator-quickstep/blob/f8cf7fba/third_party/src/tmb/third_party/gtest/test/gtest_environment_test.cc ---------------------------------------------------------------------- diff --git a/third_party/src/tmb/third_party/gtest/test/gtest_environment_test.cc b/third_party/src/tmb/third_party/gtest/test/gtest_environment_test.cc deleted file mode 100644 index 3cff19e..0000000 --- a/third_party/src/tmb/third_party/gtest/test/gtest_environment_test.cc +++ /dev/null @@ -1,192 +0,0 @@ -// Copyright 2007, 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. -// -// Author: w...@google.com (Zhanyong Wan) -// -// Tests using global test environments. - -#include <stdlib.h> -#include <stdio.h> -#include "gtest/gtest.h" - -#define GTEST_IMPLEMENTATION_ 1 // Required for the next #include. -#include "src/gtest-internal-inl.h" -#undef GTEST_IMPLEMENTATION_ - -namespace testing { -GTEST_DECLARE_string_(filter); -} - -namespace { - -enum FailureType { - NO_FAILURE, NON_FATAL_FAILURE, FATAL_FAILURE -}; - -// For testing using global test environments. -class MyEnvironment : public testing::Environment { - public: - MyEnvironment() { Reset(); } - - // Depending on the value of failure_in_set_up_, SetUp() will - // generate a non-fatal failure, generate a fatal failure, or - // succeed. - virtual void SetUp() { - set_up_was_run_ = true; - - switch (failure_in_set_up_) { - case NON_FATAL_FAILURE: - ADD_FAILURE() << "Expected non-fatal failure in global set-up."; - break; - case FATAL_FAILURE: - FAIL() << "Expected fatal failure in global set-up."; - break; - default: - break; - } - } - - // Generates a non-fatal failure. - virtual void TearDown() { - tear_down_was_run_ = true; - ADD_FAILURE() << "Expected non-fatal failure in global tear-down."; - } - - // Resets the state of the environment s.t. it can be reused. - void Reset() { - failure_in_set_up_ = NO_FAILURE; - set_up_was_run_ = false; - tear_down_was_run_ = false; - } - - // We call this function to set the type of failure SetUp() should - // generate. - void set_failure_in_set_up(FailureType type) { - failure_in_set_up_ = type; - } - - // Was SetUp() run? - bool set_up_was_run() const { return set_up_was_run_; } - - // Was TearDown() run? - bool tear_down_was_run() const { return tear_down_was_run_; } - - private: - FailureType failure_in_set_up_; - bool set_up_was_run_; - bool tear_down_was_run_; -}; - -// Was the TEST run? -bool test_was_run; - -// The sole purpose of this TEST is to enable us to check whether it -// was run. -TEST(FooTest, Bar) { - test_was_run = true; -} - -// Prints the message and aborts the program if condition is false. -void Check(bool condition, const char* msg) { - if (!condition) { - printf("FAILED: %s\n", msg); - testing::internal::posix::Abort(); - } -} - -// Runs the tests. Return true iff successful. -// -// The 'failure' parameter specifies the type of failure that should -// be generated by the global set-up. -int RunAllTests(MyEnvironment* env, FailureType failure) { - env->Reset(); - env->set_failure_in_set_up(failure); - test_was_run = false; - testing::internal::GetUnitTestImpl()->ClearAdHocTestResult(); - return RUN_ALL_TESTS(); -} - -} // namespace - -int main(int argc, char **argv) { - testing::InitGoogleTest(&argc, argv); - - // Registers a global test environment, and verifies that the - // registration function returns its argument. - MyEnvironment* const env = new MyEnvironment; - Check(testing::AddGlobalTestEnvironment(env) == env, - "AddGlobalTestEnvironment() should return its argument."); - - // Verifies that RUN_ALL_TESTS() runs the tests when the global - // set-up is successful. - Check(RunAllTests(env, NO_FAILURE) != 0, - "RUN_ALL_TESTS() should return non-zero, as the global tear-down " - "should generate a failure."); - Check(test_was_run, - "The tests should run, as the global set-up should generate no " - "failure"); - Check(env->tear_down_was_run(), - "The global tear-down should run, as the global set-up was run."); - - // Verifies that RUN_ALL_TESTS() runs the tests when the global - // set-up generates no fatal failure. - Check(RunAllTests(env, NON_FATAL_FAILURE) != 0, - "RUN_ALL_TESTS() should return non-zero, as both the global set-up " - "and the global tear-down should generate a non-fatal failure."); - Check(test_was_run, - "The tests should run, as the global set-up should generate no " - "fatal failure."); - Check(env->tear_down_was_run(), - "The global tear-down should run, as the global set-up was run."); - - // Verifies that RUN_ALL_TESTS() runs no test when the global set-up - // generates a fatal failure. - Check(RunAllTests(env, FATAL_FAILURE) != 0, - "RUN_ALL_TESTS() should return non-zero, as the global set-up " - "should generate a fatal failure."); - Check(!test_was_run, - "The tests should not run, as the global set-up should generate " - "a fatal failure."); - Check(env->tear_down_was_run(), - "The global tear-down should run, as the global set-up was run."); - - // Verifies that RUN_ALL_TESTS() doesn't do global set-up or - // tear-down when there is no test to run. - testing::GTEST_FLAG(filter) = "-*"; - Check(RunAllTests(env, NO_FAILURE) == 0, - "RUN_ALL_TESTS() should return zero, as there is no test to run."); - Check(!env->set_up_was_run(), - "The global set-up should not run, as there is no test to run."); - Check(!env->tear_down_was_run(), - "The global tear-down should not run, " - "as the global set-up was not run."); - - printf("PASS\n"); - return 0; -}