Merge lp:~renatofilho/sync-monitor/disable-sync-for-canonical into lp:sync-monitor
- disable-sync-for-canonical
- Merge into trunk
Status: | Rejected |
---|---|
Rejected by: | Renato Araujo Oliveira Filho |
Proposed branch: | lp:~renatofilho/sync-monitor/disable-sync-for-canonical |
Merge into: | lp:sync-monitor |
Diff against target: |
68184 lines (+98/-67193) 161 files modified
3rd_party/CMakeLists.txt (+0/-1) 3rd_party/gmock/CMakeLists.txt (+0/-171) 3rd_party/gmock/gtest/CHANGES (+0/-153) 3rd_party/gmock/gtest/CMakeLists.txt (+0/-250) 3rd_party/gmock/gtest/CONTRIBUTORS (+0/-37) 3rd_party/gmock/gtest/Makefile.am (+0/-305) 3rd_party/gmock/gtest/README (+0/-435) 3rd_party/gmock/gtest/cmake/internal_utils.cmake (+0/-227) 3rd_party/gmock/gtest/codegear/gtest_all.cc (+0/-38) 3rd_party/gmock/gtest/codegear/gtest_link.cc (+0/-40) 3rd_party/gmock/gtest/configure.ac (+0/-68) 3rd_party/gmock/gtest/include/gtest/gtest-death-test.h (+0/-294) 3rd_party/gmock/gtest/include/gtest/gtest-message.h (+0/-250) 3rd_party/gmock/gtest/include/gtest/gtest-param-test.h (+0/-1421) 3rd_party/gmock/gtest/include/gtest/gtest-param-test.h.pump (+0/-487) 3rd_party/gmock/gtest/include/gtest/gtest-printers.h (+0/-855) 3rd_party/gmock/gtest/include/gtest/gtest-spi.h (+0/-232) 3rd_party/gmock/gtest/include/gtest/gtest-test-part.h (+0/-179) 3rd_party/gmock/gtest/include/gtest/gtest-typed-test.h (+0/-259) 3rd_party/gmock/gtest/include/gtest/gtest.h (+0/-2291) 3rd_party/gmock/gtest/include/gtest/gtest_pred_impl.h (+0/-358) 3rd_party/gmock/gtest/include/gtest/gtest_prod.h (+0/-58) 3rd_party/gmock/gtest/include/gtest/internal/gtest-death-test-internal.h (+0/-319) 3rd_party/gmock/gtest/include/gtest/internal/gtest-filepath.h (+0/-206) 3rd_party/gmock/gtest/include/gtest/internal/gtest-internal.h (+0/-1147) 3rd_party/gmock/gtest/include/gtest/internal/gtest-linked_ptr.h (+0/-233) 3rd_party/gmock/gtest/include/gtest/internal/gtest-param-util-generated.h (+0/-5143) 3rd_party/gmock/gtest/include/gtest/internal/gtest-param-util-generated.h.pump (+0/-301) 3rd_party/gmock/gtest/include/gtest/internal/gtest-param-util.h (+0/-619) 3rd_party/gmock/gtest/include/gtest/internal/gtest-port.h (+0/-1947) 3rd_party/gmock/gtest/include/gtest/internal/gtest-string.h (+0/-167) 3rd_party/gmock/gtest/include/gtest/internal/gtest-tuple.h (+0/-1012) 3rd_party/gmock/gtest/include/gtest/internal/gtest-tuple.h.pump (+0/-339) 3rd_party/gmock/gtest/include/gtest/internal/gtest-type-util.h (+0/-3331) 3rd_party/gmock/gtest/include/gtest/internal/gtest-type-util.h.pump (+0/-297) 3rd_party/gmock/gtest/m4/acx_pthread.m4 (+0/-363) 3rd_party/gmock/gtest/m4/gtest.m4 (+0/-74) 3rd_party/gmock/gtest/make/Makefile (+0/-82) 3rd_party/gmock/gtest/samples/prime_tables.h (+0/-123) 3rd_party/gmock/gtest/samples/sample1.cc (+0/-68) 3rd_party/gmock/gtest/samples/sample1.h (+0/-43) 3rd_party/gmock/gtest/samples/sample10_unittest.cc (+0/-144) 3rd_party/gmock/gtest/samples/sample1_unittest.cc (+0/-153) 3rd_party/gmock/gtest/samples/sample2.cc (+0/-56) 3rd_party/gmock/gtest/samples/sample2.h (+0/-85) 3rd_party/gmock/gtest/samples/sample2_unittest.cc (+0/-109) 3rd_party/gmock/gtest/samples/sample3-inl.h (+0/-172) 3rd_party/gmock/gtest/samples/sample3_unittest.cc (+0/-151) 3rd_party/gmock/gtest/samples/sample4.cc (+0/-46) 3rd_party/gmock/gtest/samples/sample4.h (+0/-53) 3rd_party/gmock/gtest/samples/sample4_unittest.cc (+0/-45) 3rd_party/gmock/gtest/samples/sample5_unittest.cc (+0/-199) 3rd_party/gmock/gtest/samples/sample6_unittest.cc (+0/-224) 3rd_party/gmock/gtest/samples/sample7_unittest.cc (+0/-130) 3rd_party/gmock/gtest/samples/sample8_unittest.cc (+0/-173) 3rd_party/gmock/gtest/samples/sample9_unittest.cc (+0/-160) 3rd_party/gmock/gtest/scripts/fuse_gtest_files.py (+0/-250) 3rd_party/gmock/gtest/scripts/gen_gtest_pred_impl.py (+0/-730) 3rd_party/gmock/gtest/scripts/gtest-config.in (+0/-274) 3rd_party/gmock/gtest/scripts/pump.py (+0/-855) 3rd_party/gmock/gtest/scripts/test/Makefile (+0/-59) 3rd_party/gmock/gtest/scripts/upload.py (+0/-1387) 3rd_party/gmock/gtest/scripts/upload_gtest.py (+0/-78) 3rd_party/gmock/gtest/src/gtest-all.cc (+0/-48) 3rd_party/gmock/gtest/src/gtest-death-test.cc (+0/-1344) 3rd_party/gmock/gtest/src/gtest-filepath.cc (+0/-382) 3rd_party/gmock/gtest/src/gtest-internal-inl.h (+0/-1218) 3rd_party/gmock/gtest/src/gtest-port.cc (+0/-805) 3rd_party/gmock/gtest/src/gtest-printers.cc (+0/-363) 3rd_party/gmock/gtest/src/gtest-test-part.cc (+0/-110) 3rd_party/gmock/gtest/src/gtest-typed-test.cc (+0/-110) 3rd_party/gmock/gtest/src/gtest.cc (+0/-4961) 3rd_party/gmock/gtest/src/gtest_main.cc (+0/-38) 3rd_party/gmock/gtest/test/gtest-death-test_ex_test.cc (+0/-93) 3rd_party/gmock/gtest/test/gtest-death-test_test.cc (+0/-1368) 3rd_party/gmock/gtest/test/gtest-filepath_test.cc (+0/-680) 3rd_party/gmock/gtest/test/gtest-linked_ptr_test.cc (+0/-154) 3rd_party/gmock/gtest/test/gtest-listener_test.cc (+0/-310) 3rd_party/gmock/gtest/test/gtest-message_test.cc (+0/-159) 3rd_party/gmock/gtest/test/gtest-options_test.cc (+0/-215) 3rd_party/gmock/gtest/test/gtest-param-test2_test.cc (+0/-65) 3rd_party/gmock/gtest/test/gtest-param-test_test.cc (+0/-904) 3rd_party/gmock/gtest/test/gtest-param-test_test.h (+0/-57) 3rd_party/gmock/gtest/test/gtest-port_test.cc (+0/-1253) 3rd_party/gmock/gtest/test/gtest-printers_test.cc (+0/-1566) 3rd_party/gmock/gtest/test/gtest-test-part_test.cc (+0/-208) 3rd_party/gmock/gtest/test/gtest-tuple_test.cc (+0/-320) 3rd_party/gmock/gtest/test/gtest-typed-test2_test.cc (+0/-45) 3rd_party/gmock/gtest/test/gtest-typed-test_test.cc (+0/-360) 3rd_party/gmock/gtest/test/gtest-typed-test_test.h (+0/-66) 3rd_party/gmock/gtest/test/gtest-unittest-api_test.cc (+0/-341) 3rd_party/gmock/gtest/test/gtest_all_test.cc (+0/-47) 3rd_party/gmock/gtest/test/gtest_break_on_failure_unittest.py (+0/-218) 3rd_party/gmock/gtest/test/gtest_break_on_failure_unittest_.cc (+0/-88) 3rd_party/gmock/gtest/test/gtest_catch_exceptions_test.py (+0/-223) 3rd_party/gmock/gtest/test/gtest_catch_exceptions_test_.cc (+0/-311) 3rd_party/gmock/gtest/test/gtest_color_test.py (+0/-130) 3rd_party/gmock/gtest/test/gtest_color_test_.cc (+0/-71) 3rd_party/gmock/gtest/test/gtest_env_var_test.py (+0/-103) 3rd_party/gmock/gtest/test/gtest_env_var_test_.cc (+0/-126) 3rd_party/gmock/gtest/test/gtest_environment_test.cc (+0/-192) 3rd_party/gmock/gtest/test/gtest_filter_unittest.py (+0/-633) 3rd_party/gmock/gtest/test/gtest_filter_unittest_.cc (+0/-140) 3rd_party/gmock/gtest/test/gtest_help_test.py (+0/-172) 3rd_party/gmock/gtest/test/gtest_help_test_.cc (+0/-46) 3rd_party/gmock/gtest/test/gtest_list_tests_unittest.py (+0/-207) 3rd_party/gmock/gtest/test/gtest_list_tests_unittest_.cc (+0/-157) 3rd_party/gmock/gtest/test/gtest_main_unittest.cc (+0/-45) 3rd_party/gmock/gtest/test/gtest_no_test_unittest.cc (+0/-56) 3rd_party/gmock/gtest/test/gtest_output_test.py (+0/-335) 3rd_party/gmock/gtest/test/gtest_output_test_.cc (+0/-1034) 3rd_party/gmock/gtest/test/gtest_output_test_golden_lin.txt (+0/-720) 3rd_party/gmock/gtest/test/gtest_pred_impl_unittest.cc (+0/-2427) 3rd_party/gmock/gtest/test/gtest_prod_test.cc (+0/-57) 3rd_party/gmock/gtest/test/gtest_repeat_test.cc (+0/-253) 3rd_party/gmock/gtest/test/gtest_shuffle_test.py (+0/-325) 3rd_party/gmock/gtest/test/gtest_shuffle_test_.cc (+0/-103) 3rd_party/gmock/gtest/test/gtest_sole_header_test.cc (+0/-57) 3rd_party/gmock/gtest/test/gtest_stress_test.cc (+0/-256) 3rd_party/gmock/gtest/test/gtest_test_utils.py (+0/-305) 3rd_party/gmock/gtest/test/gtest_throw_on_failure_ex_test.cc (+0/-92) 3rd_party/gmock/gtest/test/gtest_throw_on_failure_test.py (+0/-171) 3rd_party/gmock/gtest/test/gtest_throw_on_failure_test_.cc (+0/-72) 3rd_party/gmock/gtest/test/gtest_uninitialized_test.py (+0/-70) 3rd_party/gmock/gtest/test/gtest_uninitialized_test_.cc (+0/-43) 3rd_party/gmock/gtest/test/gtest_unittest.cc (+0/-7415) 3rd_party/gmock/gtest/test/gtest_xml_outfile1_test_.cc (+0/-49) 3rd_party/gmock/gtest/test/gtest_xml_outfile2_test_.cc (+0/-49) 3rd_party/gmock/gtest/test/gtest_xml_outfiles_test.py (+0/-132) 3rd_party/gmock/gtest/test/gtest_xml_output_unittest.py (+0/-307) 3rd_party/gmock/gtest/test/gtest_xml_output_unittest_.cc (+0/-181) 3rd_party/gmock/gtest/test/gtest_xml_test_utils.py (+0/-194) 3rd_party/gmock/gtest/test/production.cc (+0/-36) 3rd_party/gmock/gtest/test/production.h (+0/-55) 3rd_party/gmock/gtest/xcode/Config/DebugProject.xcconfig (+0/-30) 3rd_party/gmock/gtest/xcode/Config/FrameworkTarget.xcconfig (+0/-17) 3rd_party/gmock/gtest/xcode/Config/General.xcconfig (+0/-41) 3rd_party/gmock/gtest/xcode/Config/ReleaseProject.xcconfig (+0/-32) 3rd_party/gmock/gtest/xcode/Config/StaticLibraryTarget.xcconfig (+0/-18) 3rd_party/gmock/gtest/xcode/Config/TestTarget.xcconfig (+0/-8) 3rd_party/gmock/gtest/xcode/Resources/Info.plist (+0/-30) 3rd_party/gmock/gtest/xcode/Samples/FrameworkSample/Info.plist (+0/-28) 3rd_party/gmock/gtest/xcode/Samples/FrameworkSample/runtests.sh (+0/-62) 3rd_party/gmock/gtest/xcode/Samples/FrameworkSample/widget.cc (+0/-63) 3rd_party/gmock/gtest/xcode/Samples/FrameworkSample/widget.h (+0/-59) 3rd_party/gmock/gtest/xcode/Samples/FrameworkSample/widget_test.cc (+0/-68) 3rd_party/gmock/gtest/xcode/Scripts/runtests.sh (+0/-65) 3rd_party/gmock/gtest/xcode/Scripts/versiongenerate.py (+0/-100) 3rd_party/gmock/src/gmock-all.cc (+0/-47) 3rd_party/gmock/src/gmock-cardinalities.cc (+0/-156) 3rd_party/gmock/src/gmock-internal-utils.cc (+0/-174) 3rd_party/gmock/src/gmock-matchers.cc (+0/-137) 3rd_party/gmock/src/gmock-spec-builders.cc (+0/-813) 3rd_party/gmock/src/gmock.cc (+0/-182) 3rd_party/gmock/src/gmock_main.cc (+0/-54) CMakeLists.txt (+6/-1) cmake/FindGtest.cmake (+68/-0) src/sync-account.cpp (+5/-1) src/sync-daemon.cpp (+9/-3) src/sync-daemon.h (+1/-0) tests/unittest/CMakeLists.txt (+9/-2) |
To merge this branch: | bzr merge lp:~renatofilho/sync-monitor/disable-sync-for-canonical |
Related bugs: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Charles Kerr (community) | Approve | ||
system-apps-ci-bot | continuous-integration | Approve | |
Review via email: mp+320933@code.launchpad.net |
Commit message
Does not sync canonical accounts due bug #1628040.
Description of the change
Does not sync canonical accounts due bug #1628040.
system-apps-ci-bot (system-apps-ci-bot) wrote : | # |
- 101. By Renato Araujo Oliveira Filho
-
Use gmock from system intead of keep a copy internally.
- 102. By Renato Araujo Oliveira Filho
-
Add more debug messages.
system-apps-ci-bot (system-apps-ci-bot) wrote : | # |
FAILED: Continuous integration, rev:102
https:/
Executed test runs:
FAILURE: https:/
SUCCESS: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
FAILURE: https:/
Click here to trigger a rebuild:
https:/
- 103. By Renato Araujo Oliveira Filho
-
Add missing files.
system-apps-ci-bot (system-apps-ci-bot) wrote : | # |
PASSED: Continuous integration, rev:103
https:/
Executed test runs:
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild:
https:/
- 104. By Renato Araujo Oliveira Filho
-
Only syncs calendars owned by the user.
system-apps-ci-bot (system-apps-ci-bot) wrote : | # |
PASSED: Continuous integration, rev:104
https:/
Executed test runs:
SUCCESS: https:/
SUCCESS: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
SUCCESS: https:/
deb: https:/
Click here to trigger a rebuild:
https:/
Charles Kerr (charlesk) wrote : | # |
The gmock removal should have gone in a separate branch, IMO. This makes it harder to see the actual ~20 line patch
As to the actual patch... I'm a little worried that we carve out this special case, this patch looks like it cures the symptom rather than the underlying sync bug.
Still, as long as this is understood to be a temporary workaround for the inbox spam, and that this will be cleaned up when the sync bug is fixed, I'm OK with a temporary.
Renato Araujo Oliveira Filho (renatofilho) wrote : | # |
Unmerged revisions
- 104. By Renato Araujo Oliveira Filho
-
Only syncs calendars owned by the user.
- 103. By Renato Araujo Oliveira Filho
-
Add missing files.
- 102. By Renato Araujo Oliveira Filho
-
Add more debug messages.
- 101. By Renato Araujo Oliveira Filho
-
Use gmock from system intead of keep a copy internally.
- 100. By Renato Araujo Oliveira Filho
-
Does not sync canonical accounts due bug #1628040.
Preview Diff
1 | === modified file '3rd_party/CMakeLists.txt' |
2 | --- 3rd_party/CMakeLists.txt 2014-04-07 19:51:32 +0000 |
3 | +++ 3rd_party/CMakeLists.txt 2017-03-27 13:27:39 +0000 |
4 | @@ -1,2 +1,1 @@ |
5 | add_subdirectory(syncevolution-qt) |
6 | -add_subdirectory(gmock) |
7 | |
8 | === removed directory '3rd_party/gmock' |
9 | === removed file '3rd_party/gmock/CMakeLists.txt' |
10 | --- 3rd_party/gmock/CMakeLists.txt 2014-04-07 19:53:07 +0000 |
11 | +++ 3rd_party/gmock/CMakeLists.txt 1970-01-01 00:00:00 +0000 |
12 | @@ -1,171 +0,0 @@ |
13 | -######################################################################## |
14 | -# CMake build script for Google Mock. |
15 | -# |
16 | -# To run the tests for Google Mock itself on Linux, use 'make test' or |
17 | -# ctest. You can select which tests to run using 'ctest -R regex'. |
18 | -# For more options, run 'ctest --help'. |
19 | - |
20 | -# BUILD_SHARED_LIBS is a standard CMake variable, but we declare it here to |
21 | -# make it prominent in the GUI. |
22 | -option(BUILD_SHARED_LIBS "Build shared libraries (DLLs)." OFF) |
23 | - |
24 | -option(gmock_build_tests "Build all of Google Mock's own tests." OFF) |
25 | - |
26 | -# A directory to find Google Test sources. |
27 | -if (EXISTS "${CMAKE_CURRENT_SOURCE_DIR}/gtest/CMakeLists.txt") |
28 | - set(gtest_dir gtest) |
29 | -else() |
30 | - set(gtest_dir ../gtest) |
31 | -endif() |
32 | - |
33 | -# Defines pre_project_set_up_hermetic_build() and set_up_hermetic_build(). |
34 | -include("${gtest_dir}/cmake/hermetic_build.cmake" OPTIONAL) |
35 | - |
36 | -if (COMMAND pre_project_set_up_hermetic_build) |
37 | - # Google Test also calls hermetic setup functions from add_subdirectory, |
38 | - # although its changes will not affect things at the current scope. |
39 | - pre_project_set_up_hermetic_build() |
40 | -endif() |
41 | - |
42 | -######################################################################## |
43 | -# |
44 | -# Project-wide settings |
45 | - |
46 | -# Name of the project. |
47 | -# |
48 | -# CMake files in this project can refer to the root source directory |
49 | -# as ${gmock_SOURCE_DIR} and to the root binary directory as |
50 | -# ${gmock_BINARY_DIR}. |
51 | -# Language "C" is required for find_package(Threads). |
52 | -project(gmock CXX C) |
53 | -cmake_minimum_required(VERSION 2.6.2) |
54 | - |
55 | -if (COMMAND set_up_hermetic_build) |
56 | - set_up_hermetic_build() |
57 | -endif() |
58 | - |
59 | -# Instructs CMake to process Google Test's CMakeLists.txt and add its |
60 | -# targets to the current scope. We are placing Google Test's binary |
61 | -# directory in a subdirectory of our own as VC compilation may break |
62 | -# if they are the same (the default). |
63 | -add_subdirectory("${gtest_dir}" "${gmock_BINARY_DIR}/gtest") |
64 | - |
65 | -# Although Google Test's CMakeLists.txt calls this function, the |
66 | -# changes there don't affect the current scope. Therefore we have to |
67 | -# call it again here. |
68 | -config_compiler_and_linker() # from ${gtest_dir}/cmake/internal_utils.cmake |
69 | - |
70 | -# Adds Google Mock's and Google Test's header directories to the search path. |
71 | -include_directories("${gmock_SOURCE_DIR}/include" |
72 | - "${gmock_SOURCE_DIR}" |
73 | - "${gtest_SOURCE_DIR}/include" |
74 | - # This directory is needed to build directly from Google |
75 | - # Test sources. |
76 | - "${gtest_SOURCE_DIR}") |
77 | - |
78 | -######################################################################## |
79 | -# |
80 | -# Defines the gmock & gmock_main libraries. User tests should link |
81 | -# with one of them. |
82 | - |
83 | -# Google Mock libraries. We build them using more strict warnings than what |
84 | -# are used for other targets, to ensure that Google Mock can be compiled by |
85 | -# a user aggressive about warnings. |
86 | -cxx_library(gmock |
87 | - "${cxx_strict}" |
88 | - "${gtest_dir}/src/gtest-all.cc" |
89 | - src/gmock-all.cc) |
90 | - |
91 | -cxx_library(gmock_main |
92 | - "${cxx_strict}" |
93 | - "${gtest_dir}/src/gtest-all.cc" |
94 | - src/gmock-all.cc |
95 | - src/gmock_main.cc) |
96 | - |
97 | -######################################################################## |
98 | -# |
99 | -# Google Mock's own tests. |
100 | -# |
101 | -# You can skip this section if you aren't interested in testing |
102 | -# Google Mock itself. |
103 | -# |
104 | -# The tests are not built by default. To build them, set the |
105 | -# gmock_build_tests option to ON. You can do it by running ccmake |
106 | -# or specifying the -Dgmock_build_tests=ON flag when running cmake. |
107 | - |
108 | -if (gmock_build_tests) |
109 | - # This must be set in the root directory for the tests to be run by |
110 | - # 'make test' or ctest. |
111 | - enable_testing() |
112 | - |
113 | - ############################################################ |
114 | - # C++ tests built with standard compiler flags. |
115 | - |
116 | - cxx_test(gmock-actions_test gmock_main) |
117 | - cxx_test(gmock-cardinalities_test gmock_main) |
118 | - cxx_test(gmock_ex_test gmock_main) |
119 | - cxx_test(gmock-generated-actions_test gmock_main) |
120 | - cxx_test(gmock-generated-function-mockers_test gmock_main) |
121 | - cxx_test(gmock-generated-internal-utils_test gmock_main) |
122 | - cxx_test(gmock-generated-matchers_test gmock_main) |
123 | - cxx_test(gmock-internal-utils_test gmock_main) |
124 | - cxx_test(gmock-matchers_test gmock_main) |
125 | - cxx_test(gmock-more-actions_test gmock_main) |
126 | - cxx_test(gmock-nice-strict_test gmock_main) |
127 | - cxx_test(gmock-port_test gmock_main) |
128 | - cxx_test(gmock-spec-builders_test gmock_main) |
129 | - cxx_test(gmock_link_test gmock_main test/gmock_link2_test.cc) |
130 | - cxx_test(gmock_test gmock_main) |
131 | - |
132 | - if (CMAKE_USE_PTHREADS_INIT) |
133 | - cxx_test(gmock_stress_test gmock) |
134 | - endif() |
135 | - |
136 | - # gmock_all_test is commented to save time building and running tests. |
137 | - # Uncomment if necessary. |
138 | - # cxx_test(gmock_all_test gmock_main) |
139 | - |
140 | - ############################################################ |
141 | - # C++ tests built with non-standard compiler flags. |
142 | - |
143 | - cxx_library(gmock_main_no_exception "${cxx_no_exception}" |
144 | - "${gtest_dir}/src/gtest-all.cc" src/gmock-all.cc src/gmock_main.cc) |
145 | - |
146 | - cxx_library(gmock_main_no_rtti "${cxx_no_rtti}" |
147 | - "${gtest_dir}/src/gtest-all.cc" src/gmock-all.cc src/gmock_main.cc) |
148 | - |
149 | - cxx_library(gmock_main_use_own_tuple "${cxx_use_own_tuple}" |
150 | - "${gtest_dir}/src/gtest-all.cc" src/gmock-all.cc src/gmock_main.cc) |
151 | - |
152 | - cxx_test_with_flags(gmock-more-actions_no_exception_test "${cxx_no_exception}" |
153 | - gmock_main_no_exception test/gmock-more-actions_test.cc) |
154 | - |
155 | - cxx_test_with_flags(gmock_no_rtti_test "${cxx_no_rtti}" |
156 | - gmock_main_no_rtti test/gmock-spec-builders_test.cc) |
157 | - |
158 | - cxx_test_with_flags(gmock_use_own_tuple_test "${cxx_use_own_tuple}" |
159 | - gmock_main_use_own_tuple test/gmock-spec-builders_test.cc) |
160 | - |
161 | - cxx_shared_library(shared_gmock_main "${cxx_default}" |
162 | - "${gtest_dir}/src/gtest-all.cc" src/gmock-all.cc src/gmock_main.cc) |
163 | - |
164 | - # Tests that a binary can be built with Google Mock as a shared library. On |
165 | - # some system configurations, it may not possible to run the binary without |
166 | - # knowing more details about the system configurations. We do not try to run |
167 | - # this binary. To get a more robust shared library coverage, configure with |
168 | - # -DBUILD_SHARED_LIBS=ON. |
169 | - cxx_executable_with_flags(shared_gmock_test_ "${cxx_default}" |
170 | - shared_gmock_main test/gmock-spec-builders_test.cc) |
171 | - set_target_properties(shared_gmock_test_ |
172 | - PROPERTIES |
173 | - COMPILE_DEFINITIONS "GTEST_LINKED_AS_SHARED_LIBRARY=1") |
174 | - |
175 | - ############################################################ |
176 | - # Python tests. |
177 | - |
178 | - cxx_executable(gmock_leak_test_ test gmock_main) |
179 | - py_test(gmock_leak_test) |
180 | - |
181 | - cxx_executable(gmock_output_test_ test gmock) |
182 | - py_test(gmock_output_test) |
183 | -endif() |
184 | |
185 | === removed directory '3rd_party/gmock/gtest' |
186 | === removed file '3rd_party/gmock/gtest/CHANGES' |
187 | --- 3rd_party/gmock/gtest/CHANGES 2014-04-07 19:53:07 +0000 |
188 | +++ 3rd_party/gmock/gtest/CHANGES 1970-01-01 00:00:00 +0000 |
189 | @@ -1,153 +0,0 @@ |
190 | -Changes for 1.7.0: |
191 | - |
192 | -* New feature: death tests are supported on OpenBSD and in iOS |
193 | - simulator now. |
194 | -* New feature: Test::RecordProperty() can now be used outside of the |
195 | - lifespan of a test method, in which case it will be attributed to |
196 | - the current test case or the test program in the XML report. |
197 | -* New feature (potentially breaking): --gtest_list_tests now prints |
198 | - the type parameters and value parameters for each test. |
199 | -* Improvement: char pointers and char arrays are now escaped properly |
200 | - in failure messages. |
201 | -* Improvement: failure summary in XML reports now includes file and |
202 | - line information. |
203 | -* Improvement: the <testsuites> XML element now has a timestamp attribute. |
204 | -* Improvement: When --gtest_filter is specified, XML report now doesn't |
205 | - contain information about tests that are filtered out. |
206 | -* Fixed the bug where long --gtest_filter flag values are truncated in |
207 | - death tests. |
208 | -* Potentially breaking change: RUN_ALL_TESTS() is now implemented as a |
209 | - function instead of a macro in order to work better with Clang. |
210 | -* Compatibility fixes with C++ 11 and various platforms. |
211 | -* Bug/warning fixes. |
212 | - |
213 | -Changes for 1.6.0: |
214 | - |
215 | -* New feature: ADD_FAILURE_AT() for reporting a test failure at the |
216 | - given source location -- useful for writing testing utilities. |
217 | -* New feature: the universal value printer is moved from Google Mock |
218 | - to Google Test. |
219 | -* New feature: type parameters and value parameters are reported in |
220 | - the XML report now. |
221 | -* A gtest_disable_pthreads CMake option. |
222 | -* Colored output works in GNU Screen sessions now. |
223 | -* Parameters of value-parameterized tests are now printed in the |
224 | - textual output. |
225 | -* Failures from ad hoc test assertions run before RUN_ALL_TESTS() are |
226 | - now correctly reported. |
227 | -* Arguments of ASSERT_XY and EXPECT_XY no longer need to support << to |
228 | - ostream. |
229 | -* More complete handling of exceptions. |
230 | -* GTEST_ASSERT_XY can be used instead of ASSERT_XY in case the latter |
231 | - name is already used by another library. |
232 | -* --gtest_catch_exceptions is now true by default, allowing a test |
233 | - program to continue after an exception is thrown. |
234 | -* Value-parameterized test fixtures can now derive from Test and |
235 | - WithParamInterface<T> separately, easing conversion of legacy tests. |
236 | -* Death test messages are clearly marked to make them more |
237 | - distinguishable from other messages. |
238 | -* Compatibility fixes for Android, Google Native Client, MinGW, HP UX, |
239 | - PowerPC, Lucid autotools, libCStd, Sun C++, Borland C++ Builder (Code Gear), |
240 | - IBM XL C++ (Visual Age C++), and C++0x. |
241 | -* Bug fixes and implementation clean-ups. |
242 | -* Potentially incompatible changes: disables the harmful 'make install' |
243 | - command in autotools. |
244 | - |
245 | -Changes for 1.5.0: |
246 | - |
247 | - * New feature: assertions can be safely called in multiple threads |
248 | - where the pthreads library is available. |
249 | - * New feature: predicates used inside EXPECT_TRUE() and friends |
250 | - can now generate custom failure messages. |
251 | - * New feature: Google Test can now be compiled as a DLL. |
252 | - * New feature: fused source files are included. |
253 | - * New feature: prints help when encountering unrecognized Google Test flags. |
254 | - * Experimental feature: CMake build script (requires CMake 2.6.4+). |
255 | - * Experimental feature: the Pump script for meta programming. |
256 | - * double values streamed to an assertion are printed with enough precision |
257 | - to differentiate any two different values. |
258 | - * Google Test now works on Solaris and AIX. |
259 | - * Build and test script improvements. |
260 | - * Bug fixes and implementation clean-ups. |
261 | - |
262 | - Potentially breaking changes: |
263 | - |
264 | - * Stopped supporting VC++ 7.1 with exceptions disabled. |
265 | - * Dropped support for 'make install'. |
266 | - |
267 | -Changes for 1.4.0: |
268 | - |
269 | - * New feature: the event listener API |
270 | - * New feature: test shuffling |
271 | - * New feature: the XML report format is closer to junitreport and can |
272 | - be parsed by Hudson now. |
273 | - * New feature: when a test runs under Visual Studio, its failures are |
274 | - integrated in the IDE. |
275 | - * New feature: /MD(d) versions of VC++ projects. |
276 | - * New feature: elapsed time for the tests is printed by default. |
277 | - * New feature: comes with a TR1 tuple implementation such that Boost |
278 | - is no longer needed for Combine(). |
279 | - * New feature: EXPECT_DEATH_IF_SUPPORTED macro and friends. |
280 | - * New feature: the Xcode project can now produce static gtest |
281 | - libraries in addition to a framework. |
282 | - * Compatibility fixes for Solaris, Cygwin, minGW, Windows Mobile, |
283 | - Symbian, gcc, and C++Builder. |
284 | - * Bug fixes and implementation clean-ups. |
285 | - |
286 | -Changes for 1.3.0: |
287 | - |
288 | - * New feature: death tests on Windows, Cygwin, and Mac. |
289 | - * New feature: ability to use Google Test assertions in other testing |
290 | - frameworks. |
291 | - * New feature: ability to run disabled test via |
292 | - --gtest_also_run_disabled_tests. |
293 | - * New feature: the --help flag for printing the usage. |
294 | - * New feature: access to Google Test flag values in user code. |
295 | - * New feature: a script that packs Google Test into one .h and one |
296 | - .cc file for easy deployment. |
297 | - * New feature: support for distributing test functions to multiple |
298 | - machines (requires support from the test runner). |
299 | - * Bug fixes and implementation clean-ups. |
300 | - |
301 | -Changes for 1.2.1: |
302 | - |
303 | - * Compatibility fixes for Linux IA-64 and IBM z/OS. |
304 | - * Added support for using Boost and other TR1 implementations. |
305 | - * Changes to the build scripts to support upcoming release of Google C++ |
306 | - Mocking Framework. |
307 | - * Added Makefile to the distribution package. |
308 | - * Improved build instructions in README. |
309 | - |
310 | -Changes for 1.2.0: |
311 | - |
312 | - * New feature: value-parameterized tests. |
313 | - * New feature: the ASSERT/EXPECT_(NON)FATAL_FAILURE(_ON_ALL_THREADS) |
314 | - macros. |
315 | - * Changed the XML report format to match JUnit/Ant's. |
316 | - * Added tests to the Xcode project. |
317 | - * Added scons/SConscript for building with SCons. |
318 | - * Added src/gtest-all.cc for building Google Test from a single file. |
319 | - * Fixed compatibility with Solaris and z/OS. |
320 | - * Enabled running Python tests on systems with python 2.3 installed, |
321 | - e.g. Mac OS X 10.4. |
322 | - * Bug fixes. |
323 | - |
324 | -Changes for 1.1.0: |
325 | - |
326 | - * New feature: type-parameterized tests. |
327 | - * New feature: exception assertions. |
328 | - * New feature: printing elapsed time of tests. |
329 | - * Improved the robustness of death tests. |
330 | - * Added an Xcode project and samples. |
331 | - * Adjusted the output format on Windows to be understandable by Visual Studio. |
332 | - * Minor bug fixes. |
333 | - |
334 | -Changes for 1.0.1: |
335 | - |
336 | - * Added project files for Visual Studio 7.1. |
337 | - * Fixed issues with compiling on Mac OS X. |
338 | - * Fixed issues with compiling on Cygwin. |
339 | - |
340 | -Changes for 1.0.0: |
341 | - |
342 | - * Initial Open Source release of Google Test |
343 | |
344 | === removed file '3rd_party/gmock/gtest/CMakeLists.txt' |
345 | --- 3rd_party/gmock/gtest/CMakeLists.txt 2014-04-07 19:53:07 +0000 |
346 | +++ 3rd_party/gmock/gtest/CMakeLists.txt 1970-01-01 00:00:00 +0000 |
347 | @@ -1,250 +0,0 @@ |
348 | -######################################################################## |
349 | -# CMake build script for Google Test. |
350 | -# |
351 | -# To run the tests for Google Test itself on Linux, use 'make test' or |
352 | -# ctest. You can select which tests to run using 'ctest -R regex'. |
353 | -# For more options, run 'ctest --help'. |
354 | - |
355 | -# BUILD_SHARED_LIBS is a standard CMake variable, but we declare it here to |
356 | -# make it prominent in the GUI. |
357 | -option(BUILD_SHARED_LIBS "Build shared libraries (DLLs)." OFF) |
358 | - |
359 | -# When other libraries are using a shared version of runtime libraries, |
360 | -# Google Test also has to use one. |
361 | -option( |
362 | - gtest_force_shared_crt |
363 | - "Use shared (DLL) run-time lib even when Google Test is built as static lib." |
364 | - OFF) |
365 | - |
366 | -option(gtest_build_tests "Build all of gtest's own tests." OFF) |
367 | - |
368 | -option(gtest_build_samples "Build gtest's sample programs." OFF) |
369 | - |
370 | -option(gtest_disable_pthreads "Disable uses of pthreads in gtest." OFF) |
371 | - |
372 | -# Defines pre_project_set_up_hermetic_build() and set_up_hermetic_build(). |
373 | -include(cmake/hermetic_build.cmake OPTIONAL) |
374 | - |
375 | -if (COMMAND pre_project_set_up_hermetic_build) |
376 | - pre_project_set_up_hermetic_build() |
377 | -endif() |
378 | - |
379 | -######################################################################## |
380 | -# |
381 | -# Project-wide settings |
382 | - |
383 | -# Name of the project. |
384 | -# |
385 | -# CMake files in this project can refer to the root source directory |
386 | -# as ${gtest_SOURCE_DIR} and to the root binary directory as |
387 | -# ${gtest_BINARY_DIR}. |
388 | -# Language "C" is required for find_package(Threads). |
389 | -project(gtest CXX C) |
390 | -cmake_minimum_required(VERSION 2.6.2) |
391 | - |
392 | -if (COMMAND set_up_hermetic_build) |
393 | - set_up_hermetic_build() |
394 | -endif() |
395 | - |
396 | -# Define helper functions and macros used by Google Test. |
397 | -include(cmake/internal_utils.cmake) |
398 | - |
399 | -config_compiler_and_linker() # Defined in internal_utils.cmake. |
400 | - |
401 | -# Where Google Test's .h files can be found. |
402 | -include_directories( |
403 | - ${gtest_SOURCE_DIR}/include |
404 | - ${gtest_SOURCE_DIR}) |
405 | - |
406 | -# Where Google Test's libraries can be found. |
407 | -link_directories(${gtest_BINARY_DIR}/src) |
408 | - |
409 | -######################################################################## |
410 | -# |
411 | -# Defines the gtest & gtest_main libraries. User tests should link |
412 | -# with one of them. |
413 | - |
414 | -# Google Test libraries. We build them using more strict warnings than what |
415 | -# are used for other targets, to ensure that gtest can be compiled by a user |
416 | -# aggressive about warnings. |
417 | -cxx_library(gtest "${cxx_strict}" src/gtest-all.cc) |
418 | -cxx_library(gtest_main "${cxx_strict}" src/gtest_main.cc) |
419 | -target_link_libraries(gtest_main gtest) |
420 | - |
421 | -######################################################################## |
422 | -# |
423 | -# Samples on how to link user tests with gtest or gtest_main. |
424 | -# |
425 | -# They are not built by default. To build them, set the |
426 | -# gtest_build_samples option to ON. You can do it by running ccmake |
427 | -# or specifying the -Dbuild_gtest_samples=ON flag when running cmake. |
428 | - |
429 | -if (gtest_build_samples) |
430 | - cxx_executable(sample1_unittest samples gtest_main samples/sample1.cc) |
431 | - cxx_executable(sample2_unittest samples gtest_main samples/sample2.cc) |
432 | - cxx_executable(sample3_unittest samples gtest_main) |
433 | - cxx_executable(sample4_unittest samples gtest_main samples/sample4.cc) |
434 | - cxx_executable(sample5_unittest samples gtest_main samples/sample1.cc) |
435 | - cxx_executable(sample6_unittest samples gtest_main) |
436 | - cxx_executable(sample7_unittest samples gtest_main) |
437 | - cxx_executable(sample8_unittest samples gtest_main) |
438 | - cxx_executable(sample9_unittest samples gtest) |
439 | - cxx_executable(sample10_unittest samples gtest) |
440 | -endif() |
441 | - |
442 | -######################################################################## |
443 | -# |
444 | -# Google Test's own tests. |
445 | -# |
446 | -# You can skip this section if you aren't interested in testing |
447 | -# Google Test itself. |
448 | -# |
449 | -# The tests are not built by default. To build them, set the |
450 | -# gtest_build_tests option to ON. You can do it by running ccmake |
451 | -# or specifying the -Dgtest_build_tests=ON flag when running cmake. |
452 | - |
453 | -if (gtest_build_tests) |
454 | - # This must be set in the root directory for the tests to be run by |
455 | - # 'make test' or ctest. |
456 | - enable_testing() |
457 | - |
458 | - ############################################################ |
459 | - # C++ tests built with standard compiler flags. |
460 | - |
461 | - cxx_test(gtest-death-test_test gtest_main) |
462 | - cxx_test(gtest_environment_test gtest) |
463 | - cxx_test(gtest-filepath_test gtest_main) |
464 | - cxx_test(gtest-linked_ptr_test gtest_main) |
465 | - cxx_test(gtest-listener_test gtest_main) |
466 | - cxx_test(gtest_main_unittest gtest_main) |
467 | - cxx_test(gtest-message_test gtest_main) |
468 | - cxx_test(gtest_no_test_unittest gtest) |
469 | - cxx_test(gtest-options_test gtest_main) |
470 | - cxx_test(gtest-param-test_test gtest |
471 | - test/gtest-param-test2_test.cc) |
472 | - cxx_test(gtest-port_test gtest_main) |
473 | - cxx_test(gtest_pred_impl_unittest gtest_main) |
474 | - cxx_test(gtest-printers_test gtest_main) |
475 | - cxx_test(gtest_prod_test gtest_main |
476 | - test/production.cc) |
477 | - cxx_test(gtest_repeat_test gtest) |
478 | - cxx_test(gtest_sole_header_test gtest_main) |
479 | - cxx_test(gtest_stress_test gtest) |
480 | - cxx_test(gtest-test-part_test gtest_main) |
481 | - cxx_test(gtest_throw_on_failure_ex_test gtest) |
482 | - cxx_test(gtest-typed-test_test gtest_main |
483 | - test/gtest-typed-test2_test.cc) |
484 | - cxx_test(gtest_unittest gtest_main) |
485 | - cxx_test(gtest-unittest-api_test gtest) |
486 | - |
487 | - ############################################################ |
488 | - # C++ tests built with non-standard compiler flags. |
489 | - |
490 | - # MSVC 7.1 does not support STL with exceptions disabled. |
491 | - if (NOT MSVC OR MSVC_VERSION GREATER 1310) |
492 | - cxx_library(gtest_no_exception "${cxx_no_exception}" |
493 | - src/gtest-all.cc) |
494 | - cxx_library(gtest_main_no_exception "${cxx_no_exception}" |
495 | - src/gtest-all.cc src/gtest_main.cc) |
496 | - endif() |
497 | - cxx_library(gtest_main_no_rtti "${cxx_no_rtti}" |
498 | - src/gtest-all.cc src/gtest_main.cc) |
499 | - |
500 | - cxx_test_with_flags(gtest-death-test_ex_nocatch_test |
501 | - "${cxx_exception} -DGTEST_ENABLE_CATCH_EXCEPTIONS_=0" |
502 | - gtest test/gtest-death-test_ex_test.cc) |
503 | - cxx_test_with_flags(gtest-death-test_ex_catch_test |
504 | - "${cxx_exception} -DGTEST_ENABLE_CATCH_EXCEPTIONS_=1" |
505 | - gtest test/gtest-death-test_ex_test.cc) |
506 | - |
507 | - cxx_test_with_flags(gtest_no_rtti_unittest "${cxx_no_rtti}" |
508 | - gtest_main_no_rtti test/gtest_unittest.cc) |
509 | - |
510 | - cxx_shared_library(gtest_dll "${cxx_default}" |
511 | - src/gtest-all.cc src/gtest_main.cc) |
512 | - |
513 | - cxx_executable_with_flags(gtest_dll_test_ "${cxx_default}" |
514 | - gtest_dll test/gtest_all_test.cc) |
515 | - set_target_properties(gtest_dll_test_ |
516 | - PROPERTIES |
517 | - COMPILE_DEFINITIONS "GTEST_LINKED_AS_SHARED_LIBRARY=1") |
518 | - |
519 | - if (NOT MSVC OR NOT MSVC_VERSION EQUAL 1600) |
520 | - # The C++ Standard specifies tuple_element<int, class>. |
521 | - # Yet MSVC 10's <utility> declares tuple_element<size_t, class>. |
522 | - # That declaration conflicts with our own standard-conforming |
523 | - # tuple implementation. Therefore using our own tuple with |
524 | - # MSVC 10 doesn't compile. |
525 | - cxx_library(gtest_main_use_own_tuple "${cxx_use_own_tuple}" |
526 | - src/gtest-all.cc src/gtest_main.cc) |
527 | - |
528 | - cxx_test_with_flags(gtest-tuple_test "${cxx_use_own_tuple}" |
529 | - gtest_main_use_own_tuple test/gtest-tuple_test.cc) |
530 | - |
531 | - cxx_test_with_flags(gtest_use_own_tuple_test "${cxx_use_own_tuple}" |
532 | - gtest_main_use_own_tuple |
533 | - test/gtest-param-test_test.cc test/gtest-param-test2_test.cc) |
534 | - endif() |
535 | - |
536 | - ############################################################ |
537 | - # Python tests. |
538 | - |
539 | - cxx_executable(gtest_break_on_failure_unittest_ test gtest) |
540 | - py_test(gtest_break_on_failure_unittest) |
541 | - |
542 | - # MSVC 7.1 does not support STL with exceptions disabled. |
543 | - if (NOT MSVC OR MSVC_VERSION GREATER 1310) |
544 | - cxx_executable_with_flags( |
545 | - gtest_catch_exceptions_no_ex_test_ |
546 | - "${cxx_no_exception}" |
547 | - gtest_main_no_exception |
548 | - test/gtest_catch_exceptions_test_.cc) |
549 | - endif() |
550 | - |
551 | - cxx_executable_with_flags( |
552 | - gtest_catch_exceptions_ex_test_ |
553 | - "${cxx_exception}" |
554 | - gtest_main |
555 | - test/gtest_catch_exceptions_test_.cc) |
556 | - py_test(gtest_catch_exceptions_test) |
557 | - |
558 | - cxx_executable(gtest_color_test_ test gtest) |
559 | - py_test(gtest_color_test) |
560 | - |
561 | - cxx_executable(gtest_env_var_test_ test gtest) |
562 | - py_test(gtest_env_var_test) |
563 | - |
564 | - cxx_executable(gtest_filter_unittest_ test gtest) |
565 | - py_test(gtest_filter_unittest) |
566 | - |
567 | - cxx_executable(gtest_help_test_ test gtest_main) |
568 | - py_test(gtest_help_test) |
569 | - |
570 | - cxx_executable(gtest_list_tests_unittest_ test gtest) |
571 | - py_test(gtest_list_tests_unittest) |
572 | - |
573 | - cxx_executable(gtest_output_test_ test gtest) |
574 | - py_test(gtest_output_test) |
575 | - |
576 | - cxx_executable(gtest_shuffle_test_ test gtest) |
577 | - py_test(gtest_shuffle_test) |
578 | - |
579 | - # MSVC 7.1 does not support STL with exceptions disabled. |
580 | - if (NOT MSVC OR MSVC_VERSION GREATER 1310) |
581 | - cxx_executable(gtest_throw_on_failure_test_ test gtest_no_exception) |
582 | - set_target_properties(gtest_throw_on_failure_test_ |
583 | - PROPERTIES |
584 | - COMPILE_FLAGS "${cxx_no_exception}") |
585 | - py_test(gtest_throw_on_failure_test) |
586 | - endif() |
587 | - |
588 | - cxx_executable(gtest_uninitialized_test_ test gtest) |
589 | - py_test(gtest_uninitialized_test) |
590 | - |
591 | - cxx_executable(gtest_xml_outfile1_test_ test gtest_main) |
592 | - cxx_executable(gtest_xml_outfile2_test_ test gtest_main) |
593 | - py_test(gtest_xml_outfiles_test) |
594 | - |
595 | - cxx_executable(gtest_xml_output_unittest_ test gtest) |
596 | - py_test(gtest_xml_output_unittest) |
597 | -endif() |
598 | |
599 | === removed file '3rd_party/gmock/gtest/CONTRIBUTORS' |
600 | --- 3rd_party/gmock/gtest/CONTRIBUTORS 2014-04-07 19:53:07 +0000 |
601 | +++ 3rd_party/gmock/gtest/CONTRIBUTORS 1970-01-01 00:00:00 +0000 |
602 | @@ -1,37 +0,0 @@ |
603 | -# This file contains a list of people who've made non-trivial |
604 | -# contribution to the Google C++ Testing Framework project. People |
605 | -# who commit code to the project are encouraged to add their names |
606 | -# here. Please keep the list sorted by first names. |
607 | - |
608 | -Ajay Joshi <jaj@google.com> |
609 | -Balázs Dán <balazs.dan@gmail.com> |
610 | -Bharat Mediratta <bharat@menalto.com> |
611 | -Chandler Carruth <chandlerc@google.com> |
612 | -Chris Prince <cprince@google.com> |
613 | -Chris Taylor <taylorc@google.com> |
614 | -Dan Egnor <egnor@google.com> |
615 | -Eric Roman <eroman@chromium.org> |
616 | -Hady Zalek <hady.zalek@gmail.com> |
617 | -Jeffrey Yasskin <jyasskin@google.com> |
618 | -Jói Sigurðsson <joi@google.com> |
619 | -Keir Mierle <mierle@gmail.com> |
620 | -Keith Ray <keith.ray@gmail.com> |
621 | -Kenton Varda <kenton@google.com> |
622 | -Manuel Klimek <klimek@google.com> |
623 | -Markus Heule <markus.heule@gmail.com> |
624 | -Mika Raento <mikie@iki.fi> |
625 | -Miklós Fazekas <mfazekas@szemafor.com> |
626 | -Pasi Valminen <pasi.valminen@gmail.com> |
627 | -Patrick Hanna <phanna@google.com> |
628 | -Patrick Riley <pfr@google.com> |
629 | -Peter Kaminski <piotrk@google.com> |
630 | -Preston Jackson <preston.a.jackson@gmail.com> |
631 | -Rainer Klaffenboeck <rainer.klaffenboeck@dynatrace.com> |
632 | -Russ Cox <rsc@google.com> |
633 | -Russ Rufer <russ@pentad.com> |
634 | -Sean Mcafee <eefacm@gmail.com> |
635 | -Sigurður Ásgeirsson <siggi@google.com> |
636 | -Tracy Bialik <tracy@pentad.com> |
637 | -Vadim Berman <vadimb@google.com> |
638 | -Vlad Losev <vladl@google.com> |
639 | -Zhanyong Wan <wan@google.com> |
640 | |
641 | === removed file '3rd_party/gmock/gtest/Makefile.am' |
642 | --- 3rd_party/gmock/gtest/Makefile.am 2014-04-07 19:53:07 +0000 |
643 | +++ 3rd_party/gmock/gtest/Makefile.am 1970-01-01 00:00:00 +0000 |
644 | @@ -1,305 +0,0 @@ |
645 | -# Automake file |
646 | - |
647 | -ACLOCAL_AMFLAGS = -I m4 |
648 | - |
649 | -# Nonstandard package files for distribution |
650 | -EXTRA_DIST = \ |
651 | - CHANGES \ |
652 | - CONTRIBUTORS \ |
653 | - LICENSE \ |
654 | - include/gtest/gtest-param-test.h.pump \ |
655 | - include/gtest/internal/gtest-param-util-generated.h.pump \ |
656 | - include/gtest/internal/gtest-tuple.h.pump \ |
657 | - include/gtest/internal/gtest-type-util.h.pump \ |
658 | - make/Makefile \ |
659 | - scripts/fuse_gtest_files.py \ |
660 | - scripts/gen_gtest_pred_impl.py \ |
661 | - scripts/pump.py \ |
662 | - scripts/test/Makefile |
663 | - |
664 | -# gtest source files that we don't compile directly. They are |
665 | -# #included by gtest-all.cc. |
666 | -GTEST_SRC = \ |
667 | - src/gtest-death-test.cc \ |
668 | - src/gtest-filepath.cc \ |
669 | - src/gtest-internal-inl.h \ |
670 | - src/gtest-port.cc \ |
671 | - src/gtest-printers.cc \ |
672 | - src/gtest-test-part.cc \ |
673 | - src/gtest-typed-test.cc \ |
674 | - src/gtest.cc |
675 | - |
676 | -EXTRA_DIST += $(GTEST_SRC) |
677 | - |
678 | -# Sample files that we don't compile. |
679 | -EXTRA_DIST += \ |
680 | - samples/prime_tables.h \ |
681 | - samples/sample2_unittest.cc \ |
682 | - samples/sample3_unittest.cc \ |
683 | - samples/sample4_unittest.cc \ |
684 | - samples/sample5_unittest.cc \ |
685 | - samples/sample6_unittest.cc \ |
686 | - samples/sample7_unittest.cc \ |
687 | - samples/sample8_unittest.cc \ |
688 | - samples/sample9_unittest.cc |
689 | - |
690 | -# C++ test files that we don't compile directly. |
691 | -EXTRA_DIST += \ |
692 | - test/gtest-death-test_ex_test.cc \ |
693 | - test/gtest-death-test_test.cc \ |
694 | - test/gtest-filepath_test.cc \ |
695 | - test/gtest-linked_ptr_test.cc \ |
696 | - test/gtest-listener_test.cc \ |
697 | - test/gtest-message_test.cc \ |
698 | - test/gtest-options_test.cc \ |
699 | - test/gtest-param-test2_test.cc \ |
700 | - test/gtest-param-test2_test.cc \ |
701 | - test/gtest-param-test_test.cc \ |
702 | - test/gtest-param-test_test.cc \ |
703 | - test/gtest-param-test_test.h \ |
704 | - test/gtest-port_test.cc \ |
705 | - test/gtest-printers_test.cc \ |
706 | - test/gtest-test-part_test.cc \ |
707 | - test/gtest-tuple_test.cc \ |
708 | - test/gtest-typed-test2_test.cc \ |
709 | - test/gtest-typed-test_test.cc \ |
710 | - test/gtest-typed-test_test.h \ |
711 | - test/gtest-unittest-api_test.cc \ |
712 | - test/gtest_break_on_failure_unittest_.cc \ |
713 | - test/gtest_catch_exceptions_test_.cc \ |
714 | - test/gtest_color_test_.cc \ |
715 | - test/gtest_env_var_test_.cc \ |
716 | - test/gtest_environment_test.cc \ |
717 | - test/gtest_filter_unittest_.cc \ |
718 | - test/gtest_help_test_.cc \ |
719 | - test/gtest_list_tests_unittest_.cc \ |
720 | - test/gtest_main_unittest.cc \ |
721 | - test/gtest_no_test_unittest.cc \ |
722 | - test/gtest_output_test_.cc \ |
723 | - test/gtest_pred_impl_unittest.cc \ |
724 | - test/gtest_prod_test.cc \ |
725 | - test/gtest_repeat_test.cc \ |
726 | - test/gtest_shuffle_test_.cc \ |
727 | - test/gtest_sole_header_test.cc \ |
728 | - test/gtest_stress_test.cc \ |
729 | - test/gtest_throw_on_failure_ex_test.cc \ |
730 | - test/gtest_throw_on_failure_test_.cc \ |
731 | - test/gtest_uninitialized_test_.cc \ |
732 | - test/gtest_unittest.cc \ |
733 | - test/gtest_unittest.cc \ |
734 | - test/gtest_xml_outfile1_test_.cc \ |
735 | - test/gtest_xml_outfile2_test_.cc \ |
736 | - test/gtest_xml_output_unittest_.cc \ |
737 | - test/production.cc \ |
738 | - test/production.h |
739 | - |
740 | -# Python tests that we don't run. |
741 | -EXTRA_DIST += \ |
742 | - test/gtest_break_on_failure_unittest.py \ |
743 | - test/gtest_catch_exceptions_test.py \ |
744 | - test/gtest_color_test.py \ |
745 | - test/gtest_env_var_test.py \ |
746 | - test/gtest_filter_unittest.py \ |
747 | - test/gtest_help_test.py \ |
748 | - test/gtest_list_tests_unittest.py \ |
749 | - test/gtest_output_test.py \ |
750 | - test/gtest_output_test_golden_lin.txt \ |
751 | - test/gtest_shuffle_test.py \ |
752 | - test/gtest_test_utils.py \ |
753 | - test/gtest_throw_on_failure_test.py \ |
754 | - test/gtest_uninitialized_test.py \ |
755 | - test/gtest_xml_outfiles_test.py \ |
756 | - test/gtest_xml_output_unittest.py \ |
757 | - test/gtest_xml_test_utils.py |
758 | - |
759 | -# CMake script |
760 | -EXTRA_DIST += \ |
761 | - CMakeLists.txt \ |
762 | - cmake/internal_utils.cmake |
763 | - |
764 | -# MSVC project files |
765 | -EXTRA_DIST += \ |
766 | - msvc/gtest-md.sln \ |
767 | - msvc/gtest-md.vcproj \ |
768 | - msvc/gtest.sln \ |
769 | - msvc/gtest.vcproj \ |
770 | - msvc/gtest_main-md.vcproj \ |
771 | - msvc/gtest_main.vcproj \ |
772 | - msvc/gtest_prod_test-md.vcproj \ |
773 | - msvc/gtest_prod_test.vcproj \ |
774 | - msvc/gtest_unittest-md.vcproj \ |
775 | - msvc/gtest_unittest.vcproj |
776 | - |
777 | -# xcode project files |
778 | -EXTRA_DIST += \ |
779 | - xcode/Config/DebugProject.xcconfig \ |
780 | - xcode/Config/FrameworkTarget.xcconfig \ |
781 | - xcode/Config/General.xcconfig \ |
782 | - xcode/Config/ReleaseProject.xcconfig \ |
783 | - xcode/Config/StaticLibraryTarget.xcconfig \ |
784 | - xcode/Config/TestTarget.xcconfig \ |
785 | - xcode/Resources/Info.plist \ |
786 | - xcode/Scripts/runtests.sh \ |
787 | - xcode/Scripts/versiongenerate.py \ |
788 | - xcode/gtest.xcodeproj/project.pbxproj |
789 | - |
790 | -# xcode sample files |
791 | -EXTRA_DIST += \ |
792 | - xcode/Samples/FrameworkSample/Info.plist \ |
793 | - xcode/Samples/FrameworkSample/WidgetFramework.xcodeproj/project.pbxproj \ |
794 | - xcode/Samples/FrameworkSample/runtests.sh \ |
795 | - xcode/Samples/FrameworkSample/widget.cc \ |
796 | - xcode/Samples/FrameworkSample/widget.h \ |
797 | - xcode/Samples/FrameworkSample/widget_test.cc |
798 | - |
799 | -# C++Builder project files |
800 | -EXTRA_DIST += \ |
801 | - codegear/gtest.cbproj \ |
802 | - codegear/gtest.groupproj \ |
803 | - codegear/gtest_all.cc \ |
804 | - codegear/gtest_link.cc \ |
805 | - codegear/gtest_main.cbproj \ |
806 | - codegear/gtest_unittest.cbproj |
807 | - |
808 | -# Distribute and install M4 macro |
809 | -m4datadir = $(datadir)/aclocal |
810 | -m4data_DATA = m4/gtest.m4 |
811 | -EXTRA_DIST += $(m4data_DATA) |
812 | - |
813 | -# We define the global AM_CPPFLAGS as everything we compile includes from these |
814 | -# directories. |
815 | -AM_CPPFLAGS = -I$(srcdir) -I$(srcdir)/include |
816 | - |
817 | -# Modifies compiler and linker flags for pthreads compatibility. |
818 | -if HAVE_PTHREADS |
819 | - AM_CXXFLAGS = @PTHREAD_CFLAGS@ -DGTEST_HAS_PTHREAD=1 |
820 | - AM_LIBS = @PTHREAD_LIBS@ |
821 | -else |
822 | - AM_CXXFLAGS = -DGTEST_HAS_PTHREAD=0 |
823 | -endif |
824 | - |
825 | -# Build rules for libraries. |
826 | -lib_LTLIBRARIES = lib/libgtest.la lib/libgtest_main.la |
827 | - |
828 | -lib_libgtest_la_SOURCES = src/gtest-all.cc |
829 | - |
830 | -pkginclude_HEADERS = \ |
831 | - include/gtest/gtest-death-test.h \ |
832 | - include/gtest/gtest-message.h \ |
833 | - include/gtest/gtest-param-test.h \ |
834 | - include/gtest/gtest-printers.h \ |
835 | - include/gtest/gtest-spi.h \ |
836 | - include/gtest/gtest-test-part.h \ |
837 | - include/gtest/gtest-typed-test.h \ |
838 | - include/gtest/gtest.h \ |
839 | - include/gtest/gtest_pred_impl.h \ |
840 | - include/gtest/gtest_prod.h |
841 | - |
842 | -pkginclude_internaldir = $(pkgincludedir)/internal |
843 | -pkginclude_internal_HEADERS = \ |
844 | - include/gtest/internal/gtest-death-test-internal.h \ |
845 | - include/gtest/internal/gtest-filepath.h \ |
846 | - include/gtest/internal/gtest-internal.h \ |
847 | - include/gtest/internal/gtest-linked_ptr.h \ |
848 | - include/gtest/internal/gtest-param-util-generated.h \ |
849 | - include/gtest/internal/gtest-param-util.h \ |
850 | - include/gtest/internal/gtest-port.h \ |
851 | - include/gtest/internal/gtest-string.h \ |
852 | - include/gtest/internal/gtest-tuple.h \ |
853 | - include/gtest/internal/gtest-type-util.h |
854 | - |
855 | -lib_libgtest_main_la_SOURCES = src/gtest_main.cc |
856 | -lib_libgtest_main_la_LIBADD = lib/libgtest.la |
857 | - |
858 | -# Bulid rules for samples and tests. Automake's naming for some of |
859 | -# these variables isn't terribly obvious, so this is a brief |
860 | -# reference: |
861 | -# |
862 | -# TESTS -- Programs run automatically by "make check" |
863 | -# check_PROGRAMS -- Programs built by "make check" but not necessarily run |
864 | - |
865 | -noinst_LTLIBRARIES = samples/libsamples.la |
866 | - |
867 | -samples_libsamples_la_SOURCES = \ |
868 | - samples/sample1.cc \ |
869 | - samples/sample1.h \ |
870 | - samples/sample2.cc \ |
871 | - samples/sample2.h \ |
872 | - samples/sample3-inl.h \ |
873 | - samples/sample4.cc \ |
874 | - samples/sample4.h |
875 | - |
876 | -TESTS= |
877 | -TESTS_ENVIRONMENT = GTEST_SOURCE_DIR="$(srcdir)/test" \ |
878 | - GTEST_BUILD_DIR="$(top_builddir)/test" |
879 | -check_PROGRAMS= |
880 | - |
881 | -# A simple sample on using gtest. |
882 | -TESTS += samples/sample1_unittest |
883 | -check_PROGRAMS += samples/sample1_unittest |
884 | -samples_sample1_unittest_SOURCES = samples/sample1_unittest.cc |
885 | -samples_sample1_unittest_LDADD = lib/libgtest_main.la \ |
886 | - lib/libgtest.la \ |
887 | - samples/libsamples.la |
888 | - |
889 | -# Another sample. It also verifies that libgtest works. |
890 | -TESTS += samples/sample10_unittest |
891 | -check_PROGRAMS += samples/sample10_unittest |
892 | -samples_sample10_unittest_SOURCES = samples/sample10_unittest.cc |
893 | -samples_sample10_unittest_LDADD = lib/libgtest.la |
894 | - |
895 | -# This tests most constructs of gtest and verifies that libgtest_main |
896 | -# and libgtest work. |
897 | -TESTS += test/gtest_all_test |
898 | -check_PROGRAMS += test/gtest_all_test |
899 | -test_gtest_all_test_SOURCES = test/gtest_all_test.cc |
900 | -test_gtest_all_test_LDADD = lib/libgtest_main.la \ |
901 | - lib/libgtest.la |
902 | - |
903 | -# Tests that fused gtest files compile and work. |
904 | -FUSED_GTEST_SRC = \ |
905 | - fused-src/gtest/gtest-all.cc \ |
906 | - fused-src/gtest/gtest.h \ |
907 | - fused-src/gtest/gtest_main.cc |
908 | - |
909 | -if HAVE_PYTHON |
910 | -TESTS += test/fused_gtest_test |
911 | -check_PROGRAMS += test/fused_gtest_test |
912 | -test_fused_gtest_test_SOURCES = $(FUSED_GTEST_SRC) \ |
913 | - samples/sample1.cc samples/sample1_unittest.cc |
914 | -test_fused_gtest_test_CPPFLAGS = -I"$(srcdir)/fused-src" |
915 | - |
916 | -# Build rules for putting fused Google Test files into the distribution |
917 | -# package. The user can also create those files by manually running |
918 | -# scripts/fuse_gtest_files.py. |
919 | -$(test_fused_gtest_test_SOURCES): fused-gtest |
920 | - |
921 | -fused-gtest: $(pkginclude_HEADERS) $(pkginclude_internal_HEADERS) \ |
922 | - $(GTEST_SRC) src/gtest-all.cc src/gtest_main.cc \ |
923 | - scripts/fuse_gtest_files.py |
924 | - mkdir -p "$(srcdir)/fused-src" |
925 | - chmod -R u+w "$(srcdir)/fused-src" |
926 | - rm -f "$(srcdir)/fused-src/gtest/gtest-all.cc" |
927 | - rm -f "$(srcdir)/fused-src/gtest/gtest.h" |
928 | - "$(srcdir)/scripts/fuse_gtest_files.py" "$(srcdir)/fused-src" |
929 | - cp -f "$(srcdir)/src/gtest_main.cc" "$(srcdir)/fused-src/gtest/" |
930 | - |
931 | -maintainer-clean-local: |
932 | - rm -rf "$(srcdir)/fused-src" |
933 | -endif |
934 | - |
935 | -# Death tests may produce core dumps in the build directory. In case |
936 | -# this happens, clean them to keep distcleancheck happy. |
937 | -CLEANFILES = core |
938 | - |
939 | -# Disables 'make install' as installing a compiled version of Google |
940 | -# Test can lead to undefined behavior due to violation of the |
941 | -# One-Definition Rule. |
942 | - |
943 | -install-exec-local: |
944 | - echo "'make install' is dangerous and not supported. Instead, see README for how to integrate Google Test into your build system." |
945 | - false |
946 | - |
947 | -install-data-local: |
948 | - echo "'make install' is dangerous and not supported. Instead, see README for how to integrate Google Test into your build system." |
949 | - false |
950 | |
951 | === removed file '3rd_party/gmock/gtest/README' |
952 | --- 3rd_party/gmock/gtest/README 2014-04-07 19:53:07 +0000 |
953 | +++ 3rd_party/gmock/gtest/README 1970-01-01 00:00:00 +0000 |
954 | @@ -1,435 +0,0 @@ |
955 | -Google C++ Testing Framework |
956 | -============================ |
957 | - |
958 | -http://code.google.com/p/googletest/ |
959 | - |
960 | -Overview |
961 | --------- |
962 | - |
963 | -Google's framework for writing C++ tests on a variety of platforms |
964 | -(Linux, Mac OS X, Windows, Windows CE, Symbian, etc). Based on the |
965 | -xUnit architecture. Supports automatic test discovery, a rich set of |
966 | -assertions, user-defined assertions, death tests, fatal and non-fatal |
967 | -failures, various options for running the tests, and XML test report |
968 | -generation. |
969 | - |
970 | -Please see the project page above for more information as well as the |
971 | -mailing list for questions, discussions, and development. There is |
972 | -also an IRC channel on OFTC (irc.oftc.net) #gtest available. Please |
973 | -join us! |
974 | - |
975 | -Requirements for End Users |
976 | --------------------------- |
977 | - |
978 | -Google Test is designed to have fairly minimal requirements to build |
979 | -and use with your projects, but there are some. Currently, we support |
980 | -Linux, Windows, Mac OS X, and Cygwin. We will also make our best |
981 | -effort to support other platforms (e.g. Solaris, AIX, and z/OS). |
982 | -However, since core members of the Google Test project have no access |
983 | -to these platforms, Google Test may have outstanding issues there. If |
984 | -you notice any problems on your platform, please notify |
985 | -googletestframework@googlegroups.com. Patches for fixing them are |
986 | -even more welcome! |
987 | - |
988 | -### Linux Requirements ### |
989 | - |
990 | -These are the base requirements to build and use Google Test from a source |
991 | -package (as described below): |
992 | - * GNU-compatible Make or gmake |
993 | - * POSIX-standard shell |
994 | - * POSIX(-2) Regular Expressions (regex.h) |
995 | - * A C++98-standard-compliant compiler |
996 | - |
997 | -### Windows Requirements ### |
998 | - |
999 | - * Microsoft Visual C++ 7.1 or newer |
1000 | - |
1001 | -### Cygwin Requirements ### |
1002 | - |
1003 | - * Cygwin 1.5.25-14 or newer |
1004 | - |
1005 | -### Mac OS X Requirements ### |
1006 | - |
1007 | - * Mac OS X 10.4 Tiger or newer |
1008 | - * Developer Tools Installed |
1009 | - |
1010 | -Also, you'll need CMake 2.6.4 or higher if you want to build the |
1011 | -samples using the provided CMake script, regardless of the platform. |
1012 | - |
1013 | -Requirements for Contributors |
1014 | ------------------------------ |
1015 | - |
1016 | -We welcome patches. If you plan to contribute a patch, you need to |
1017 | -build Google Test and its own tests from an SVN checkout (described |
1018 | -below), which has further requirements: |
1019 | - |
1020 | - * Python version 2.3 or newer (for running some of the tests and |
1021 | - re-generating certain source files from templates) |
1022 | - * CMake 2.6.4 or newer |
1023 | - |
1024 | -Getting the Source |
1025 | ------------------- |
1026 | - |
1027 | -There are two primary ways of getting Google Test's source code: you |
1028 | -can download a stable source release in your preferred archive format, |
1029 | -or directly check out the source from our Subversion (SVN) repositary. |
1030 | -The SVN checkout requires a few extra steps and some extra software |
1031 | -packages on your system, but lets you track the latest development and |
1032 | -make patches much more easily, so we highly encourage it. |
1033 | - |
1034 | -### Source Package ### |
1035 | - |
1036 | -Google Test is released in versioned source packages which can be |
1037 | -downloaded from the download page [1]. Several different archive |
1038 | -formats are provided, but the only difference is the tools used to |
1039 | -manipulate them, and the size of the resulting file. Download |
1040 | -whichever you are most comfortable with. |
1041 | - |
1042 | - [1] http://code.google.com/p/googletest/downloads/list |
1043 | - |
1044 | -Once the package is downloaded, expand it using whichever tools you |
1045 | -prefer for that type. This will result in a new directory with the |
1046 | -name "gtest-X.Y.Z" which contains all of the source code. Here are |
1047 | -some examples on Linux: |
1048 | - |
1049 | - tar -xvzf gtest-X.Y.Z.tar.gz |
1050 | - tar -xvjf gtest-X.Y.Z.tar.bz2 |
1051 | - unzip gtest-X.Y.Z.zip |
1052 | - |
1053 | -### SVN Checkout ### |
1054 | - |
1055 | -To check out the main branch (also known as the "trunk") of Google |
1056 | -Test, run the following Subversion command: |
1057 | - |
1058 | - svn checkout http://googletest.googlecode.com/svn/trunk/ gtest-svn |
1059 | - |
1060 | -Setting up the Build |
1061 | --------------------- |
1062 | - |
1063 | -To build Google Test and your tests that use it, you need to tell your |
1064 | -build system where to find its headers and source files. The exact |
1065 | -way to do it depends on which build system you use, and is usually |
1066 | -straightforward. |
1067 | - |
1068 | -### Generic Build Instructions ### |
1069 | - |
1070 | -Suppose you put Google Test in directory ${GTEST_DIR}. To build it, |
1071 | -create a library build target (or a project as called by Visual Studio |
1072 | -and Xcode) to compile |
1073 | - |
1074 | - ${GTEST_DIR}/src/gtest-all.cc |
1075 | - |
1076 | -with ${GTEST_DIR}/include in the system header search path and ${GTEST_DIR} |
1077 | -in the normal header search path. Assuming a Linux-like system and gcc, |
1078 | -something like the following will do: |
1079 | - |
1080 | - g++ -isystem ${GTEST_DIR}/include -I${GTEST_DIR} \ |
1081 | - -pthread -c ${GTEST_DIR}/src/gtest-all.cc |
1082 | - ar -rv libgtest.a gtest-all.o |
1083 | - |
1084 | -(We need -pthread as Google Test uses threads.) |
1085 | - |
1086 | -Next, you should compile your test source file with |
1087 | -${GTEST_DIR}/include in the system header search path, and link it |
1088 | -with gtest and any other necessary libraries: |
1089 | - |
1090 | - g++ -isystem ${GTEST_DIR}/include -pthread path/to/your_test.cc libgtest.a \ |
1091 | - -o your_test |
1092 | - |
1093 | -As an example, the make/ directory contains a Makefile that you can |
1094 | -use to build Google Test on systems where GNU make is available |
1095 | -(e.g. Linux, Mac OS X, and Cygwin). It doesn't try to build Google |
1096 | -Test's own tests. Instead, it just builds the Google Test library and |
1097 | -a sample test. You can use it as a starting point for your own build |
1098 | -script. |
1099 | - |
1100 | -If the default settings are correct for your environment, the |
1101 | -following commands should succeed: |
1102 | - |
1103 | - cd ${GTEST_DIR}/make |
1104 | - make |
1105 | - ./sample1_unittest |
1106 | - |
1107 | -If you see errors, try to tweak the contents of make/Makefile to make |
1108 | -them go away. There are instructions in make/Makefile on how to do |
1109 | -it. |
1110 | - |
1111 | -### Using CMake ### |
1112 | - |
1113 | -Google Test comes with a CMake build script (CMakeLists.txt) that can |
1114 | -be used on a wide range of platforms ("C" stands for cross-platofrm.). |
1115 | -If you don't have CMake installed already, you can download it for |
1116 | -free from http://www.cmake.org/. |
1117 | - |
1118 | -CMake works by generating native makefiles or build projects that can |
1119 | -be used in the compiler environment of your choice. The typical |
1120 | -workflow starts with: |
1121 | - |
1122 | - mkdir mybuild # Create a directory to hold the build output. |
1123 | - cd mybuild |
1124 | - cmake ${GTEST_DIR} # Generate native build scripts. |
1125 | - |
1126 | -If you want to build Google Test's samples, you should replace the |
1127 | -last command with |
1128 | - |
1129 | - cmake -Dgtest_build_samples=ON ${GTEST_DIR} |
1130 | - |
1131 | -If you are on a *nix system, you should now see a Makefile in the |
1132 | -current directory. Just type 'make' to build gtest. |
1133 | - |
1134 | -If you use Windows and have Vistual Studio installed, a gtest.sln file |
1135 | -and several .vcproj files will be created. You can then build them |
1136 | -using Visual Studio. |
1137 | - |
1138 | -On Mac OS X with Xcode installed, a .xcodeproj file will be generated. |
1139 | - |
1140 | -### Legacy Build Scripts ### |
1141 | - |
1142 | -Before settling on CMake, we have been providing hand-maintained build |
1143 | -projects/scripts for Visual Studio, Xcode, and Autotools. While we |
1144 | -continue to provide them for convenience, they are not actively |
1145 | -maintained any more. We highly recommend that you follow the |
1146 | -instructions in the previous two sections to integrate Google Test |
1147 | -with your existing build system. |
1148 | - |
1149 | -If you still need to use the legacy build scripts, here's how: |
1150 | - |
1151 | -The msvc\ folder contains two solutions with Visual C++ projects. |
1152 | -Open the gtest.sln or gtest-md.sln file using Visual Studio, and you |
1153 | -are ready to build Google Test the same way you build any Visual |
1154 | -Studio project. Files that have names ending with -md use DLL |
1155 | -versions of Microsoft runtime libraries (the /MD or the /MDd compiler |
1156 | -option). Files without that suffix use static versions of the runtime |
1157 | -libraries (the /MT or the /MTd option). Please note that one must use |
1158 | -the same option to compile both gtest and the test code. If you use |
1159 | -Visual Studio 2005 or above, we recommend the -md version as /MD is |
1160 | -the default for new projects in these versions of Visual Studio. |
1161 | - |
1162 | -On Mac OS X, open the gtest.xcodeproj in the xcode/ folder using |
1163 | -Xcode. Build the "gtest" target. The universal binary framework will |
1164 | -end up in your selected build directory (selected in the Xcode |
1165 | -"Preferences..." -> "Building" pane and defaults to xcode/build). |
1166 | -Alternatively, at the command line, enter: |
1167 | - |
1168 | - xcodebuild |
1169 | - |
1170 | -This will build the "Release" configuration of gtest.framework in your |
1171 | -default build location. See the "xcodebuild" man page for more |
1172 | -information about building different configurations and building in |
1173 | -different locations. |
1174 | - |
1175 | -If you wish to use the Google Test Xcode project with Xcode 4.x and |
1176 | -above, you need to either: |
1177 | - * update the SDK configuration options in xcode/Config/General.xconfig. |
1178 | - Comment options SDKROOT, MACOS_DEPLOYMENT_TARGET, and GCC_VERSION. If |
1179 | - you choose this route you lose the ability to target earlier versions |
1180 | - of MacOS X. |
1181 | - * Install an SDK for an earlier version. This doesn't appear to be |
1182 | - supported by Apple, but has been reported to work |
1183 | - (http://stackoverflow.com/questions/5378518). |
1184 | - |
1185 | -Tweaking Google Test |
1186 | --------------------- |
1187 | - |
1188 | -Google Test can be used in diverse environments. The default |
1189 | -configuration may not work (or may not work well) out of the box in |
1190 | -some environments. However, you can easily tweak Google Test by |
1191 | -defining control macros on the compiler command line. Generally, |
1192 | -these macros are named like GTEST_XYZ and you define them to either 1 |
1193 | -or 0 to enable or disable a certain feature. |
1194 | - |
1195 | -We list the most frequently used macros below. For a complete list, |
1196 | -see file include/gtest/internal/gtest-port.h. |
1197 | - |
1198 | -### Choosing a TR1 Tuple Library ### |
1199 | - |
1200 | -Some Google Test features require the C++ Technical Report 1 (TR1) |
1201 | -tuple library, which is not yet available with all compilers. The |
1202 | -good news is that Google Test implements a subset of TR1 tuple that's |
1203 | -enough for its own need, and will automatically use this when the |
1204 | -compiler doesn't provide TR1 tuple. |
1205 | - |
1206 | -Usually you don't need to care about which tuple library Google Test |
1207 | -uses. However, if your project already uses TR1 tuple, you need to |
1208 | -tell Google Test to use the same TR1 tuple library the rest of your |
1209 | -project uses, or the two tuple implementations will clash. To do |
1210 | -that, add |
1211 | - |
1212 | - -DGTEST_USE_OWN_TR1_TUPLE=0 |
1213 | - |
1214 | -to the compiler flags while compiling Google Test and your tests. If |
1215 | -you want to force Google Test to use its own tuple library, just add |
1216 | - |
1217 | - -DGTEST_USE_OWN_TR1_TUPLE=1 |
1218 | - |
1219 | -to the compiler flags instead. |
1220 | - |
1221 | -If you don't want Google Test to use tuple at all, add |
1222 | - |
1223 | - -DGTEST_HAS_TR1_TUPLE=0 |
1224 | - |
1225 | -and all features using tuple will be disabled. |
1226 | - |
1227 | -### Multi-threaded Tests ### |
1228 | - |
1229 | -Google Test is thread-safe where the pthread library is available. |
1230 | -After #include "gtest/gtest.h", you can check the GTEST_IS_THREADSAFE |
1231 | -macro to see whether this is the case (yes if the macro is #defined to |
1232 | -1, no if it's undefined.). |
1233 | - |
1234 | -If Google Test doesn't correctly detect whether pthread is available |
1235 | -in your environment, you can force it with |
1236 | - |
1237 | - -DGTEST_HAS_PTHREAD=1 |
1238 | - |
1239 | -or |
1240 | - |
1241 | - -DGTEST_HAS_PTHREAD=0 |
1242 | - |
1243 | -When Google Test uses pthread, you may need to add flags to your |
1244 | -compiler and/or linker to select the pthread library, or you'll get |
1245 | -link errors. If you use the CMake script or the deprecated Autotools |
1246 | -script, this is taken care of for you. If you use your own build |
1247 | -script, you'll need to read your compiler and linker's manual to |
1248 | -figure out what flags to add. |
1249 | - |
1250 | -### As a Shared Library (DLL) ### |
1251 | - |
1252 | -Google Test is compact, so most users can build and link it as a |
1253 | -static library for the simplicity. You can choose to use Google Test |
1254 | -as a shared library (known as a DLL on Windows) if you prefer. |
1255 | - |
1256 | -To compile *gtest* as a shared library, add |
1257 | - |
1258 | - -DGTEST_CREATE_SHARED_LIBRARY=1 |
1259 | - |
1260 | -to the compiler flags. You'll also need to tell the linker to produce |
1261 | -a shared library instead - consult your linker's manual for how to do |
1262 | -it. |
1263 | - |
1264 | -To compile your *tests* that use the gtest shared library, add |
1265 | - |
1266 | - -DGTEST_LINKED_AS_SHARED_LIBRARY=1 |
1267 | - |
1268 | -to the compiler flags. |
1269 | - |
1270 | -Note: while the above steps aren't technically necessary today when |
1271 | -using some compilers (e.g. GCC), they may become necessary in the |
1272 | -future, if we decide to improve the speed of loading the library (see |
1273 | -http://gcc.gnu.org/wiki/Visibility for details). Therefore you are |
1274 | -recommended to always add the above flags when using Google Test as a |
1275 | -shared library. Otherwise a future release of Google Test may break |
1276 | -your build script. |
1277 | - |
1278 | -### Avoiding Macro Name Clashes ### |
1279 | - |
1280 | -In C++, macros don't obey namespaces. Therefore two libraries that |
1281 | -both define a macro of the same name will clash if you #include both |
1282 | -definitions. In case a Google Test macro clashes with another |
1283 | -library, you can force Google Test to rename its macro to avoid the |
1284 | -conflict. |
1285 | - |
1286 | -Specifically, if both Google Test and some other code define macro |
1287 | -FOO, you can add |
1288 | - |
1289 | - -DGTEST_DONT_DEFINE_FOO=1 |
1290 | - |
1291 | -to the compiler flags to tell Google Test to change the macro's name |
1292 | -from FOO to GTEST_FOO. Currently FOO can be FAIL, SUCCEED, or TEST. |
1293 | -For example, with -DGTEST_DONT_DEFINE_TEST=1, you'll need to write |
1294 | - |
1295 | - GTEST_TEST(SomeTest, DoesThis) { ... } |
1296 | - |
1297 | -instead of |
1298 | - |
1299 | - TEST(SomeTest, DoesThis) { ... } |
1300 | - |
1301 | -in order to define a test. |
1302 | - |
1303 | -Upgrating from an Earlier Version |
1304 | ---------------------------------- |
1305 | - |
1306 | -We strive to keep Google Test releases backward compatible. |
1307 | -Sometimes, though, we have to make some breaking changes for the |
1308 | -users' long-term benefits. This section describes what you'll need to |
1309 | -do if you are upgrading from an earlier version of Google Test. |
1310 | - |
1311 | -### Upgrading from 1.3.0 or Earlier ### |
1312 | - |
1313 | -You may need to explicitly enable or disable Google Test's own TR1 |
1314 | -tuple library. See the instructions in section "Choosing a TR1 Tuple |
1315 | -Library". |
1316 | - |
1317 | -### Upgrading from 1.4.0 or Earlier ### |
1318 | - |
1319 | -The Autotools build script (configure + make) is no longer officially |
1320 | -supportted. You are encouraged to migrate to your own build system or |
1321 | -use CMake. If you still need to use Autotools, you can find |
1322 | -instructions in the README file from Google Test 1.4.0. |
1323 | - |
1324 | -On platforms where the pthread library is available, Google Test uses |
1325 | -it in order to be thread-safe. See the "Multi-threaded Tests" section |
1326 | -for what this means to your build script. |
1327 | - |
1328 | -If you use Microsoft Visual C++ 7.1 with exceptions disabled, Google |
1329 | -Test will no longer compile. This should affect very few people, as a |
1330 | -large portion of STL (including <string>) doesn't compile in this mode |
1331 | -anyway. We decided to stop supporting it in order to greatly simplify |
1332 | -Google Test's implementation. |
1333 | - |
1334 | -Developing Google Test |
1335 | ----------------------- |
1336 | - |
1337 | -This section discusses how to make your own changes to Google Test. |
1338 | - |
1339 | -### Testing Google Test Itself ### |
1340 | - |
1341 | -To make sure your changes work as intended and don't break existing |
1342 | -functionality, you'll want to compile and run Google Test's own tests. |
1343 | -For that you can use CMake: |
1344 | - |
1345 | - mkdir mybuild |
1346 | - cd mybuild |
1347 | - cmake -Dgtest_build_tests=ON ${GTEST_DIR} |
1348 | - |
1349 | -Make sure you have Python installed, as some of Google Test's tests |
1350 | -are written in Python. If the cmake command complains about not being |
1351 | -able to find Python ("Could NOT find PythonInterp (missing: |
1352 | -PYTHON_EXECUTABLE)"), try telling it explicitly where your Python |
1353 | -executable can be found: |
1354 | - |
1355 | - cmake -DPYTHON_EXECUTABLE=path/to/python -Dgtest_build_tests=ON ${GTEST_DIR} |
1356 | - |
1357 | -Next, you can build Google Test and all of its own tests. On *nix, |
1358 | -this is usually done by 'make'. To run the tests, do |
1359 | - |
1360 | - make test |
1361 | - |
1362 | -All tests should pass. |
1363 | - |
1364 | -### Regenerating Source Files ### |
1365 | - |
1366 | -Some of Google Test's source files are generated from templates (not |
1367 | -in the C++ sense) using a script. A template file is named FOO.pump, |
1368 | -where FOO is the name of the file it will generate. For example, the |
1369 | -file include/gtest/internal/gtest-type-util.h.pump is used to generate |
1370 | -gtest-type-util.h in the same directory. |
1371 | - |
1372 | -Normally you don't need to worry about regenerating the source files, |
1373 | -unless you need to modify them. In that case, you should modify the |
1374 | -corresponding .pump files instead and run the pump.py Python script to |
1375 | -regenerate them. You can find pump.py in the scripts/ directory. |
1376 | -Read the Pump manual [2] for how to use it. |
1377 | - |
1378 | - [2] http://code.google.com/p/googletest/wiki/PumpManual |
1379 | - |
1380 | -### Contributing a Patch ### |
1381 | - |
1382 | -We welcome patches. Please read the Google Test developer's guide [3] |
1383 | -for how you can contribute. In particular, make sure you have signed |
1384 | -the Contributor License Agreement, or we won't be able to accept the |
1385 | -patch. |
1386 | - |
1387 | - [3] http://code.google.com/p/googletest/wiki/GoogleTestDevGuide |
1388 | - |
1389 | -Happy testing! |
1390 | |
1391 | === removed directory '3rd_party/gmock/gtest/build-aux' |
1392 | === removed file '3rd_party/gmock/gtest/build-aux/.keep' |
1393 | === removed directory '3rd_party/gmock/gtest/cmake' |
1394 | === removed file '3rd_party/gmock/gtest/cmake/internal_utils.cmake' |
1395 | --- 3rd_party/gmock/gtest/cmake/internal_utils.cmake 2014-04-07 19:53:07 +0000 |
1396 | +++ 3rd_party/gmock/gtest/cmake/internal_utils.cmake 1970-01-01 00:00:00 +0000 |
1397 | @@ -1,227 +0,0 @@ |
1398 | -# Defines functions and macros useful for building Google Test and |
1399 | -# Google Mock. |
1400 | -# |
1401 | -# Note: |
1402 | -# |
1403 | -# - This file will be run twice when building Google Mock (once via |
1404 | -# Google Test's CMakeLists.txt, and once via Google Mock's). |
1405 | -# Therefore it shouldn't have any side effects other than defining |
1406 | -# the functions and macros. |
1407 | -# |
1408 | -# - The functions/macros defined in this file may depend on Google |
1409 | -# Test and Google Mock's option() definitions, and thus must be |
1410 | -# called *after* the options have been defined. |
1411 | - |
1412 | -# Tweaks CMake's default compiler/linker settings to suit Google Test's needs. |
1413 | -# |
1414 | -# This must be a macro(), as inside a function string() can only |
1415 | -# update variables in the function scope. |
1416 | -macro(fix_default_compiler_settings_) |
1417 | - if (MSVC) |
1418 | - # For MSVC, CMake sets certain flags to defaults we want to override. |
1419 | - # This replacement code is taken from sample in the CMake Wiki at |
1420 | - # http://www.cmake.org/Wiki/CMake_FAQ#Dynamic_Replace. |
1421 | - foreach (flag_var |
1422 | - CMAKE_CXX_FLAGS CMAKE_CXX_FLAGS_DEBUG CMAKE_CXX_FLAGS_RELEASE |
1423 | - CMAKE_CXX_FLAGS_MINSIZEREL CMAKE_CXX_FLAGS_RELWITHDEBINFO) |
1424 | - if (NOT BUILD_SHARED_LIBS AND NOT gtest_force_shared_crt) |
1425 | - # When Google Test is built as a shared library, it should also use |
1426 | - # shared runtime libraries. Otherwise, it may end up with multiple |
1427 | - # copies of runtime library data in different modules, resulting in |
1428 | - # hard-to-find crashes. When it is built as a static library, it is |
1429 | - # preferable to use CRT as static libraries, as we don't have to rely |
1430 | - # on CRT DLLs being available. CMake always defaults to using shared |
1431 | - # CRT libraries, so we override that default here. |
1432 | - string(REPLACE "/MD" "-MT" ${flag_var} "${${flag_var}}") |
1433 | - endif() |
1434 | - |
1435 | - # We prefer more strict warning checking for building Google Test. |
1436 | - # Replaces /W3 with /W4 in defaults. |
1437 | - string(REPLACE "/W3" "-W4" ${flag_var} "${${flag_var}}") |
1438 | - endforeach() |
1439 | - endif() |
1440 | -endmacro() |
1441 | - |
1442 | -# Defines the compiler/linker flags used to build Google Test and |
1443 | -# Google Mock. You can tweak these definitions to suit your need. A |
1444 | -# variable's value is empty before it's explicitly assigned to. |
1445 | -macro(config_compiler_and_linker) |
1446 | - if (NOT gtest_disable_pthreads) |
1447 | - # Defines CMAKE_USE_PTHREADS_INIT and CMAKE_THREAD_LIBS_INIT. |
1448 | - find_package(Threads) |
1449 | - endif() |
1450 | - |
1451 | - fix_default_compiler_settings_() |
1452 | - if (MSVC) |
1453 | - # Newlines inside flags variables break CMake's NMake generator. |
1454 | - # TODO(vladl@google.com): Add -RTCs and -RTCu to debug builds. |
1455 | - set(cxx_base_flags "-GS -W4 -WX -wd4127 -wd4251 -wd4275 -nologo -J -Zi") |
1456 | - if (MSVC_VERSION LESS 1400) |
1457 | - # Suppress spurious warnings MSVC 7.1 sometimes issues. |
1458 | - # Forcing value to bool. |
1459 | - set(cxx_base_flags "${cxx_base_flags} -wd4800") |
1460 | - # Copy constructor and assignment operator could not be generated. |
1461 | - set(cxx_base_flags "${cxx_base_flags} -wd4511 -wd4512") |
1462 | - # Compatibility warnings not applicable to Google Test. |
1463 | - # Resolved overload was found by argument-dependent lookup. |
1464 | - set(cxx_base_flags "${cxx_base_flags} -wd4675") |
1465 | - endif() |
1466 | - set(cxx_base_flags "${cxx_base_flags} -D_UNICODE -DUNICODE -DWIN32 -D_WIN32") |
1467 | - set(cxx_base_flags "${cxx_base_flags} -DSTRICT -DWIN32_LEAN_AND_MEAN") |
1468 | - set(cxx_exception_flags "-EHsc -D_HAS_EXCEPTIONS=1") |
1469 | - set(cxx_no_exception_flags "-D_HAS_EXCEPTIONS=0") |
1470 | - set(cxx_no_rtti_flags "-GR-") |
1471 | - elseif (CMAKE_COMPILER_IS_GNUCXX) |
1472 | - set(cxx_base_flags "-Wall -Wshadow") |
1473 | - set(cxx_exception_flags "-fexceptions") |
1474 | - set(cxx_no_exception_flags "-fno-exceptions") |
1475 | - # Until version 4.3.2, GCC doesn't define a macro to indicate |
1476 | - # whether RTTI is enabled. Therefore we define GTEST_HAS_RTTI |
1477 | - # explicitly. |
1478 | - set(cxx_no_rtti_flags "-fno-rtti -DGTEST_HAS_RTTI=0") |
1479 | - set(cxx_strict_flags |
1480 | - "-Wextra -Wno-unused-parameter -Wno-missing-field-initializers") |
1481 | - elseif (CMAKE_CXX_COMPILER_ID STREQUAL "SunPro") |
1482 | - set(cxx_exception_flags "-features=except") |
1483 | - # Sun Pro doesn't provide macros to indicate whether exceptions and |
1484 | - # RTTI are enabled, so we define GTEST_HAS_* explicitly. |
1485 | - set(cxx_no_exception_flags "-features=no%except -DGTEST_HAS_EXCEPTIONS=0") |
1486 | - set(cxx_no_rtti_flags "-features=no%rtti -DGTEST_HAS_RTTI=0") |
1487 | - elseif (CMAKE_CXX_COMPILER_ID STREQUAL "VisualAge" OR |
1488 | - CMAKE_CXX_COMPILER_ID STREQUAL "XL") |
1489 | - # CMake 2.8 changes Visual Age's compiler ID to "XL". |
1490 | - set(cxx_exception_flags "-qeh") |
1491 | - set(cxx_no_exception_flags "-qnoeh") |
1492 | - # Until version 9.0, Visual Age doesn't define a macro to indicate |
1493 | - # whether RTTI is enabled. Therefore we define GTEST_HAS_RTTI |
1494 | - # explicitly. |
1495 | - set(cxx_no_rtti_flags "-qnortti -DGTEST_HAS_RTTI=0") |
1496 | - elseif (CMAKE_CXX_COMPILER_ID STREQUAL "HP") |
1497 | - set(cxx_base_flags "-AA -mt") |
1498 | - set(cxx_exception_flags "-DGTEST_HAS_EXCEPTIONS=1") |
1499 | - set(cxx_no_exception_flags "+noeh -DGTEST_HAS_EXCEPTIONS=0") |
1500 | - # RTTI can not be disabled in HP aCC compiler. |
1501 | - set(cxx_no_rtti_flags "") |
1502 | - endif() |
1503 | - |
1504 | - if (CMAKE_USE_PTHREADS_INIT) # The pthreads library is available and allowed. |
1505 | - set(cxx_base_flags "${cxx_base_flags} -DGTEST_HAS_PTHREAD=1") |
1506 | - else() |
1507 | - set(cxx_base_flags "${cxx_base_flags} -DGTEST_HAS_PTHREAD=0") |
1508 | - endif() |
1509 | - |
1510 | - # For building gtest's own tests and samples. |
1511 | - set(cxx_exception "${CMAKE_CXX_FLAGS} ${cxx_base_flags} ${cxx_exception_flags}") |
1512 | - set(cxx_no_exception |
1513 | - "${CMAKE_CXX_FLAGS} ${cxx_base_flags} ${cxx_no_exception_flags}") |
1514 | - set(cxx_default "${cxx_exception}") |
1515 | - set(cxx_no_rtti "${cxx_default} ${cxx_no_rtti_flags}") |
1516 | - set(cxx_use_own_tuple "${cxx_default} -DGTEST_USE_OWN_TR1_TUPLE=1") |
1517 | - |
1518 | - # For building the gtest libraries. |
1519 | - set(cxx_strict "${cxx_default} ${cxx_strict_flags}") |
1520 | -endmacro() |
1521 | - |
1522 | -# Defines the gtest & gtest_main libraries. User tests should link |
1523 | -# with one of them. |
1524 | -function(cxx_library_with_type name type cxx_flags) |
1525 | - # type can be either STATIC or SHARED to denote a static or shared library. |
1526 | - # ARGN refers to additional arguments after 'cxx_flags'. |
1527 | - add_library(${name} ${type} ${ARGN}) |
1528 | - set_target_properties(${name} |
1529 | - PROPERTIES |
1530 | - COMPILE_FLAGS "${cxx_flags}") |
1531 | - if (BUILD_SHARED_LIBS OR type STREQUAL "SHARED") |
1532 | - set_target_properties(${name} |
1533 | - PROPERTIES |
1534 | - COMPILE_DEFINITIONS "GTEST_CREATE_SHARED_LIBRARY=1") |
1535 | - endif() |
1536 | - if (CMAKE_USE_PTHREADS_INIT) |
1537 | - target_link_libraries(${name} ${CMAKE_THREAD_LIBS_INIT}) |
1538 | - endif() |
1539 | -endfunction() |
1540 | - |
1541 | -######################################################################## |
1542 | -# |
1543 | -# Helper functions for creating build targets. |
1544 | - |
1545 | -function(cxx_shared_library name cxx_flags) |
1546 | - cxx_library_with_type(${name} SHARED "${cxx_flags}" ${ARGN}) |
1547 | -endfunction() |
1548 | - |
1549 | -function(cxx_library name cxx_flags) |
1550 | - cxx_library_with_type(${name} "" "${cxx_flags}" ${ARGN}) |
1551 | -endfunction() |
1552 | - |
1553 | -# cxx_executable_with_flags(name cxx_flags libs srcs...) |
1554 | -# |
1555 | -# creates a named C++ executable that depends on the given libraries and |
1556 | -# is built from the given source files with the given compiler flags. |
1557 | -function(cxx_executable_with_flags name cxx_flags libs) |
1558 | - add_executable(${name} ${ARGN}) |
1559 | - if (cxx_flags) |
1560 | - set_target_properties(${name} |
1561 | - PROPERTIES |
1562 | - COMPILE_FLAGS "${cxx_flags}") |
1563 | - endif() |
1564 | - if (BUILD_SHARED_LIBS) |
1565 | - set_target_properties(${name} |
1566 | - PROPERTIES |
1567 | - COMPILE_DEFINITIONS "GTEST_LINKED_AS_SHARED_LIBRARY=1") |
1568 | - endif() |
1569 | - # To support mixing linking in static and dynamic libraries, link each |
1570 | - # library in with an extra call to target_link_libraries. |
1571 | - foreach (lib "${libs}") |
1572 | - target_link_libraries(${name} ${lib}) |
1573 | - endforeach() |
1574 | -endfunction() |
1575 | - |
1576 | -# cxx_executable(name dir lib srcs...) |
1577 | -# |
1578 | -# creates a named target that depends on the given libs and is built |
1579 | -# from the given source files. dir/name.cc is implicitly included in |
1580 | -# the source file list. |
1581 | -function(cxx_executable name dir libs) |
1582 | - cxx_executable_with_flags( |
1583 | - ${name} "${cxx_default}" "${libs}" "${dir}/${name}.cc" ${ARGN}) |
1584 | -endfunction() |
1585 | - |
1586 | -# Sets PYTHONINTERP_FOUND and PYTHON_EXECUTABLE. |
1587 | -find_package(PythonInterp) |
1588 | - |
1589 | -# cxx_test_with_flags(name cxx_flags libs srcs...) |
1590 | -# |
1591 | -# creates a named C++ test that depends on the given libs and is built |
1592 | -# from the given source files with the given compiler flags. |
1593 | -function(cxx_test_with_flags name cxx_flags libs) |
1594 | - cxx_executable_with_flags(${name} "${cxx_flags}" "${libs}" ${ARGN}) |
1595 | - add_test(${name} ${name}) |
1596 | -endfunction() |
1597 | - |
1598 | -# cxx_test(name libs srcs...) |
1599 | -# |
1600 | -# creates a named test target that depends on the given libs and is |
1601 | -# built from the given source files. Unlike cxx_test_with_flags, |
1602 | -# test/name.cc is already implicitly included in the source file list. |
1603 | -function(cxx_test name libs) |
1604 | - cxx_test_with_flags("${name}" "${cxx_default}" "${libs}" |
1605 | - "test/${name}.cc" ${ARGN}) |
1606 | -endfunction() |
1607 | - |
1608 | -# py_test(name) |
1609 | -# |
1610 | -# creates a Python test with the given name whose main module is in |
1611 | -# test/name.py. It does nothing if Python is not installed. |
1612 | -function(py_test name) |
1613 | - # We are not supporting Python tests on Linux yet as they consider |
1614 | - # all Linux environments to be google3 and try to use google3 features. |
1615 | - if (PYTHONINTERP_FOUND) |
1616 | - # ${CMAKE_BINARY_DIR} is known at configuration time, so we can |
1617 | - # directly bind it from cmake. ${CTEST_CONFIGURATION_TYPE} is known |
1618 | - # only at ctest runtime (by calling ctest -c <Configuration>), so |
1619 | - # we have to escape $ to delay variable substitution here. |
1620 | - add_test(${name} |
1621 | - ${PYTHON_EXECUTABLE} ${CMAKE_CURRENT_SOURCE_DIR}/test/${name}.py |
1622 | - --build_dir=${CMAKE_CURRENT_BINARY_DIR}/\${CTEST_CONFIGURATION_TYPE}) |
1623 | - endif() |
1624 | -endfunction() |
1625 | |
1626 | === removed directory '3rd_party/gmock/gtest/codegear' |
1627 | === removed file '3rd_party/gmock/gtest/codegear/gtest_all.cc' |
1628 | --- 3rd_party/gmock/gtest/codegear/gtest_all.cc 2014-04-07 19:53:07 +0000 |
1629 | +++ 3rd_party/gmock/gtest/codegear/gtest_all.cc 1970-01-01 00:00:00 +0000 |
1630 | @@ -1,38 +0,0 @@ |
1631 | -// Copyright 2009, Google Inc. |
1632 | -// All rights reserved. |
1633 | -// |
1634 | -// Redistribution and use in source and binary forms, with or without |
1635 | -// modification, are permitted provided that the following conditions are |
1636 | -// met: |
1637 | -// |
1638 | -// * Redistributions of source code must retain the above copyright |
1639 | -// notice, this list of conditions and the following disclaimer. |
1640 | -// * Redistributions in binary form must reproduce the above |
1641 | -// copyright notice, this list of conditions and the following disclaimer |
1642 | -// in the documentation and/or other materials provided with the |
1643 | -// distribution. |
1644 | -// * Neither the name of Google Inc. nor the names of its |
1645 | -// contributors may be used to endorse or promote products derived from |
1646 | -// this software without specific prior written permission. |
1647 | -// |
1648 | -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
1649 | -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
1650 | -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
1651 | -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |
1652 | -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
1653 | -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
1654 | -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
1655 | -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
1656 | -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
1657 | -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
1658 | -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
1659 | -// |
1660 | -// Author: Josh Kelley (joshkel@gmail.com) |
1661 | -// |
1662 | -// Google C++ Testing Framework (Google Test) |
1663 | -// |
1664 | -// C++Builder's IDE cannot build a static library from files with hyphens |
1665 | -// in their name. See http://qc.codegear.com/wc/qcmain.aspx?d=70977 . |
1666 | -// This file serves as a workaround. |
1667 | - |
1668 | -#include "src/gtest-all.cc" |
1669 | |
1670 | === removed file '3rd_party/gmock/gtest/codegear/gtest_link.cc' |
1671 | --- 3rd_party/gmock/gtest/codegear/gtest_link.cc 2014-04-07 19:53:07 +0000 |
1672 | +++ 3rd_party/gmock/gtest/codegear/gtest_link.cc 1970-01-01 00:00:00 +0000 |
1673 | @@ -1,40 +0,0 @@ |
1674 | -// Copyright 2009, Google Inc. |
1675 | -// All rights reserved. |
1676 | -// |
1677 | -// Redistribution and use in source and binary forms, with or without |
1678 | -// modification, are permitted provided that the following conditions are |
1679 | -// met: |
1680 | -// |
1681 | -// * Redistributions of source code must retain the above copyright |
1682 | -// notice, this list of conditions and the following disclaimer. |
1683 | -// * Redistributions in binary form must reproduce the above |
1684 | -// copyright notice, this list of conditions and the following disclaimer |
1685 | -// in the documentation and/or other materials provided with the |
1686 | -// distribution. |
1687 | -// * Neither the name of Google Inc. nor the names of its |
1688 | -// contributors may be used to endorse or promote products derived from |
1689 | -// this software without specific prior written permission. |
1690 | -// |
1691 | -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
1692 | -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
1693 | -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
1694 | -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |
1695 | -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
1696 | -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
1697 | -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
1698 | -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
1699 | -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
1700 | -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
1701 | -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
1702 | -// |
1703 | -// Author: Josh Kelley (joshkel@gmail.com) |
1704 | -// |
1705 | -// Google C++ Testing Framework (Google Test) |
1706 | -// |
1707 | -// Links gtest.lib and gtest_main.lib into the current project in C++Builder. |
1708 | -// This means that these libraries can't be renamed, but it's the only way to |
1709 | -// ensure that Debug versus Release test builds are linked against the |
1710 | -// appropriate Debug or Release build of the libraries. |
1711 | - |
1712 | -#pragma link "gtest.lib" |
1713 | -#pragma link "gtest_main.lib" |
1714 | |
1715 | === removed file '3rd_party/gmock/gtest/configure.ac' |
1716 | --- 3rd_party/gmock/gtest/configure.ac 2014-04-07 19:53:07 +0000 |
1717 | +++ 3rd_party/gmock/gtest/configure.ac 1970-01-01 00:00:00 +0000 |
1718 | @@ -1,68 +0,0 @@ |
1719 | -m4_include(m4/acx_pthread.m4) |
1720 | - |
1721 | -# At this point, the Xcode project assumes the version string will be three |
1722 | -# integers separated by periods and surrounded by square brackets (e.g. |
1723 | -# "[1.0.1]"). It also asumes that there won't be any closing parenthesis |
1724 | -# between "AC_INIT(" and the closing ")" including comments and strings. |
1725 | -AC_INIT([Google C++ Testing Framework], |
1726 | - [1.7.0], |
1727 | - [googletestframework@googlegroups.com], |
1728 | - [gtest]) |
1729 | - |
1730 | -# Provide various options to initialize the Autoconf and configure processes. |
1731 | -AC_PREREQ([2.59]) |
1732 | -AC_CONFIG_SRCDIR([./LICENSE]) |
1733 | -AC_CONFIG_MACRO_DIR([m4]) |
1734 | -AC_CONFIG_AUX_DIR([build-aux]) |
1735 | -AC_CONFIG_HEADERS([build-aux/config.h]) |
1736 | -AC_CONFIG_FILES([Makefile]) |
1737 | -AC_CONFIG_FILES([scripts/gtest-config], [chmod +x scripts/gtest-config]) |
1738 | - |
1739 | -# Initialize Automake with various options. We require at least v1.9, prevent |
1740 | -# pedantic complaints about package files, and enable various distribution |
1741 | -# targets. |
1742 | -AM_INIT_AUTOMAKE([1.9 dist-bzip2 dist-zip foreign subdir-objects]) |
1743 | - |
1744 | -# Check for programs used in building Google Test. |
1745 | -AC_PROG_CC |
1746 | -AC_PROG_CXX |
1747 | -AC_LANG([C++]) |
1748 | -AC_PROG_LIBTOOL |
1749 | - |
1750 | -# TODO(chandlerc@google.com): Currently we aren't running the Python tests |
1751 | -# against the interpreter detected by AM_PATH_PYTHON, and so we condition |
1752 | -# HAVE_PYTHON by requiring "python" to be in the PATH, and that interpreter's |
1753 | -# version to be >= 2.3. This will allow the scripts to use a "/usr/bin/env" |
1754 | -# hashbang. |
1755 | -PYTHON= # We *do not* allow the user to specify a python interpreter |
1756 | -AC_PATH_PROG([PYTHON],[python],[:]) |
1757 | -AS_IF([test "$PYTHON" != ":"], |
1758 | - [AM_PYTHON_CHECK_VERSION([$PYTHON],[2.3],[:],[PYTHON=":"])]) |
1759 | -AM_CONDITIONAL([HAVE_PYTHON],[test "$PYTHON" != ":"]) |
1760 | - |
1761 | -# Configure pthreads. |
1762 | -AC_ARG_WITH([pthreads], |
1763 | - [AS_HELP_STRING([--with-pthreads], |
1764 | - [use pthreads (default is yes)])], |
1765 | - [with_pthreads=$withval], |
1766 | - [with_pthreads=check]) |
1767 | - |
1768 | -have_pthreads=no |
1769 | -AS_IF([test "x$with_pthreads" != "xno"], |
1770 | - [ACX_PTHREAD( |
1771 | - [], |
1772 | - [AS_IF([test "x$with_pthreads" != "xcheck"], |
1773 | - [AC_MSG_FAILURE( |
1774 | - [--with-pthreads was specified, but unable to be used])])]) |
1775 | - have_pthreads="$acx_pthread_ok"]) |
1776 | -AM_CONDITIONAL([HAVE_PTHREADS],[test "x$have_pthreads" = "xyes"]) |
1777 | -AC_SUBST(PTHREAD_CFLAGS) |
1778 | -AC_SUBST(PTHREAD_LIBS) |
1779 | - |
1780 | -# TODO(chandlerc@google.com) Check for the necessary system headers. |
1781 | - |
1782 | -# TODO(chandlerc@google.com) Check the types, structures, and other compiler |
1783 | -# and architecture characteristics. |
1784 | - |
1785 | -# Output the generated files. No further autoconf macros may be used. |
1786 | -AC_OUTPUT |
1787 | |
1788 | === removed directory '3rd_party/gmock/gtest/include' |
1789 | === removed directory '3rd_party/gmock/gtest/include/gtest' |
1790 | === removed file '3rd_party/gmock/gtest/include/gtest/gtest-death-test.h' |
1791 | --- 3rd_party/gmock/gtest/include/gtest/gtest-death-test.h 2014-04-07 19:53:07 +0000 |
1792 | +++ 3rd_party/gmock/gtest/include/gtest/gtest-death-test.h 1970-01-01 00:00:00 +0000 |
1793 | @@ -1,294 +0,0 @@ |
1794 | -// Copyright 2005, Google Inc. |
1795 | -// All rights reserved. |
1796 | -// |
1797 | -// Redistribution and use in source and binary forms, with or without |
1798 | -// modification, are permitted provided that the following conditions are |
1799 | -// met: |
1800 | -// |
1801 | -// * Redistributions of source code must retain the above copyright |
1802 | -// notice, this list of conditions and the following disclaimer. |
1803 | -// * Redistributions in binary form must reproduce the above |
1804 | -// copyright notice, this list of conditions and the following disclaimer |
1805 | -// in the documentation and/or other materials provided with the |
1806 | -// distribution. |
1807 | -// * Neither the name of Google Inc. nor the names of its |
1808 | -// contributors may be used to endorse or promote products derived from |
1809 | -// this software without specific prior written permission. |
1810 | -// |
1811 | -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
1812 | -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
1813 | -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
1814 | -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |
1815 | -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
1816 | -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
1817 | -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
1818 | -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
1819 | -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
1820 | -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
1821 | -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
1822 | -// |
1823 | -// Author: wan@google.com (Zhanyong Wan) |
1824 | -// |
1825 | -// The Google C++ Testing Framework (Google Test) |
1826 | -// |
1827 | -// This header file defines the public API for death tests. It is |
1828 | -// #included by gtest.h so a user doesn't need to include this |
1829 | -// directly. |
1830 | - |
1831 | -#ifndef GTEST_INCLUDE_GTEST_GTEST_DEATH_TEST_H_ |
1832 | -#define GTEST_INCLUDE_GTEST_GTEST_DEATH_TEST_H_ |
1833 | - |
1834 | -#include "gtest/internal/gtest-death-test-internal.h" |
1835 | - |
1836 | -namespace testing { |
1837 | - |
1838 | -// This flag controls the style of death tests. Valid values are "threadsafe", |
1839 | -// meaning that the death test child process will re-execute the test binary |
1840 | -// from the start, running only a single death test, or "fast", |
1841 | -// meaning that the child process will execute the test logic immediately |
1842 | -// after forking. |
1843 | -GTEST_DECLARE_string_(death_test_style); |
1844 | - |
1845 | -#if GTEST_HAS_DEATH_TEST |
1846 | - |
1847 | -namespace internal { |
1848 | - |
1849 | -// Returns a Boolean value indicating whether the caller is currently |
1850 | -// executing in the context of the death test child process. Tools such as |
1851 | -// Valgrind heap checkers may need this to modify their behavior in death |
1852 | -// tests. IMPORTANT: This is an internal utility. Using it may break the |
1853 | -// implementation of death tests. User code MUST NOT use it. |
1854 | -GTEST_API_ bool InDeathTestChild(); |
1855 | - |
1856 | -} // namespace internal |
1857 | - |
1858 | -// The following macros are useful for writing death tests. |
1859 | - |
1860 | -// Here's what happens when an ASSERT_DEATH* or EXPECT_DEATH* is |
1861 | -// executed: |
1862 | -// |
1863 | -// 1. It generates a warning if there is more than one active |
1864 | -// thread. This is because it's safe to fork() or clone() only |
1865 | -// when there is a single thread. |
1866 | -// |
1867 | -// 2. The parent process clone()s a sub-process and runs the death |
1868 | -// test in it; the sub-process exits with code 0 at the end of the |
1869 | -// death test, if it hasn't exited already. |
1870 | -// |
1871 | -// 3. The parent process waits for the sub-process to terminate. |
1872 | -// |
1873 | -// 4. The parent process checks the exit code and error message of |
1874 | -// the sub-process. |
1875 | -// |
1876 | -// Examples: |
1877 | -// |
1878 | -// ASSERT_DEATH(server.SendMessage(56, "Hello"), "Invalid port number"); |
1879 | -// for (int i = 0; i < 5; i++) { |
1880 | -// EXPECT_DEATH(server.ProcessRequest(i), |
1881 | -// "Invalid request .* in ProcessRequest()") |
1882 | -// << "Failed to die on request " << i; |
1883 | -// } |
1884 | -// |
1885 | -// ASSERT_EXIT(server.ExitNow(), ::testing::ExitedWithCode(0), "Exiting"); |
1886 | -// |
1887 | -// bool KilledBySIGHUP(int exit_code) { |
1888 | -// return WIFSIGNALED(exit_code) && WTERMSIG(exit_code) == SIGHUP; |
1889 | -// } |
1890 | -// |
1891 | -// ASSERT_EXIT(client.HangUpServer(), KilledBySIGHUP, "Hanging up!"); |
1892 | -// |
1893 | -// On the regular expressions used in death tests: |
1894 | -// |
1895 | -// On POSIX-compliant systems (*nix), we use the <regex.h> library, |
1896 | -// which uses the POSIX extended regex syntax. |
1897 | -// |
1898 | -// On other platforms (e.g. Windows), we only support a simple regex |
1899 | -// syntax implemented as part of Google Test. This limited |
1900 | -// implementation should be enough most of the time when writing |
1901 | -// death tests; though it lacks many features you can find in PCRE |
1902 | -// or POSIX extended regex syntax. For example, we don't support |
1903 | -// union ("x|y"), grouping ("(xy)"), brackets ("[xy]"), and |
1904 | -// repetition count ("x{5,7}"), among others. |
1905 | -// |
1906 | -// Below is the syntax that we do support. We chose it to be a |
1907 | -// subset of both PCRE and POSIX extended regex, so it's easy to |
1908 | -// learn wherever you come from. In the following: 'A' denotes a |
1909 | -// literal character, period (.), or a single \\ escape sequence; |
1910 | -// 'x' and 'y' denote regular expressions; 'm' and 'n' are for |
1911 | -// natural numbers. |
1912 | -// |
1913 | -// c matches any literal character c |
1914 | -// \\d matches any decimal digit |
1915 | -// \\D matches any character that's not a decimal digit |
1916 | -// \\f matches \f |
1917 | -// \\n matches \n |
1918 | -// \\r matches \r |
1919 | -// \\s matches any ASCII whitespace, including \n |
1920 | -// \\S matches any character that's not a whitespace |
1921 | -// \\t matches \t |
1922 | -// \\v matches \v |
1923 | -// \\w matches any letter, _, or decimal digit |
1924 | -// \\W matches any character that \\w doesn't match |
1925 | -// \\c matches any literal character c, which must be a punctuation |
1926 | -// . matches any single character except \n |
1927 | -// A? matches 0 or 1 occurrences of A |
1928 | -// A* matches 0 or many occurrences of A |
1929 | -// A+ matches 1 or many occurrences of A |
1930 | -// ^ matches the beginning of a string (not that of each line) |
1931 | -// $ matches the end of a string (not that of each line) |
1932 | -// xy matches x followed by y |
1933 | -// |
1934 | -// If you accidentally use PCRE or POSIX extended regex features |
1935 | -// not implemented by us, you will get a run-time failure. In that |
1936 | -// case, please try to rewrite your regular expression within the |
1937 | -// above syntax. |
1938 | -// |
1939 | -// This implementation is *not* meant to be as highly tuned or robust |
1940 | -// as a compiled regex library, but should perform well enough for a |
1941 | -// death test, which already incurs significant overhead by launching |
1942 | -// a child process. |
1943 | -// |
1944 | -// Known caveats: |
1945 | -// |
1946 | -// A "threadsafe" style death test obtains the path to the test |
1947 | -// program from argv[0] and re-executes it in the sub-process. For |
1948 | -// simplicity, the current implementation doesn't search the PATH |
1949 | -// when launching the sub-process. This means that the user must |
1950 | -// invoke the test program via a path that contains at least one |
1951 | -// path separator (e.g. path/to/foo_test and |
1952 | -// /absolute/path/to/bar_test are fine, but foo_test is not). This |
1953 | -// is rarely a problem as people usually don't put the test binary |
1954 | -// directory in PATH. |
1955 | -// |
1956 | -// TODO(wan@google.com): make thread-safe death tests search the PATH. |
1957 | - |
1958 | -// Asserts that a given statement causes the program to exit, with an |
1959 | -// integer exit status that satisfies predicate, and emitting error output |
1960 | -// that matches regex. |
1961 | -# define ASSERT_EXIT(statement, predicate, regex) \ |
1962 | - GTEST_DEATH_TEST_(statement, predicate, regex, GTEST_FATAL_FAILURE_) |
1963 | - |
1964 | -// Like ASSERT_EXIT, but continues on to successive tests in the |
1965 | -// test case, if any: |
1966 | -# define EXPECT_EXIT(statement, predicate, regex) \ |
1967 | - GTEST_DEATH_TEST_(statement, predicate, regex, GTEST_NONFATAL_FAILURE_) |
1968 | - |
1969 | -// Asserts that a given statement causes the program to exit, either by |
1970 | -// explicitly exiting with a nonzero exit code or being killed by a |
1971 | -// signal, and emitting error output that matches regex. |
1972 | -# define ASSERT_DEATH(statement, regex) \ |
1973 | - ASSERT_EXIT(statement, ::testing::internal::ExitedUnsuccessfully, regex) |
1974 | - |
1975 | -// Like ASSERT_DEATH, but continues on to successive tests in the |
1976 | -// test case, if any: |
1977 | -# define EXPECT_DEATH(statement, regex) \ |
1978 | - EXPECT_EXIT(statement, ::testing::internal::ExitedUnsuccessfully, regex) |
1979 | - |
1980 | -// Two predicate classes that can be used in {ASSERT,EXPECT}_EXIT*: |
1981 | - |
1982 | -// Tests that an exit code describes a normal exit with a given exit code. |
1983 | -class GTEST_API_ ExitedWithCode { |
1984 | - public: |
1985 | - explicit ExitedWithCode(int exit_code); |
1986 | - bool operator()(int exit_status) const; |
1987 | - private: |
1988 | - // No implementation - assignment is unsupported. |
1989 | - void operator=(const ExitedWithCode& other); |
1990 | - |
1991 | - const int exit_code_; |
1992 | -}; |
1993 | - |
1994 | -# if !GTEST_OS_WINDOWS |
1995 | -// Tests that an exit code describes an exit due to termination by a |
1996 | -// given signal. |
1997 | -class GTEST_API_ KilledBySignal { |
1998 | - public: |
1999 | - explicit KilledBySignal(int signum); |
2000 | - bool operator()(int exit_status) const; |
2001 | - private: |
2002 | - const int signum_; |
2003 | -}; |
2004 | -# endif // !GTEST_OS_WINDOWS |
2005 | - |
2006 | -// EXPECT_DEBUG_DEATH asserts that the given statements die in debug mode. |
2007 | -// The death testing framework causes this to have interesting semantics, |
2008 | -// since the sideeffects of the call are only visible in opt mode, and not |
2009 | -// in debug mode. |
2010 | -// |
2011 | -// In practice, this can be used to test functions that utilize the |
2012 | -// LOG(DFATAL) macro using the following style: |
2013 | -// |
2014 | -// int DieInDebugOr12(int* sideeffect) { |
2015 | -// if (sideeffect) { |
2016 | -// *sideeffect = 12; |
2017 | -// } |
2018 | -// LOG(DFATAL) << "death"; |
2019 | -// return 12; |
2020 | -// } |
2021 | -// |
2022 | -// TEST(TestCase, TestDieOr12WorksInDgbAndOpt) { |
2023 | -// int sideeffect = 0; |
2024 | -// // Only asserts in dbg. |
2025 | -// EXPECT_DEBUG_DEATH(DieInDebugOr12(&sideeffect), "death"); |
2026 | -// |
2027 | -// #ifdef NDEBUG |
2028 | -// // opt-mode has sideeffect visible. |
2029 | -// EXPECT_EQ(12, sideeffect); |
2030 | -// #else |
2031 | -// // dbg-mode no visible sideeffect. |
2032 | -// EXPECT_EQ(0, sideeffect); |
2033 | -// #endif |
2034 | -// } |
2035 | -// |
2036 | -// This will assert that DieInDebugReturn12InOpt() crashes in debug |
2037 | -// mode, usually due to a DCHECK or LOG(DFATAL), but returns the |
2038 | -// appropriate fallback value (12 in this case) in opt mode. If you |
2039 | -// need to test that a function has appropriate side-effects in opt |
2040 | -// mode, include assertions against the side-effects. A general |
2041 | -// pattern for this is: |
2042 | -// |
2043 | -// EXPECT_DEBUG_DEATH({ |
2044 | -// // Side-effects here will have an effect after this statement in |
2045 | -// // opt mode, but none in debug mode. |
2046 | -// EXPECT_EQ(12, DieInDebugOr12(&sideeffect)); |
2047 | -// }, "death"); |
2048 | -// |
2049 | -# ifdef NDEBUG |
2050 | - |
2051 | -# define EXPECT_DEBUG_DEATH(statement, regex) \ |
2052 | - GTEST_EXECUTE_STATEMENT_(statement, regex) |
2053 | - |
2054 | -# define ASSERT_DEBUG_DEATH(statement, regex) \ |
2055 | - GTEST_EXECUTE_STATEMENT_(statement, regex) |
2056 | - |
2057 | -# else |
2058 | - |
2059 | -# define EXPECT_DEBUG_DEATH(statement, regex) \ |
2060 | - EXPECT_DEATH(statement, regex) |
2061 | - |
2062 | -# define ASSERT_DEBUG_DEATH(statement, regex) \ |
2063 | - ASSERT_DEATH(statement, regex) |
2064 | - |
2065 | -# endif // NDEBUG for EXPECT_DEBUG_DEATH |
2066 | -#endif // GTEST_HAS_DEATH_TEST |
2067 | - |
2068 | -// EXPECT_DEATH_IF_SUPPORTED(statement, regex) and |
2069 | -// ASSERT_DEATH_IF_SUPPORTED(statement, regex) expand to real death tests if |
2070 | -// death tests are supported; otherwise they just issue a warning. This is |
2071 | -// useful when you are combining death test assertions with normal test |
2072 | -// assertions in one test. |
2073 | -#if GTEST_HAS_DEATH_TEST |
2074 | -# define EXPECT_DEATH_IF_SUPPORTED(statement, regex) \ |
2075 | - EXPECT_DEATH(statement, regex) |
2076 | -# define ASSERT_DEATH_IF_SUPPORTED(statement, regex) \ |
2077 | - ASSERT_DEATH(statement, regex) |
2078 | -#else |
2079 | -# define EXPECT_DEATH_IF_SUPPORTED(statement, regex) \ |
2080 | - GTEST_UNSUPPORTED_DEATH_TEST_(statement, regex, ) |
2081 | -# define ASSERT_DEATH_IF_SUPPORTED(statement, regex) \ |
2082 | - GTEST_UNSUPPORTED_DEATH_TEST_(statement, regex, return) |
2083 | -#endif |
2084 | - |
2085 | -} // namespace testing |
2086 | - |
2087 | -#endif // GTEST_INCLUDE_GTEST_GTEST_DEATH_TEST_H_ |
2088 | |
2089 | === removed file '3rd_party/gmock/gtest/include/gtest/gtest-message.h' |
2090 | --- 3rd_party/gmock/gtest/include/gtest/gtest-message.h 2014-04-07 19:53:07 +0000 |
2091 | +++ 3rd_party/gmock/gtest/include/gtest/gtest-message.h 1970-01-01 00:00:00 +0000 |
2092 | @@ -1,250 +0,0 @@ |
2093 | -// Copyright 2005, Google Inc. |
2094 | -// All rights reserved. |
2095 | -// |
2096 | -// Redistribution and use in source and binary forms, with or without |
2097 | -// modification, are permitted provided that the following conditions are |
2098 | -// met: |
2099 | -// |
2100 | -// * Redistributions of source code must retain the above copyright |
2101 | -// notice, this list of conditions and the following disclaimer. |
2102 | -// * Redistributions in binary form must reproduce the above |
2103 | -// copyright notice, this list of conditions and the following disclaimer |
2104 | -// in the documentation and/or other materials provided with the |
2105 | -// distribution. |
2106 | -// * Neither the name of Google Inc. nor the names of its |
2107 | -// contributors may be used to endorse or promote products derived from |
2108 | -// this software without specific prior written permission. |
2109 | -// |
2110 | -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
2111 | -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
2112 | -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
2113 | -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |
2114 | -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
2115 | -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
2116 | -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
2117 | -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
2118 | -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
2119 | -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
2120 | -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
2121 | -// |
2122 | -// Author: wan@google.com (Zhanyong Wan) |
2123 | -// |
2124 | -// The Google C++ Testing Framework (Google Test) |
2125 | -// |
2126 | -// This header file defines the Message class. |
2127 | -// |
2128 | -// IMPORTANT NOTE: Due to limitation of the C++ language, we have to |
2129 | -// leave some internal implementation details in this header file. |
2130 | -// They are clearly marked by comments like this: |
2131 | -// |
2132 | -// // INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM. |
2133 | -// |
2134 | -// Such code is NOT meant to be used by a user directly, and is subject |
2135 | -// to CHANGE WITHOUT NOTICE. Therefore DO NOT DEPEND ON IT in a user |
2136 | -// program! |
2137 | - |
2138 | -#ifndef GTEST_INCLUDE_GTEST_GTEST_MESSAGE_H_ |
2139 | -#define GTEST_INCLUDE_GTEST_GTEST_MESSAGE_H_ |
2140 | - |
2141 | -#include <limits> |
2142 | - |
2143 | -#include "gtest/internal/gtest-port.h" |
2144 | - |
2145 | -// Ensures that there is at least one operator<< in the global namespace. |
2146 | -// See Message& operator<<(...) below for why. |
2147 | -void operator<<(const testing::internal::Secret&, int); |
2148 | - |
2149 | -namespace testing { |
2150 | - |
2151 | -// The Message class works like an ostream repeater. |
2152 | -// |
2153 | -// Typical usage: |
2154 | -// |
2155 | -// 1. You stream a bunch of values to a Message object. |
2156 | -// It will remember the text in a stringstream. |
2157 | -// 2. Then you stream the Message object to an ostream. |
2158 | -// This causes the text in the Message to be streamed |
2159 | -// to the ostream. |
2160 | -// |
2161 | -// For example; |
2162 | -// |
2163 | -// testing::Message foo; |
2164 | -// foo << 1 << " != " << 2; |
2165 | -// std::cout << foo; |
2166 | -// |
2167 | -// will print "1 != 2". |
2168 | -// |
2169 | -// Message is not intended to be inherited from. In particular, its |
2170 | -// destructor is not virtual. |
2171 | -// |
2172 | -// Note that stringstream behaves differently in gcc and in MSVC. You |
2173 | -// can stream a NULL char pointer to it in the former, but not in the |
2174 | -// latter (it causes an access violation if you do). The Message |
2175 | -// class hides this difference by treating a NULL char pointer as |
2176 | -// "(null)". |
2177 | -class GTEST_API_ Message { |
2178 | - private: |
2179 | - // The type of basic IO manipulators (endl, ends, and flush) for |
2180 | - // narrow streams. |
2181 | - typedef std::ostream& (*BasicNarrowIoManip)(std::ostream&); |
2182 | - |
2183 | - public: |
2184 | - // Constructs an empty Message. |
2185 | - Message(); |
2186 | - |
2187 | - // Copy constructor. |
2188 | - Message(const Message& msg) : ss_(new ::std::stringstream) { // NOLINT |
2189 | - *ss_ << msg.GetString(); |
2190 | - } |
2191 | - |
2192 | - // Constructs a Message from a C-string. |
2193 | - explicit Message(const char* str) : ss_(new ::std::stringstream) { |
2194 | - *ss_ << str; |
2195 | - } |
2196 | - |
2197 | -#if GTEST_OS_SYMBIAN |
2198 | - // Streams a value (either a pointer or not) to this object. |
2199 | - template <typename T> |
2200 | - inline Message& operator <<(const T& value) { |
2201 | - StreamHelper(typename internal::is_pointer<T>::type(), value); |
2202 | - return *this; |
2203 | - } |
2204 | -#else |
2205 | - // Streams a non-pointer value to this object. |
2206 | - template <typename T> |
2207 | - inline Message& operator <<(const T& val) { |
2208 | - // Some libraries overload << for STL containers. These |
2209 | - // overloads are defined in the global namespace instead of ::std. |
2210 | - // |
2211 | - // C++'s symbol lookup rule (i.e. Koenig lookup) says that these |
2212 | - // overloads are visible in either the std namespace or the global |
2213 | - // namespace, but not other namespaces, including the testing |
2214 | - // namespace which Google Test's Message class is in. |
2215 | - // |
2216 | - // To allow STL containers (and other types that has a << operator |
2217 | - // defined in the global namespace) to be used in Google Test |
2218 | - // assertions, testing::Message must access the custom << operator |
2219 | - // from the global namespace. With this using declaration, |
2220 | - // overloads of << defined in the global namespace and those |
2221 | - // visible via Koenig lookup are both exposed in this function. |
2222 | - using ::operator <<; |
2223 | - *ss_ << val; |
2224 | - return *this; |
2225 | - } |
2226 | - |
2227 | - // Streams a pointer value to this object. |
2228 | - // |
2229 | - // This function is an overload of the previous one. When you |
2230 | - // stream a pointer to a Message, this definition will be used as it |
2231 | - // is more specialized. (The C++ Standard, section |
2232 | - // [temp.func.order].) If you stream a non-pointer, then the |
2233 | - // previous definition will be used. |
2234 | - // |
2235 | - // The reason for this overload is that streaming a NULL pointer to |
2236 | - // ostream is undefined behavior. Depending on the compiler, you |
2237 | - // may get "0", "(nil)", "(null)", or an access violation. To |
2238 | - // ensure consistent result across compilers, we always treat NULL |
2239 | - // as "(null)". |
2240 | - template <typename T> |
2241 | - inline Message& operator <<(T* const& pointer) { // NOLINT |
2242 | - if (pointer == NULL) { |
2243 | - *ss_ << "(null)"; |
2244 | - } else { |
2245 | - *ss_ << pointer; |
2246 | - } |
2247 | - return *this; |
2248 | - } |
2249 | -#endif // GTEST_OS_SYMBIAN |
2250 | - |
2251 | - // Since the basic IO manipulators are overloaded for both narrow |
2252 | - // and wide streams, we have to provide this specialized definition |
2253 | - // of operator <<, even though its body is the same as the |
2254 | - // templatized version above. Without this definition, streaming |
2255 | - // endl or other basic IO manipulators to Message will confuse the |
2256 | - // compiler. |
2257 | - Message& operator <<(BasicNarrowIoManip val) { |
2258 | - *ss_ << val; |
2259 | - return *this; |
2260 | - } |
2261 | - |
2262 | - // Instead of 1/0, we want to see true/false for bool values. |
2263 | - Message& operator <<(bool b) { |
2264 | - return *this << (b ? "true" : "false"); |
2265 | - } |
2266 | - |
2267 | - // These two overloads allow streaming a wide C string to a Message |
2268 | - // using the UTF-8 encoding. |
2269 | - Message& operator <<(const wchar_t* wide_c_str); |
2270 | - Message& operator <<(wchar_t* wide_c_str); |
2271 | - |
2272 | -#if GTEST_HAS_STD_WSTRING |
2273 | - // Converts the given wide string to a narrow string using the UTF-8 |
2274 | - // encoding, and streams the result to this Message object. |
2275 | - Message& operator <<(const ::std::wstring& wstr); |
2276 | -#endif // GTEST_HAS_STD_WSTRING |
2277 | - |
2278 | -#if GTEST_HAS_GLOBAL_WSTRING |
2279 | - // Converts the given wide string to a narrow string using the UTF-8 |
2280 | - // encoding, and streams the result to this Message object. |
2281 | - Message& operator <<(const ::wstring& wstr); |
2282 | -#endif // GTEST_HAS_GLOBAL_WSTRING |
2283 | - |
2284 | - // Gets the text streamed to this object so far as an std::string. |
2285 | - // Each '\0' character in the buffer is replaced with "\\0". |
2286 | - // |
2287 | - // INTERNAL IMPLEMENTATION - DO NOT USE IN A USER PROGRAM. |
2288 | - std::string GetString() const; |
2289 | - |
2290 | - private: |
2291 | - |
2292 | -#if GTEST_OS_SYMBIAN |
2293 | - // These are needed as the Nokia Symbian Compiler cannot decide between |
2294 | - // const T& and const T* in a function template. The Nokia compiler _can_ |
2295 | - // decide between class template specializations for T and T*, so a |
2296 | - // tr1::type_traits-like is_pointer works, and we can overload on that. |
2297 | - template <typename T> |
2298 | - inline void StreamHelper(internal::true_type /*is_pointer*/, T* pointer) { |
2299 | - if (pointer == NULL) { |
2300 | - *ss_ << "(null)"; |
2301 | - } else { |
2302 | - *ss_ << pointer; |
2303 | - } |
2304 | - } |
2305 | - template <typename T> |
2306 | - inline void StreamHelper(internal::false_type /*is_pointer*/, |
2307 | - const T& value) { |
2308 | - // See the comments in Message& operator <<(const T&) above for why |
2309 | - // we need this using statement. |
2310 | - using ::operator <<; |
2311 | - *ss_ << value; |
2312 | - } |
2313 | -#endif // GTEST_OS_SYMBIAN |
2314 | - |
2315 | - // We'll hold the text streamed to this object here. |
2316 | - const internal::scoped_ptr< ::std::stringstream> ss_; |
2317 | - |
2318 | - // We declare (but don't implement) this to prevent the compiler |
2319 | - // from implementing the assignment operator. |
2320 | - void operator=(const Message&); |
2321 | -}; |
2322 | - |
2323 | -// Streams a Message to an ostream. |
2324 | -inline std::ostream& operator <<(std::ostream& os, const Message& sb) { |
2325 | - return os << sb.GetString(); |
2326 | -} |
2327 | - |
2328 | -namespace internal { |
2329 | - |
2330 | -// Converts a streamable value to an std::string. A NULL pointer is |
2331 | -// converted to "(null)". When the input value is a ::string, |
2332 | -// ::std::string, ::wstring, or ::std::wstring object, each NUL |
2333 | -// character in it is replaced with "\\0". |
2334 | -template <typename T> |
2335 | -std::string StreamableToString(const T& streamable) { |
2336 | - return (Message() << streamable).GetString(); |
2337 | -} |
2338 | - |
2339 | -} // namespace internal |
2340 | -} // namespace testing |
2341 | - |
2342 | -#endif // GTEST_INCLUDE_GTEST_GTEST_MESSAGE_H_ |
2343 | |
2344 | === removed file '3rd_party/gmock/gtest/include/gtest/gtest-param-test.h' |
2345 | --- 3rd_party/gmock/gtest/include/gtest/gtest-param-test.h 2014-04-07 19:53:07 +0000 |
2346 | +++ 3rd_party/gmock/gtest/include/gtest/gtest-param-test.h 1970-01-01 00:00:00 +0000 |
2347 | @@ -1,1421 +0,0 @@ |
2348 | -// This file was GENERATED by command: |
2349 | -// pump.py gtest-param-test.h.pump |
2350 | -// DO NOT EDIT BY HAND!!! |
2351 | - |
2352 | -// Copyright 2008, Google Inc. |
2353 | -// All rights reserved. |
2354 | -// |
2355 | -// Redistribution and use in source and binary forms, with or without |
2356 | -// modification, are permitted provided that the following conditions are |
2357 | -// met: |
2358 | -// |
2359 | -// * Redistributions of source code must retain the above copyright |
2360 | -// notice, this list of conditions and the following disclaimer. |
2361 | -// * Redistributions in binary form must reproduce the above |
2362 | -// copyright notice, this list of conditions and the following disclaimer |
2363 | -// in the documentation and/or other materials provided with the |
2364 | -// distribution. |
2365 | -// * Neither the name of Google Inc. nor the names of its |
2366 | -// contributors may be used to endorse or promote products derived from |
2367 | -// this software without specific prior written permission. |
2368 | -// |
2369 | -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
2370 | -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
2371 | -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
2372 | -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |
2373 | -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
2374 | -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
2375 | -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
2376 | -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
2377 | -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
2378 | -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
2379 | -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
2380 | -// |
2381 | -// Authors: vladl@google.com (Vlad Losev) |
2382 | -// |
2383 | -// Macros and functions for implementing parameterized tests |
2384 | -// in Google C++ Testing Framework (Google Test) |
2385 | -// |
2386 | -// This file is generated by a SCRIPT. DO NOT EDIT BY HAND! |
2387 | -// |
2388 | -#ifndef GTEST_INCLUDE_GTEST_GTEST_PARAM_TEST_H_ |
2389 | -#define GTEST_INCLUDE_GTEST_GTEST_PARAM_TEST_H_ |
2390 | - |
2391 | - |
2392 | -// Value-parameterized tests allow you to test your code with different |
2393 | -// parameters without writing multiple copies of the same test. |
2394 | -// |
2395 | -// Here is how you use value-parameterized tests: |
2396 | - |
2397 | -#if 0 |
2398 | - |
2399 | -// To write value-parameterized tests, first you should define a fixture |
2400 | -// class. It is usually derived from testing::TestWithParam<T> (see below for |
2401 | -// another inheritance scheme that's sometimes useful in more complicated |
2402 | -// class hierarchies), where the type of your parameter values. |
2403 | -// TestWithParam<T> is itself derived from testing::Test. T can be any |
2404 | -// copyable type. If it's a raw pointer, you are responsible for managing the |
2405 | -// lifespan of the pointed values. |
2406 | - |
2407 | -class FooTest : public ::testing::TestWithParam<const char*> { |
2408 | - // You can implement all the usual class fixture members here. |
2409 | -}; |
2410 | - |
2411 | -// Then, use the TEST_P macro to define as many parameterized tests |
2412 | -// for this fixture as you want. The _P suffix is for "parameterized" |
2413 | -// or "pattern", whichever you prefer to think. |
2414 | - |
2415 | -TEST_P(FooTest, DoesBlah) { |
2416 | - // Inside a test, access the test parameter with the GetParam() method |
2417 | - // of the TestWithParam<T> class: |
2418 | - EXPECT_TRUE(foo.Blah(GetParam())); |
2419 | - ... |
2420 | -} |
2421 | - |
2422 | -TEST_P(FooTest, HasBlahBlah) { |
2423 | - ... |
2424 | -} |
2425 | - |
2426 | -// Finally, you can use INSTANTIATE_TEST_CASE_P to instantiate the test |
2427 | -// case with any set of parameters you want. Google Test defines a number |
2428 | -// of functions for generating test parameters. They return what we call |
2429 | -// (surprise!) parameter generators. Here is a summary of them, which |
2430 | -// are all in the testing namespace: |
2431 | -// |
2432 | -// |
2433 | -// Range(begin, end [, step]) - Yields values {begin, begin+step, |
2434 | -// begin+step+step, ...}. The values do not |
2435 | -// include end. step defaults to 1. |
2436 | -// Values(v1, v2, ..., vN) - Yields values {v1, v2, ..., vN}. |
2437 | -// ValuesIn(container) - Yields values from a C-style array, an STL |
2438 | -// ValuesIn(begin,end) container, or an iterator range [begin, end). |
2439 | -// Bool() - Yields sequence {false, true}. |
2440 | -// Combine(g1, g2, ..., gN) - Yields all combinations (the Cartesian product |
2441 | -// for the math savvy) of the values generated |
2442 | -// by the N generators. |
2443 | -// |
2444 | -// For more details, see comments at the definitions of these functions below |
2445 | -// in this file. |
2446 | -// |
2447 | -// The following statement will instantiate tests from the FooTest test case |
2448 | -// each with parameter values "meeny", "miny", and "moe". |
2449 | - |
2450 | -INSTANTIATE_TEST_CASE_P(InstantiationName, |
2451 | - FooTest, |
2452 | - Values("meeny", "miny", "moe")); |
2453 | - |
2454 | -// To distinguish different instances of the pattern, (yes, you |
2455 | -// can instantiate it more then once) the first argument to the |
2456 | -// INSTANTIATE_TEST_CASE_P macro is a prefix that will be added to the |
2457 | -// actual test case name. Remember to pick unique prefixes for different |
2458 | -// instantiations. The tests from the instantiation above will have |
2459 | -// these names: |
2460 | -// |
2461 | -// * InstantiationName/FooTest.DoesBlah/0 for "meeny" |
2462 | -// * InstantiationName/FooTest.DoesBlah/1 for "miny" |
2463 | -// * InstantiationName/FooTest.DoesBlah/2 for "moe" |
2464 | -// * InstantiationName/FooTest.HasBlahBlah/0 for "meeny" |
2465 | -// * InstantiationName/FooTest.HasBlahBlah/1 for "miny" |
2466 | -// * InstantiationName/FooTest.HasBlahBlah/2 for "moe" |
2467 | -// |
2468 | -// You can use these names in --gtest_filter. |
2469 | -// |
2470 | -// This statement will instantiate all tests from FooTest again, each |
2471 | -// with parameter values "cat" and "dog": |
2472 | - |
2473 | -const char* pets[] = {"cat", "dog"}; |
2474 | -INSTANTIATE_TEST_CASE_P(AnotherInstantiationName, FooTest, ValuesIn(pets)); |
2475 | - |
2476 | -// The tests from the instantiation above will have these names: |
2477 | -// |
2478 | -// * AnotherInstantiationName/FooTest.DoesBlah/0 for "cat" |
2479 | -// * AnotherInstantiationName/FooTest.DoesBlah/1 for "dog" |
2480 | -// * AnotherInstantiationName/FooTest.HasBlahBlah/0 for "cat" |
2481 | -// * AnotherInstantiationName/FooTest.HasBlahBlah/1 for "dog" |
2482 | -// |
2483 | -// Please note that INSTANTIATE_TEST_CASE_P will instantiate all tests |
2484 | -// in the given test case, whether their definitions come before or |
2485 | -// AFTER the INSTANTIATE_TEST_CASE_P statement. |
2486 | -// |
2487 | -// Please also note that generator expressions (including parameters to the |
2488 | -// generators) are evaluated in InitGoogleTest(), after main() has started. |
2489 | -// This allows the user on one hand, to adjust generator parameters in order |
2490 | -// to dynamically determine a set of tests to run and on the other hand, |
2491 | -// give the user a chance to inspect the generated tests with Google Test |
2492 | -// reflection API before RUN_ALL_TESTS() is executed. |
2493 | -// |
2494 | -// You can see samples/sample7_unittest.cc and samples/sample8_unittest.cc |
2495 | -// for more examples. |
2496 | -// |
2497 | -// In the future, we plan to publish the API for defining new parameter |
2498 | -// generators. But for now this interface remains part of the internal |
2499 | -// implementation and is subject to change. |
2500 | -// |
2501 | -// |
2502 | -// A parameterized test fixture must be derived from testing::Test and from |
2503 | -// testing::WithParamInterface<T>, where T is the type of the parameter |
2504 | -// values. Inheriting from TestWithParam<T> satisfies that requirement because |
2505 | -// TestWithParam<T> inherits from both Test and WithParamInterface. In more |
2506 | -// complicated hierarchies, however, it is occasionally useful to inherit |
2507 | -// separately from Test and WithParamInterface. For example: |
2508 | - |
2509 | -class BaseTest : public ::testing::Test { |
2510 | - // You can inherit all the usual members for a non-parameterized test |
2511 | - // fixture here. |
2512 | -}; |
2513 | - |
2514 | -class DerivedTest : public BaseTest, public ::testing::WithParamInterface<int> { |
2515 | - // The usual test fixture members go here too. |
2516 | -}; |
2517 | - |
2518 | -TEST_F(BaseTest, HasFoo) { |
2519 | - // This is an ordinary non-parameterized test. |
2520 | -} |
2521 | - |
2522 | -TEST_P(DerivedTest, DoesBlah) { |
2523 | - // GetParam works just the same here as if you inherit from TestWithParam. |
2524 | - EXPECT_TRUE(foo.Blah(GetParam())); |
2525 | -} |
2526 | - |
2527 | -#endif // 0 |
2528 | - |
2529 | -#include "gtest/internal/gtest-port.h" |
2530 | - |
2531 | -#if !GTEST_OS_SYMBIAN |
2532 | -# include <utility> |
2533 | -#endif |
2534 | - |
2535 | -// scripts/fuse_gtest.py depends on gtest's own header being #included |
2536 | -// *unconditionally*. Therefore these #includes cannot be moved |
2537 | -// inside #if GTEST_HAS_PARAM_TEST. |
2538 | -#include "gtest/internal/gtest-internal.h" |
2539 | -#include "gtest/internal/gtest-param-util.h" |
2540 | -#include "gtest/internal/gtest-param-util-generated.h" |
2541 | - |
2542 | -#if GTEST_HAS_PARAM_TEST |
2543 | - |
2544 | -namespace testing { |
2545 | - |
2546 | -// Functions producing parameter generators. |
2547 | -// |
2548 | -// Google Test uses these generators to produce parameters for value- |
2549 | -// parameterized tests. When a parameterized test case is instantiated |
2550 | -// with a particular generator, Google Test creates and runs tests |
2551 | -// for each element in the sequence produced by the generator. |
2552 | -// |
2553 | -// In the following sample, tests from test case FooTest are instantiated |
2554 | -// each three times with parameter values 3, 5, and 8: |
2555 | -// |
2556 | -// class FooTest : public TestWithParam<int> { ... }; |
2557 | -// |
2558 | -// TEST_P(FooTest, TestThis) { |
2559 | -// } |
2560 | -// TEST_P(FooTest, TestThat) { |
2561 | -// } |
2562 | -// INSTANTIATE_TEST_CASE_P(TestSequence, FooTest, Values(3, 5, 8)); |
2563 | -// |
2564 | - |
2565 | -// Range() returns generators providing sequences of values in a range. |
2566 | -// |
2567 | -// Synopsis: |
2568 | -// Range(start, end) |
2569 | -// - returns a generator producing a sequence of values {start, start+1, |
2570 | -// start+2, ..., }. |
2571 | -// Range(start, end, step) |
2572 | -// - returns a generator producing a sequence of values {start, start+step, |
2573 | -// start+step+step, ..., }. |
2574 | -// Notes: |
2575 | -// * The generated sequences never include end. For example, Range(1, 5) |
2576 | -// returns a generator producing a sequence {1, 2, 3, 4}. Range(1, 9, 2) |
2577 | -// returns a generator producing {1, 3, 5, 7}. |
2578 | -// * start and end must have the same type. That type may be any integral or |
2579 | -// floating-point type or a user defined type satisfying these conditions: |
2580 | -// * It must be assignable (have operator=() defined). |
2581 | -// * It must have operator+() (operator+(int-compatible type) for |
2582 | -// two-operand version). |
2583 | -// * It must have operator<() defined. |
2584 | -// Elements in the resulting sequences will also have that type. |
2585 | -// * Condition start < end must be satisfied in order for resulting sequences |
2586 | -// to contain any elements. |
2587 | -// |
2588 | -template <typename T, typename IncrementT> |
2589 | -internal::ParamGenerator<T> Range(T start, T end, IncrementT step) { |
2590 | - return internal::ParamGenerator<T>( |
2591 | - new internal::RangeGenerator<T, IncrementT>(start, end, step)); |
2592 | -} |
2593 | - |
2594 | -template <typename T> |
2595 | -internal::ParamGenerator<T> Range(T start, T end) { |
2596 | - return Range(start, end, 1); |
2597 | -} |
2598 | - |
2599 | -// ValuesIn() function allows generation of tests with parameters coming from |
2600 | -// a container. |
2601 | -// |
2602 | -// Synopsis: |
2603 | -// ValuesIn(const T (&array)[N]) |
2604 | -// - returns a generator producing sequences with elements from |
2605 | -// a C-style array. |
2606 | -// ValuesIn(const Container& container) |
2607 | -// - returns a generator producing sequences with elements from |
2608 | -// an STL-style container. |
2609 | -// ValuesIn(Iterator begin, Iterator end) |
2610 | -// - returns a generator producing sequences with elements from |
2611 | -// a range [begin, end) defined by a pair of STL-style iterators. These |
2612 | -// iterators can also be plain C pointers. |
2613 | -// |
2614 | -// Please note that ValuesIn copies the values from the containers |
2615 | -// passed in and keeps them to generate tests in RUN_ALL_TESTS(). |
2616 | -// |
2617 | -// Examples: |
2618 | -// |
2619 | -// This instantiates tests from test case StringTest |
2620 | -// each with C-string values of "foo", "bar", and "baz": |
2621 | -// |
2622 | -// const char* strings[] = {"foo", "bar", "baz"}; |
2623 | -// INSTANTIATE_TEST_CASE_P(StringSequence, SrtingTest, ValuesIn(strings)); |
2624 | -// |
2625 | -// This instantiates tests from test case StlStringTest |
2626 | -// each with STL strings with values "a" and "b": |
2627 | -// |
2628 | -// ::std::vector< ::std::string> GetParameterStrings() { |
2629 | -// ::std::vector< ::std::string> v; |
2630 | -// v.push_back("a"); |
2631 | -// v.push_back("b"); |
2632 | -// return v; |
2633 | -// } |
2634 | -// |
2635 | -// INSTANTIATE_TEST_CASE_P(CharSequence, |
2636 | -// StlStringTest, |
2637 | -// ValuesIn(GetParameterStrings())); |
2638 | -// |
2639 | -// |
2640 | -// This will also instantiate tests from CharTest |
2641 | -// each with parameter values 'a' and 'b': |
2642 | -// |
2643 | -// ::std::list<char> GetParameterChars() { |
2644 | -// ::std::list<char> list; |
2645 | -// list.push_back('a'); |
2646 | -// list.push_back('b'); |
2647 | -// return list; |
2648 | -// } |
2649 | -// ::std::list<char> l = GetParameterChars(); |
2650 | -// INSTANTIATE_TEST_CASE_P(CharSequence2, |
2651 | -// CharTest, |
2652 | -// ValuesIn(l.begin(), l.end())); |
2653 | -// |
2654 | -template <typename ForwardIterator> |
2655 | -internal::ParamGenerator< |
2656 | - typename ::testing::internal::IteratorTraits<ForwardIterator>::value_type> |
2657 | -ValuesIn(ForwardIterator begin, ForwardIterator end) { |
2658 | - typedef typename ::testing::internal::IteratorTraits<ForwardIterator> |
2659 | - ::value_type ParamType; |
2660 | - return internal::ParamGenerator<ParamType>( |
2661 | - new internal::ValuesInIteratorRangeGenerator<ParamType>(begin, end)); |
2662 | -} |
2663 | - |
2664 | -template <typename T, size_t N> |
2665 | -internal::ParamGenerator<T> ValuesIn(const T (&array)[N]) { |
2666 | - return ValuesIn(array, array + N); |
2667 | -} |
2668 | - |
2669 | -template <class Container> |
2670 | -internal::ParamGenerator<typename Container::value_type> ValuesIn( |
2671 | - const Container& container) { |
2672 | - return ValuesIn(container.begin(), container.end()); |
2673 | -} |
2674 | - |
2675 | -// Values() allows generating tests from explicitly specified list of |
2676 | -// parameters. |
2677 | -// |
2678 | -// Synopsis: |
2679 | -// Values(T v1, T v2, ..., T vN) |
2680 | -// - returns a generator producing sequences with elements v1, v2, ..., vN. |
2681 | -// |
2682 | -// For example, this instantiates tests from test case BarTest each |
2683 | -// with values "one", "two", and "three": |
2684 | -// |
2685 | -// INSTANTIATE_TEST_CASE_P(NumSequence, BarTest, Values("one", "two", "three")); |
2686 | -// |
2687 | -// This instantiates tests from test case BazTest each with values 1, 2, 3.5. |
2688 | -// The exact type of values will depend on the type of parameter in BazTest. |
2689 | -// |
2690 | -// INSTANTIATE_TEST_CASE_P(FloatingNumbers, BazTest, Values(1, 2, 3.5)); |
2691 | -// |
2692 | -// Currently, Values() supports from 1 to 50 parameters. |
2693 | -// |
2694 | -template <typename T1> |
2695 | -internal::ValueArray1<T1> Values(T1 v1) { |
2696 | - return internal::ValueArray1<T1>(v1); |
2697 | -} |
2698 | - |
2699 | -template <typename T1, typename T2> |
2700 | -internal::ValueArray2<T1, T2> Values(T1 v1, T2 v2) { |
2701 | - return internal::ValueArray2<T1, T2>(v1, v2); |
2702 | -} |
2703 | - |
2704 | -template <typename T1, typename T2, typename T3> |
2705 | -internal::ValueArray3<T1, T2, T3> Values(T1 v1, T2 v2, T3 v3) { |
2706 | - return internal::ValueArray3<T1, T2, T3>(v1, v2, v3); |
2707 | -} |
2708 | - |
2709 | -template <typename T1, typename T2, typename T3, typename T4> |
2710 | -internal::ValueArray4<T1, T2, T3, T4> Values(T1 v1, T2 v2, T3 v3, T4 v4) { |
2711 | - return internal::ValueArray4<T1, T2, T3, T4>(v1, v2, v3, v4); |
2712 | -} |
2713 | - |
2714 | -template <typename T1, typename T2, typename T3, typename T4, typename T5> |
2715 | -internal::ValueArray5<T1, T2, T3, T4, T5> Values(T1 v1, T2 v2, T3 v3, T4 v4, |
2716 | - T5 v5) { |
2717 | - return internal::ValueArray5<T1, T2, T3, T4, T5>(v1, v2, v3, v4, v5); |
2718 | -} |
2719 | - |
2720 | -template <typename T1, typename T2, typename T3, typename T4, typename T5, |
2721 | - typename T6> |
2722 | -internal::ValueArray6<T1, T2, T3, T4, T5, T6> Values(T1 v1, T2 v2, T3 v3, |
2723 | - T4 v4, T5 v5, T6 v6) { |
2724 | - return internal::ValueArray6<T1, T2, T3, T4, T5, T6>(v1, v2, v3, v4, v5, v6); |
2725 | -} |
2726 | - |
2727 | -template <typename T1, typename T2, typename T3, typename T4, typename T5, |
2728 | - typename T6, typename T7> |
2729 | -internal::ValueArray7<T1, T2, T3, T4, T5, T6, T7> Values(T1 v1, T2 v2, T3 v3, |
2730 | - T4 v4, T5 v5, T6 v6, T7 v7) { |
2731 | - return internal::ValueArray7<T1, T2, T3, T4, T5, T6, T7>(v1, v2, v3, v4, v5, |
2732 | - v6, v7); |
2733 | -} |
2734 | - |
2735 | -template <typename T1, typename T2, typename T3, typename T4, typename T5, |
2736 | - typename T6, typename T7, typename T8> |
2737 | -internal::ValueArray8<T1, T2, T3, T4, T5, T6, T7, T8> Values(T1 v1, T2 v2, |
2738 | - T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8) { |
2739 | - return internal::ValueArray8<T1, T2, T3, T4, T5, T6, T7, T8>(v1, v2, v3, v4, |
2740 | - v5, v6, v7, v8); |
2741 | -} |
2742 | - |
2743 | -template <typename T1, typename T2, typename T3, typename T4, typename T5, |
2744 | - typename T6, typename T7, typename T8, typename T9> |
2745 | -internal::ValueArray9<T1, T2, T3, T4, T5, T6, T7, T8, T9> Values(T1 v1, T2 v2, |
2746 | - T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9) { |
2747 | - return internal::ValueArray9<T1, T2, T3, T4, T5, T6, T7, T8, T9>(v1, v2, v3, |
2748 | - v4, v5, v6, v7, v8, v9); |
2749 | -} |
2750 | - |
2751 | -template <typename T1, typename T2, typename T3, typename T4, typename T5, |
2752 | - typename T6, typename T7, typename T8, typename T9, typename T10> |
2753 | -internal::ValueArray10<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10> Values(T1 v1, |
2754 | - T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10) { |
2755 | - return internal::ValueArray10<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>(v1, |
2756 | - v2, v3, v4, v5, v6, v7, v8, v9, v10); |
2757 | -} |
2758 | - |
2759 | -template <typename T1, typename T2, typename T3, typename T4, typename T5, |
2760 | - typename T6, typename T7, typename T8, typename T9, typename T10, |
2761 | - typename T11> |
2762 | -internal::ValueArray11<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, |
2763 | - T11> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, |
2764 | - T10 v10, T11 v11) { |
2765 | - return internal::ValueArray11<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, |
2766 | - T11>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11); |
2767 | -} |
2768 | - |
2769 | -template <typename T1, typename T2, typename T3, typename T4, typename T5, |
2770 | - typename T6, typename T7, typename T8, typename T9, typename T10, |
2771 | - typename T11, typename T12> |
2772 | -internal::ValueArray12<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, |
2773 | - T12> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, |
2774 | - T10 v10, T11 v11, T12 v12) { |
2775 | - return internal::ValueArray12<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, |
2776 | - T12>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12); |
2777 | -} |
2778 | - |
2779 | -template <typename T1, typename T2, typename T3, typename T4, typename T5, |
2780 | - typename T6, typename T7, typename T8, typename T9, typename T10, |
2781 | - typename T11, typename T12, typename T13> |
2782 | -internal::ValueArray13<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, |
2783 | - T13> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, |
2784 | - T10 v10, T11 v11, T12 v12, T13 v13) { |
2785 | - return internal::ValueArray13<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, |
2786 | - T12, T13>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13); |
2787 | -} |
2788 | - |
2789 | -template <typename T1, typename T2, typename T3, typename T4, typename T5, |
2790 | - typename T6, typename T7, typename T8, typename T9, typename T10, |
2791 | - typename T11, typename T12, typename T13, typename T14> |
2792 | -internal::ValueArray14<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, |
2793 | - T14> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, |
2794 | - T10 v10, T11 v11, T12 v12, T13 v13, T14 v14) { |
2795 | - return internal::ValueArray14<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, |
2796 | - T12, T13, T14>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, |
2797 | - v14); |
2798 | -} |
2799 | - |
2800 | -template <typename T1, typename T2, typename T3, typename T4, typename T5, |
2801 | - typename T6, typename T7, typename T8, typename T9, typename T10, |
2802 | - typename T11, typename T12, typename T13, typename T14, typename T15> |
2803 | -internal::ValueArray15<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, |
2804 | - T14, T15> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, |
2805 | - T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15) { |
2806 | - return internal::ValueArray15<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, |
2807 | - T12, T13, T14, T15>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, |
2808 | - v13, v14, v15); |
2809 | -} |
2810 | - |
2811 | -template <typename T1, typename T2, typename T3, typename T4, typename T5, |
2812 | - typename T6, typename T7, typename T8, typename T9, typename T10, |
2813 | - typename T11, typename T12, typename T13, typename T14, typename T15, |
2814 | - typename T16> |
2815 | -internal::ValueArray16<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, |
2816 | - T14, T15, T16> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, |
2817 | - T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, |
2818 | - T16 v16) { |
2819 | - return internal::ValueArray16<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, |
2820 | - T12, T13, T14, T15, T16>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, |
2821 | - v12, v13, v14, v15, v16); |
2822 | -} |
2823 | - |
2824 | -template <typename T1, typename T2, typename T3, typename T4, typename T5, |
2825 | - typename T6, typename T7, typename T8, typename T9, typename T10, |
2826 | - typename T11, typename T12, typename T13, typename T14, typename T15, |
2827 | - typename T16, typename T17> |
2828 | -internal::ValueArray17<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, |
2829 | - T14, T15, T16, T17> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, |
2830 | - T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, |
2831 | - T16 v16, T17 v17) { |
2832 | - return internal::ValueArray17<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, |
2833 | - T12, T13, T14, T15, T16, T17>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, |
2834 | - v11, v12, v13, v14, v15, v16, v17); |
2835 | -} |
2836 | - |
2837 | -template <typename T1, typename T2, typename T3, typename T4, typename T5, |
2838 | - typename T6, typename T7, typename T8, typename T9, typename T10, |
2839 | - typename T11, typename T12, typename T13, typename T14, typename T15, |
2840 | - typename T16, typename T17, typename T18> |
2841 | -internal::ValueArray18<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, |
2842 | - T14, T15, T16, T17, T18> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, |
2843 | - T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, |
2844 | - T16 v16, T17 v17, T18 v18) { |
2845 | - return internal::ValueArray18<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, |
2846 | - T12, T13, T14, T15, T16, T17, T18>(v1, v2, v3, v4, v5, v6, v7, v8, v9, |
2847 | - v10, v11, v12, v13, v14, v15, v16, v17, v18); |
2848 | -} |
2849 | - |
2850 | -template <typename T1, typename T2, typename T3, typename T4, typename T5, |
2851 | - typename T6, typename T7, typename T8, typename T9, typename T10, |
2852 | - typename T11, typename T12, typename T13, typename T14, typename T15, |
2853 | - typename T16, typename T17, typename T18, typename T19> |
2854 | -internal::ValueArray19<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, |
2855 | - T14, T15, T16, T17, T18, T19> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, |
2856 | - T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, |
2857 | - T15 v15, T16 v16, T17 v17, T18 v18, T19 v19) { |
2858 | - return internal::ValueArray19<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, |
2859 | - T12, T13, T14, T15, T16, T17, T18, T19>(v1, v2, v3, v4, v5, v6, v7, v8, |
2860 | - v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19); |
2861 | -} |
2862 | - |
2863 | -template <typename T1, typename T2, typename T3, typename T4, typename T5, |
2864 | - typename T6, typename T7, typename T8, typename T9, typename T10, |
2865 | - typename T11, typename T12, typename T13, typename T14, typename T15, |
2866 | - typename T16, typename T17, typename T18, typename T19, typename T20> |
2867 | -internal::ValueArray20<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, |
2868 | - T14, T15, T16, T17, T18, T19, T20> Values(T1 v1, T2 v2, T3 v3, T4 v4, |
2869 | - T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, |
2870 | - T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20) { |
2871 | - return internal::ValueArray20<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, |
2872 | - T12, T13, T14, T15, T16, T17, T18, T19, T20>(v1, v2, v3, v4, v5, v6, v7, |
2873 | - v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20); |
2874 | -} |
2875 | - |
2876 | -template <typename T1, typename T2, typename T3, typename T4, typename T5, |
2877 | - typename T6, typename T7, typename T8, typename T9, typename T10, |
2878 | - typename T11, typename T12, typename T13, typename T14, typename T15, |
2879 | - typename T16, typename T17, typename T18, typename T19, typename T20, |
2880 | - typename T21> |
2881 | -internal::ValueArray21<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, |
2882 | - T14, T15, T16, T17, T18, T19, T20, T21> Values(T1 v1, T2 v2, T3 v3, T4 v4, |
2883 | - T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, |
2884 | - T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21) { |
2885 | - return internal::ValueArray21<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, |
2886 | - T12, T13, T14, T15, T16, T17, T18, T19, T20, T21>(v1, v2, v3, v4, v5, v6, |
2887 | - v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21); |
2888 | -} |
2889 | - |
2890 | -template <typename T1, typename T2, typename T3, typename T4, typename T5, |
2891 | - typename T6, typename T7, typename T8, typename T9, typename T10, |
2892 | - typename T11, typename T12, typename T13, typename T14, typename T15, |
2893 | - typename T16, typename T17, typename T18, typename T19, typename T20, |
2894 | - typename T21, typename T22> |
2895 | -internal::ValueArray22<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, |
2896 | - T14, T15, T16, T17, T18, T19, T20, T21, T22> Values(T1 v1, T2 v2, T3 v3, |
2897 | - T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, |
2898 | - T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, |
2899 | - T21 v21, T22 v22) { |
2900 | - return internal::ValueArray22<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, |
2901 | - T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22>(v1, v2, v3, v4, |
2902 | - v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, |
2903 | - v20, v21, v22); |
2904 | -} |
2905 | - |
2906 | -template <typename T1, typename T2, typename T3, typename T4, typename T5, |
2907 | - typename T6, typename T7, typename T8, typename T9, typename T10, |
2908 | - typename T11, typename T12, typename T13, typename T14, typename T15, |
2909 | - typename T16, typename T17, typename T18, typename T19, typename T20, |
2910 | - typename T21, typename T22, typename T23> |
2911 | -internal::ValueArray23<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, |
2912 | - T14, T15, T16, T17, T18, T19, T20, T21, T22, T23> Values(T1 v1, T2 v2, |
2913 | - T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, |
2914 | - T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, |
2915 | - T21 v21, T22 v22, T23 v23) { |
2916 | - return internal::ValueArray23<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, |
2917 | - T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23>(v1, v2, v3, |
2918 | - v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, |
2919 | - v20, v21, v22, v23); |
2920 | -} |
2921 | - |
2922 | -template <typename T1, typename T2, typename T3, typename T4, typename T5, |
2923 | - typename T6, typename T7, typename T8, typename T9, typename T10, |
2924 | - typename T11, typename T12, typename T13, typename T14, typename T15, |
2925 | - typename T16, typename T17, typename T18, typename T19, typename T20, |
2926 | - typename T21, typename T22, typename T23, typename T24> |
2927 | -internal::ValueArray24<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, |
2928 | - T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24> Values(T1 v1, T2 v2, |
2929 | - T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, |
2930 | - T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, |
2931 | - T21 v21, T22 v22, T23 v23, T24 v24) { |
2932 | - return internal::ValueArray24<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, |
2933 | - T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24>(v1, v2, |
2934 | - v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, |
2935 | - v19, v20, v21, v22, v23, v24); |
2936 | -} |
2937 | - |
2938 | -template <typename T1, typename T2, typename T3, typename T4, typename T5, |
2939 | - typename T6, typename T7, typename T8, typename T9, typename T10, |
2940 | - typename T11, typename T12, typename T13, typename T14, typename T15, |
2941 | - typename T16, typename T17, typename T18, typename T19, typename T20, |
2942 | - typename T21, typename T22, typename T23, typename T24, typename T25> |
2943 | -internal::ValueArray25<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, |
2944 | - T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25> Values(T1 v1, |
2945 | - T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, |
2946 | - T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, |
2947 | - T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25) { |
2948 | - return internal::ValueArray25<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, |
2949 | - T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25>(v1, |
2950 | - v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, |
2951 | - v18, v19, v20, v21, v22, v23, v24, v25); |
2952 | -} |
2953 | - |
2954 | -template <typename T1, typename T2, typename T3, typename T4, typename T5, |
2955 | - typename T6, typename T7, typename T8, typename T9, typename T10, |
2956 | - typename T11, typename T12, typename T13, typename T14, typename T15, |
2957 | - typename T16, typename T17, typename T18, typename T19, typename T20, |
2958 | - typename T21, typename T22, typename T23, typename T24, typename T25, |
2959 | - typename T26> |
2960 | -internal::ValueArray26<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, |
2961 | - T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, |
2962 | - T26> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, |
2963 | - T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, |
2964 | - T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, |
2965 | - T26 v26) { |
2966 | - return internal::ValueArray26<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, |
2967 | - T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, |
2968 | - T26>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, |
2969 | - v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26); |
2970 | -} |
2971 | - |
2972 | -template <typename T1, typename T2, typename T3, typename T4, typename T5, |
2973 | - typename T6, typename T7, typename T8, typename T9, typename T10, |
2974 | - typename T11, typename T12, typename T13, typename T14, typename T15, |
2975 | - typename T16, typename T17, typename T18, typename T19, typename T20, |
2976 | - typename T21, typename T22, typename T23, typename T24, typename T25, |
2977 | - typename T26, typename T27> |
2978 | -internal::ValueArray27<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, |
2979 | - T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, |
2980 | - T27> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, |
2981 | - T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, |
2982 | - T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, |
2983 | - T26 v26, T27 v27) { |
2984 | - return internal::ValueArray27<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, |
2985 | - T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, |
2986 | - T26, T27>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, |
2987 | - v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27); |
2988 | -} |
2989 | - |
2990 | -template <typename T1, typename T2, typename T3, typename T4, typename T5, |
2991 | - typename T6, typename T7, typename T8, typename T9, typename T10, |
2992 | - typename T11, typename T12, typename T13, typename T14, typename T15, |
2993 | - typename T16, typename T17, typename T18, typename T19, typename T20, |
2994 | - typename T21, typename T22, typename T23, typename T24, typename T25, |
2995 | - typename T26, typename T27, typename T28> |
2996 | -internal::ValueArray28<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, |
2997 | - T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, |
2998 | - T28> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, |
2999 | - T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, |
3000 | - T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, |
3001 | - T26 v26, T27 v27, T28 v28) { |
3002 | - return internal::ValueArray28<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, |
3003 | - T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, |
3004 | - T26, T27, T28>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, |
3005 | - v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, |
3006 | - v28); |
3007 | -} |
3008 | - |
3009 | -template <typename T1, typename T2, typename T3, typename T4, typename T5, |
3010 | - typename T6, typename T7, typename T8, typename T9, typename T10, |
3011 | - typename T11, typename T12, typename T13, typename T14, typename T15, |
3012 | - typename T16, typename T17, typename T18, typename T19, typename T20, |
3013 | - typename T21, typename T22, typename T23, typename T24, typename T25, |
3014 | - typename T26, typename T27, typename T28, typename T29> |
3015 | -internal::ValueArray29<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, |
3016 | - T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, |
3017 | - T29> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, |
3018 | - T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, |
3019 | - T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, |
3020 | - T26 v26, T27 v27, T28 v28, T29 v29) { |
3021 | - return internal::ValueArray29<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, |
3022 | - T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, |
3023 | - T26, T27, T28, T29>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, |
3024 | - v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, |
3025 | - v27, v28, v29); |
3026 | -} |
3027 | - |
3028 | -template <typename T1, typename T2, typename T3, typename T4, typename T5, |
3029 | - typename T6, typename T7, typename T8, typename T9, typename T10, |
3030 | - typename T11, typename T12, typename T13, typename T14, typename T15, |
3031 | - typename T16, typename T17, typename T18, typename T19, typename T20, |
3032 | - typename T21, typename T22, typename T23, typename T24, typename T25, |
3033 | - typename T26, typename T27, typename T28, typename T29, typename T30> |
3034 | -internal::ValueArray30<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, |
3035 | - T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, |
3036 | - T29, T30> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, |
3037 | - T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, |
3038 | - T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, |
3039 | - T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30) { |
3040 | - return internal::ValueArray30<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, |
3041 | - T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, |
3042 | - T26, T27, T28, T29, T30>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, |
3043 | - v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, |
3044 | - v26, v27, v28, v29, v30); |
3045 | -} |
3046 | - |
3047 | -template <typename T1, typename T2, typename T3, typename T4, typename T5, |
3048 | - typename T6, typename T7, typename T8, typename T9, typename T10, |
3049 | - typename T11, typename T12, typename T13, typename T14, typename T15, |
3050 | - typename T16, typename T17, typename T18, typename T19, typename T20, |
3051 | - typename T21, typename T22, typename T23, typename T24, typename T25, |
3052 | - typename T26, typename T27, typename T28, typename T29, typename T30, |
3053 | - typename T31> |
3054 | -internal::ValueArray31<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, |
3055 | - T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, |
3056 | - T29, T30, T31> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, |
3057 | - T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, |
3058 | - T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, |
3059 | - T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31) { |
3060 | - return internal::ValueArray31<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, |
3061 | - T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, |
3062 | - T26, T27, T28, T29, T30, T31>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, |
3063 | - v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, |
3064 | - v25, v26, v27, v28, v29, v30, v31); |
3065 | -} |
3066 | - |
3067 | -template <typename T1, typename T2, typename T3, typename T4, typename T5, |
3068 | - typename T6, typename T7, typename T8, typename T9, typename T10, |
3069 | - typename T11, typename T12, typename T13, typename T14, typename T15, |
3070 | - typename T16, typename T17, typename T18, typename T19, typename T20, |
3071 | - typename T21, typename T22, typename T23, typename T24, typename T25, |
3072 | - typename T26, typename T27, typename T28, typename T29, typename T30, |
3073 | - typename T31, typename T32> |
3074 | -internal::ValueArray32<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, |
3075 | - T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, |
3076 | - T29, T30, T31, T32> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, |
3077 | - T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, |
3078 | - T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, |
3079 | - T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, |
3080 | - T32 v32) { |
3081 | - return internal::ValueArray32<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, |
3082 | - T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, |
3083 | - T26, T27, T28, T29, T30, T31, T32>(v1, v2, v3, v4, v5, v6, v7, v8, v9, |
3084 | - v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, |
3085 | - v24, v25, v26, v27, v28, v29, v30, v31, v32); |
3086 | -} |
3087 | - |
3088 | -template <typename T1, typename T2, typename T3, typename T4, typename T5, |
3089 | - typename T6, typename T7, typename T8, typename T9, typename T10, |
3090 | - typename T11, typename T12, typename T13, typename T14, typename T15, |
3091 | - typename T16, typename T17, typename T18, typename T19, typename T20, |
3092 | - typename T21, typename T22, typename T23, typename T24, typename T25, |
3093 | - typename T26, typename T27, typename T28, typename T29, typename T30, |
3094 | - typename T31, typename T32, typename T33> |
3095 | -internal::ValueArray33<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, |
3096 | - T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, |
3097 | - T29, T30, T31, T32, T33> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, |
3098 | - T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, |
3099 | - T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, |
3100 | - T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, |
3101 | - T32 v32, T33 v33) { |
3102 | - return internal::ValueArray33<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, |
3103 | - T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, |
3104 | - T26, T27, T28, T29, T30, T31, T32, T33>(v1, v2, v3, v4, v5, v6, v7, v8, |
3105 | - v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, |
3106 | - v24, v25, v26, v27, v28, v29, v30, v31, v32, v33); |
3107 | -} |
3108 | - |
3109 | -template <typename T1, typename T2, typename T3, typename T4, typename T5, |
3110 | - typename T6, typename T7, typename T8, typename T9, typename T10, |
3111 | - typename T11, typename T12, typename T13, typename T14, typename T15, |
3112 | - typename T16, typename T17, typename T18, typename T19, typename T20, |
3113 | - typename T21, typename T22, typename T23, typename T24, typename T25, |
3114 | - typename T26, typename T27, typename T28, typename T29, typename T30, |
3115 | - typename T31, typename T32, typename T33, typename T34> |
3116 | -internal::ValueArray34<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, |
3117 | - T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, |
3118 | - T29, T30, T31, T32, T33, T34> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, |
3119 | - T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, |
3120 | - T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, |
3121 | - T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, |
3122 | - T31 v31, T32 v32, T33 v33, T34 v34) { |
3123 | - return internal::ValueArray34<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, |
3124 | - T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, |
3125 | - T26, T27, T28, T29, T30, T31, T32, T33, T34>(v1, v2, v3, v4, v5, v6, v7, |
3126 | - v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, |
3127 | - v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34); |
3128 | -} |
3129 | - |
3130 | -template <typename T1, typename T2, typename T3, typename T4, typename T5, |
3131 | - typename T6, typename T7, typename T8, typename T9, typename T10, |
3132 | - typename T11, typename T12, typename T13, typename T14, typename T15, |
3133 | - typename T16, typename T17, typename T18, typename T19, typename T20, |
3134 | - typename T21, typename T22, typename T23, typename T24, typename T25, |
3135 | - typename T26, typename T27, typename T28, typename T29, typename T30, |
3136 | - typename T31, typename T32, typename T33, typename T34, typename T35> |
3137 | -internal::ValueArray35<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, |
3138 | - T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, |
3139 | - T29, T30, T31, T32, T33, T34, T35> Values(T1 v1, T2 v2, T3 v3, T4 v4, |
3140 | - T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, |
3141 | - T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, |
3142 | - T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, |
3143 | - T30 v30, T31 v31, T32 v32, T33 v33, T34 v34, T35 v35) { |
3144 | - return internal::ValueArray35<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, |
3145 | - T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, |
3146 | - T26, T27, T28, T29, T30, T31, T32, T33, T34, T35>(v1, v2, v3, v4, v5, v6, |
3147 | - v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, |
3148 | - v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35); |
3149 | -} |
3150 | - |
3151 | -template <typename T1, typename T2, typename T3, typename T4, typename T5, |
3152 | - typename T6, typename T7, typename T8, typename T9, typename T10, |
3153 | - typename T11, typename T12, typename T13, typename T14, typename T15, |
3154 | - typename T16, typename T17, typename T18, typename T19, typename T20, |
3155 | - typename T21, typename T22, typename T23, typename T24, typename T25, |
3156 | - typename T26, typename T27, typename T28, typename T29, typename T30, |
3157 | - typename T31, typename T32, typename T33, typename T34, typename T35, |
3158 | - typename T36> |
3159 | -internal::ValueArray36<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, |
3160 | - T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, |
3161 | - T29, T30, T31, T32, T33, T34, T35, T36> Values(T1 v1, T2 v2, T3 v3, T4 v4, |
3162 | - T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, |
3163 | - T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, |
3164 | - T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, |
3165 | - T30 v30, T31 v31, T32 v32, T33 v33, T34 v34, T35 v35, T36 v36) { |
3166 | - return internal::ValueArray36<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, |
3167 | - T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, |
3168 | - T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36>(v1, v2, v3, v4, |
3169 | - v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, |
3170 | - v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, |
3171 | - v34, v35, v36); |
3172 | -} |
3173 | - |
3174 | -template <typename T1, typename T2, typename T3, typename T4, typename T5, |
3175 | - typename T6, typename T7, typename T8, typename T9, typename T10, |
3176 | - typename T11, typename T12, typename T13, typename T14, typename T15, |
3177 | - typename T16, typename T17, typename T18, typename T19, typename T20, |
3178 | - typename T21, typename T22, typename T23, typename T24, typename T25, |
3179 | - typename T26, typename T27, typename T28, typename T29, typename T30, |
3180 | - typename T31, typename T32, typename T33, typename T34, typename T35, |
3181 | - typename T36, typename T37> |
3182 | -internal::ValueArray37<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, |
3183 | - T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, |
3184 | - T29, T30, T31, T32, T33, T34, T35, T36, T37> Values(T1 v1, T2 v2, T3 v3, |
3185 | - T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, |
3186 | - T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, |
3187 | - T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, |
3188 | - T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, T34 v34, T35 v35, T36 v36, |
3189 | - T37 v37) { |
3190 | - return internal::ValueArray37<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, |
3191 | - T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, |
3192 | - T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37>(v1, v2, v3, |
3193 | - v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, |
3194 | - v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, |
3195 | - v34, v35, v36, v37); |
3196 | -} |
3197 | - |
3198 | -template <typename T1, typename T2, typename T3, typename T4, typename T5, |
3199 | - typename T6, typename T7, typename T8, typename T9, typename T10, |
3200 | - typename T11, typename T12, typename T13, typename T14, typename T15, |
3201 | - typename T16, typename T17, typename T18, typename T19, typename T20, |
3202 | - typename T21, typename T22, typename T23, typename T24, typename T25, |
3203 | - typename T26, typename T27, typename T28, typename T29, typename T30, |
3204 | - typename T31, typename T32, typename T33, typename T34, typename T35, |
3205 | - typename T36, typename T37, typename T38> |
3206 | -internal::ValueArray38<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, |
3207 | - T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, |
3208 | - T29, T30, T31, T32, T33, T34, T35, T36, T37, T38> Values(T1 v1, T2 v2, |
3209 | - T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, |
3210 | - T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, |
3211 | - T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, |
3212 | - T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, T34 v34, T35 v35, T36 v36, |
3213 | - T37 v37, T38 v38) { |
3214 | - return internal::ValueArray38<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, |
3215 | - T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, |
3216 | - T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38>(v1, v2, |
3217 | - v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, |
3218 | - v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, |
3219 | - v33, v34, v35, v36, v37, v38); |
3220 | -} |
3221 | - |
3222 | -template <typename T1, typename T2, typename T3, typename T4, typename T5, |
3223 | - typename T6, typename T7, typename T8, typename T9, typename T10, |
3224 | - typename T11, typename T12, typename T13, typename T14, typename T15, |
3225 | - typename T16, typename T17, typename T18, typename T19, typename T20, |
3226 | - typename T21, typename T22, typename T23, typename T24, typename T25, |
3227 | - typename T26, typename T27, typename T28, typename T29, typename T30, |
3228 | - typename T31, typename T32, typename T33, typename T34, typename T35, |
3229 | - typename T36, typename T37, typename T38, typename T39> |
3230 | -internal::ValueArray39<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, |
3231 | - T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, |
3232 | - T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39> Values(T1 v1, T2 v2, |
3233 | - T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, |
3234 | - T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, |
3235 | - T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, |
3236 | - T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, T34 v34, T35 v35, T36 v36, |
3237 | - T37 v37, T38 v38, T39 v39) { |
3238 | - return internal::ValueArray39<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, |
3239 | - T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, |
3240 | - T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39>(v1, |
3241 | - v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, |
3242 | - v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, |
3243 | - v32, v33, v34, v35, v36, v37, v38, v39); |
3244 | -} |
3245 | - |
3246 | -template <typename T1, typename T2, typename T3, typename T4, typename T5, |
3247 | - typename T6, typename T7, typename T8, typename T9, typename T10, |
3248 | - typename T11, typename T12, typename T13, typename T14, typename T15, |
3249 | - typename T16, typename T17, typename T18, typename T19, typename T20, |
3250 | - typename T21, typename T22, typename T23, typename T24, typename T25, |
3251 | - typename T26, typename T27, typename T28, typename T29, typename T30, |
3252 | - typename T31, typename T32, typename T33, typename T34, typename T35, |
3253 | - typename T36, typename T37, typename T38, typename T39, typename T40> |
3254 | -internal::ValueArray40<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, |
3255 | - T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, |
3256 | - T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40> Values(T1 v1, |
3257 | - T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, |
3258 | - T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, |
3259 | - T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, |
3260 | - T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, T34 v34, T35 v35, |
3261 | - T36 v36, T37 v37, T38 v38, T39 v39, T40 v40) { |
3262 | - return internal::ValueArray40<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, |
3263 | - T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, |
3264 | - T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, |
3265 | - T40>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, |
3266 | - v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, |
3267 | - v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40); |
3268 | -} |
3269 | - |
3270 | -template <typename T1, typename T2, typename T3, typename T4, typename T5, |
3271 | - typename T6, typename T7, typename T8, typename T9, typename T10, |
3272 | - typename T11, typename T12, typename T13, typename T14, typename T15, |
3273 | - typename T16, typename T17, typename T18, typename T19, typename T20, |
3274 | - typename T21, typename T22, typename T23, typename T24, typename T25, |
3275 | - typename T26, typename T27, typename T28, typename T29, typename T30, |
3276 | - typename T31, typename T32, typename T33, typename T34, typename T35, |
3277 | - typename T36, typename T37, typename T38, typename T39, typename T40, |
3278 | - typename T41> |
3279 | -internal::ValueArray41<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, |
3280 | - T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, |
3281 | - T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, |
3282 | - T41> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, |
3283 | - T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, |
3284 | - T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, |
3285 | - T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, |
3286 | - T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41) { |
3287 | - return internal::ValueArray41<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, |
3288 | - T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, |
3289 | - T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, |
3290 | - T40, T41>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, |
3291 | - v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, v28, |
3292 | - v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41); |
3293 | -} |
3294 | - |
3295 | -template <typename T1, typename T2, typename T3, typename T4, typename T5, |
3296 | - typename T6, typename T7, typename T8, typename T9, typename T10, |
3297 | - typename T11, typename T12, typename T13, typename T14, typename T15, |
3298 | - typename T16, typename T17, typename T18, typename T19, typename T20, |
3299 | - typename T21, typename T22, typename T23, typename T24, typename T25, |
3300 | - typename T26, typename T27, typename T28, typename T29, typename T30, |
3301 | - typename T31, typename T32, typename T33, typename T34, typename T35, |
3302 | - typename T36, typename T37, typename T38, typename T39, typename T40, |
3303 | - typename T41, typename T42> |
3304 | -internal::ValueArray42<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, |
3305 | - T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, |
3306 | - T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, |
3307 | - T42> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, |
3308 | - T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, |
3309 | - T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, |
3310 | - T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, |
3311 | - T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41, |
3312 | - T42 v42) { |
3313 | - return internal::ValueArray42<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, |
3314 | - T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, |
3315 | - T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, |
3316 | - T40, T41, T42>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, v13, |
3317 | - v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, v27, |
3318 | - v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, v41, |
3319 | - v42); |
3320 | -} |
3321 | - |
3322 | -template <typename T1, typename T2, typename T3, typename T4, typename T5, |
3323 | - typename T6, typename T7, typename T8, typename T9, typename T10, |
3324 | - typename T11, typename T12, typename T13, typename T14, typename T15, |
3325 | - typename T16, typename T17, typename T18, typename T19, typename T20, |
3326 | - typename T21, typename T22, typename T23, typename T24, typename T25, |
3327 | - typename T26, typename T27, typename T28, typename T29, typename T30, |
3328 | - typename T31, typename T32, typename T33, typename T34, typename T35, |
3329 | - typename T36, typename T37, typename T38, typename T39, typename T40, |
3330 | - typename T41, typename T42, typename T43> |
3331 | -internal::ValueArray43<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, |
3332 | - T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, |
3333 | - T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, |
3334 | - T43> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, |
3335 | - T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, |
3336 | - T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, |
3337 | - T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, |
3338 | - T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41, |
3339 | - T42 v42, T43 v43) { |
3340 | - return internal::ValueArray43<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, |
3341 | - T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, |
3342 | - T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, |
3343 | - T40, T41, T42, T43>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, v12, |
3344 | - v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, v26, |
3345 | - v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, v40, |
3346 | - v41, v42, v43); |
3347 | -} |
3348 | - |
3349 | -template <typename T1, typename T2, typename T3, typename T4, typename T5, |
3350 | - typename T6, typename T7, typename T8, typename T9, typename T10, |
3351 | - typename T11, typename T12, typename T13, typename T14, typename T15, |
3352 | - typename T16, typename T17, typename T18, typename T19, typename T20, |
3353 | - typename T21, typename T22, typename T23, typename T24, typename T25, |
3354 | - typename T26, typename T27, typename T28, typename T29, typename T30, |
3355 | - typename T31, typename T32, typename T33, typename T34, typename T35, |
3356 | - typename T36, typename T37, typename T38, typename T39, typename T40, |
3357 | - typename T41, typename T42, typename T43, typename T44> |
3358 | -internal::ValueArray44<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, |
3359 | - T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, |
3360 | - T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, |
3361 | - T44> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, |
3362 | - T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, T17 v17, |
3363 | - T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, T25 v25, |
3364 | - T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, T33 v33, |
3365 | - T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, T41 v41, |
3366 | - T42 v42, T43 v43, T44 v44) { |
3367 | - return internal::ValueArray44<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, |
3368 | - T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, |
3369 | - T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, |
3370 | - T40, T41, T42, T43, T44>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, v11, |
3371 | - v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, v25, |
3372 | - v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, v39, |
3373 | - v40, v41, v42, v43, v44); |
3374 | -} |
3375 | - |
3376 | -template <typename T1, typename T2, typename T3, typename T4, typename T5, |
3377 | - typename T6, typename T7, typename T8, typename T9, typename T10, |
3378 | - typename T11, typename T12, typename T13, typename T14, typename T15, |
3379 | - typename T16, typename T17, typename T18, typename T19, typename T20, |
3380 | - typename T21, typename T22, typename T23, typename T24, typename T25, |
3381 | - typename T26, typename T27, typename T28, typename T29, typename T30, |
3382 | - typename T31, typename T32, typename T33, typename T34, typename T35, |
3383 | - typename T36, typename T37, typename T38, typename T39, typename T40, |
3384 | - typename T41, typename T42, typename T43, typename T44, typename T45> |
3385 | -internal::ValueArray45<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, |
3386 | - T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, |
3387 | - T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, |
3388 | - T44, T45> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, T8 v8, |
3389 | - T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, T16 v16, |
3390 | - T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, T24 v24, |
3391 | - T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, T32 v32, |
3392 | - T33 v33, T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, T40 v40, |
3393 | - T41 v41, T42 v42, T43 v43, T44 v44, T45 v45) { |
3394 | - return internal::ValueArray45<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, |
3395 | - T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, |
3396 | - T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, |
3397 | - T40, T41, T42, T43, T44, T45>(v1, v2, v3, v4, v5, v6, v7, v8, v9, v10, |
3398 | - v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, v24, |
3399 | - v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, v38, |
3400 | - v39, v40, v41, v42, v43, v44, v45); |
3401 | -} |
3402 | - |
3403 | -template <typename T1, typename T2, typename T3, typename T4, typename T5, |
3404 | - typename T6, typename T7, typename T8, typename T9, typename T10, |
3405 | - typename T11, typename T12, typename T13, typename T14, typename T15, |
3406 | - typename T16, typename T17, typename T18, typename T19, typename T20, |
3407 | - typename T21, typename T22, typename T23, typename T24, typename T25, |
3408 | - typename T26, typename T27, typename T28, typename T29, typename T30, |
3409 | - typename T31, typename T32, typename T33, typename T34, typename T35, |
3410 | - typename T36, typename T37, typename T38, typename T39, typename T40, |
3411 | - typename T41, typename T42, typename T43, typename T44, typename T45, |
3412 | - typename T46> |
3413 | -internal::ValueArray46<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, |
3414 | - T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, |
3415 | - T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, |
3416 | - T44, T45, T46> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, |
3417 | - T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, |
3418 | - T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, |
3419 | - T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, |
3420 | - T32 v32, T33 v33, T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, |
3421 | - T40 v40, T41 v41, T42 v42, T43 v43, T44 v44, T45 v45, T46 v46) { |
3422 | - return internal::ValueArray46<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, |
3423 | - T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, |
3424 | - T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, |
3425 | - T40, T41, T42, T43, T44, T45, T46>(v1, v2, v3, v4, v5, v6, v7, v8, v9, |
3426 | - v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, |
3427 | - v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, |
3428 | - v38, v39, v40, v41, v42, v43, v44, v45, v46); |
3429 | -} |
3430 | - |
3431 | -template <typename T1, typename T2, typename T3, typename T4, typename T5, |
3432 | - typename T6, typename T7, typename T8, typename T9, typename T10, |
3433 | - typename T11, typename T12, typename T13, typename T14, typename T15, |
3434 | - typename T16, typename T17, typename T18, typename T19, typename T20, |
3435 | - typename T21, typename T22, typename T23, typename T24, typename T25, |
3436 | - typename T26, typename T27, typename T28, typename T29, typename T30, |
3437 | - typename T31, typename T32, typename T33, typename T34, typename T35, |
3438 | - typename T36, typename T37, typename T38, typename T39, typename T40, |
3439 | - typename T41, typename T42, typename T43, typename T44, typename T45, |
3440 | - typename T46, typename T47> |
3441 | -internal::ValueArray47<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, |
3442 | - T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, |
3443 | - T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, |
3444 | - T44, T45, T46, T47> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, T7 v7, |
3445 | - T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, |
3446 | - T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, |
3447 | - T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, |
3448 | - T32 v32, T33 v33, T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, |
3449 | - T40 v40, T41 v41, T42 v42, T43 v43, T44 v44, T45 v45, T46 v46, T47 v47) { |
3450 | - return internal::ValueArray47<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, |
3451 | - T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, |
3452 | - T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, |
3453 | - T40, T41, T42, T43, T44, T45, T46, T47>(v1, v2, v3, v4, v5, v6, v7, v8, |
3454 | - v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, v23, |
3455 | - v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, v37, |
3456 | - v38, v39, v40, v41, v42, v43, v44, v45, v46, v47); |
3457 | -} |
3458 | - |
3459 | -template <typename T1, typename T2, typename T3, typename T4, typename T5, |
3460 | - typename T6, typename T7, typename T8, typename T9, typename T10, |
3461 | - typename T11, typename T12, typename T13, typename T14, typename T15, |
3462 | - typename T16, typename T17, typename T18, typename T19, typename T20, |
3463 | - typename T21, typename T22, typename T23, typename T24, typename T25, |
3464 | - typename T26, typename T27, typename T28, typename T29, typename T30, |
3465 | - typename T31, typename T32, typename T33, typename T34, typename T35, |
3466 | - typename T36, typename T37, typename T38, typename T39, typename T40, |
3467 | - typename T41, typename T42, typename T43, typename T44, typename T45, |
3468 | - typename T46, typename T47, typename T48> |
3469 | -internal::ValueArray48<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, |
3470 | - T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, |
3471 | - T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, |
3472 | - T44, T45, T46, T47, T48> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, T6 v6, |
3473 | - T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, T15 v15, |
3474 | - T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, T23 v23, |
3475 | - T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, T31 v31, |
3476 | - T32 v32, T33 v33, T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, T39 v39, |
3477 | - T40 v40, T41 v41, T42 v42, T43 v43, T44 v44, T45 v45, T46 v46, T47 v47, |
3478 | - T48 v48) { |
3479 | - return internal::ValueArray48<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, |
3480 | - T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, |
3481 | - T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, |
3482 | - T40, T41, T42, T43, T44, T45, T46, T47, T48>(v1, v2, v3, v4, v5, v6, v7, |
3483 | - v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, v22, |
3484 | - v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, v36, |
3485 | - v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48); |
3486 | -} |
3487 | - |
3488 | -template <typename T1, typename T2, typename T3, typename T4, typename T5, |
3489 | - typename T6, typename T7, typename T8, typename T9, typename T10, |
3490 | - typename T11, typename T12, typename T13, typename T14, typename T15, |
3491 | - typename T16, typename T17, typename T18, typename T19, typename T20, |
3492 | - typename T21, typename T22, typename T23, typename T24, typename T25, |
3493 | - typename T26, typename T27, typename T28, typename T29, typename T30, |
3494 | - typename T31, typename T32, typename T33, typename T34, typename T35, |
3495 | - typename T36, typename T37, typename T38, typename T39, typename T40, |
3496 | - typename T41, typename T42, typename T43, typename T44, typename T45, |
3497 | - typename T46, typename T47, typename T48, typename T49> |
3498 | -internal::ValueArray49<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, |
3499 | - T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, |
3500 | - T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, |
3501 | - T44, T45, T46, T47, T48, T49> Values(T1 v1, T2 v2, T3 v3, T4 v4, T5 v5, |
3502 | - T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, T14 v14, |
3503 | - T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, T22 v22, |
3504 | - T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, T30 v30, |
3505 | - T31 v31, T32 v32, T33 v33, T34 v34, T35 v35, T36 v36, T37 v37, T38 v38, |
3506 | - T39 v39, T40 v40, T41 v41, T42 v42, T43 v43, T44 v44, T45 v45, T46 v46, |
3507 | - T47 v47, T48 v48, T49 v49) { |
3508 | - return internal::ValueArray49<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, |
3509 | - T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, |
3510 | - T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, |
3511 | - T40, T41, T42, T43, T44, T45, T46, T47, T48, T49>(v1, v2, v3, v4, v5, v6, |
3512 | - v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, v20, v21, |
3513 | - v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, v34, v35, |
3514 | - v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, v48, v49); |
3515 | -} |
3516 | - |
3517 | -template <typename T1, typename T2, typename T3, typename T4, typename T5, |
3518 | - typename T6, typename T7, typename T8, typename T9, typename T10, |
3519 | - typename T11, typename T12, typename T13, typename T14, typename T15, |
3520 | - typename T16, typename T17, typename T18, typename T19, typename T20, |
3521 | - typename T21, typename T22, typename T23, typename T24, typename T25, |
3522 | - typename T26, typename T27, typename T28, typename T29, typename T30, |
3523 | - typename T31, typename T32, typename T33, typename T34, typename T35, |
3524 | - typename T36, typename T37, typename T38, typename T39, typename T40, |
3525 | - typename T41, typename T42, typename T43, typename T44, typename T45, |
3526 | - typename T46, typename T47, typename T48, typename T49, typename T50> |
3527 | -internal::ValueArray50<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, T12, T13, |
3528 | - T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, T26, T27, T28, |
3529 | - T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, T40, T41, T42, T43, |
3530 | - T44, T45, T46, T47, T48, T49, T50> Values(T1 v1, T2 v2, T3 v3, T4 v4, |
3531 | - T5 v5, T6 v6, T7 v7, T8 v8, T9 v9, T10 v10, T11 v11, T12 v12, T13 v13, |
3532 | - T14 v14, T15 v15, T16 v16, T17 v17, T18 v18, T19 v19, T20 v20, T21 v21, |
3533 | - T22 v22, T23 v23, T24 v24, T25 v25, T26 v26, T27 v27, T28 v28, T29 v29, |
3534 | - T30 v30, T31 v31, T32 v32, T33 v33, T34 v34, T35 v35, T36 v36, T37 v37, |
3535 | - T38 v38, T39 v39, T40 v40, T41 v41, T42 v42, T43 v43, T44 v44, T45 v45, |
3536 | - T46 v46, T47 v47, T48 v48, T49 v49, T50 v50) { |
3537 | - return internal::ValueArray50<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10, T11, |
3538 | - T12, T13, T14, T15, T16, T17, T18, T19, T20, T21, T22, T23, T24, T25, |
3539 | - T26, T27, T28, T29, T30, T31, T32, T33, T34, T35, T36, T37, T38, T39, |
3540 | - T40, T41, T42, T43, T44, T45, T46, T47, T48, T49, T50>(v1, v2, v3, v4, |
3541 | - v5, v6, v7, v8, v9, v10, v11, v12, v13, v14, v15, v16, v17, v18, v19, |
3542 | - v20, v21, v22, v23, v24, v25, v26, v27, v28, v29, v30, v31, v32, v33, |
3543 | - v34, v35, v36, v37, v38, v39, v40, v41, v42, v43, v44, v45, v46, v47, |
3544 | - v48, v49, v50); |
3545 | -} |
3546 | - |
3547 | -// Bool() allows generating tests with parameters in a set of (false, true). |
3548 | -// |
3549 | -// Synopsis: |
3550 | -// Bool() |
3551 | -// - returns a generator producing sequences with elements {false, true}. |
3552 | -// |
3553 | -// It is useful when testing code that depends on Boolean flags. Combinations |
3554 | -// of multiple flags can be tested when several Bool()'s are combined using |
3555 | -// Combine() function. |
3556 | -// |
3557 | -// In the following example all tests in the test case FlagDependentTest |
3558 | -// will be instantiated twice with parameters false and true. |
3559 | -// |
3560 | -// class FlagDependentTest : public testing::TestWithParam<bool> { |
3561 | -// virtual void SetUp() { |
3562 | -// external_flag = GetParam(); |
3563 | -// } |
3564 | -// } |
3565 | -// INSTANTIATE_TEST_CASE_P(BoolSequence, FlagDependentTest, Bool()); |
3566 | -// |
3567 | -inline internal::ParamGenerator<bool> Bool() { |
3568 | - return Values(false, true); |
3569 | -} |
3570 | - |
3571 | -# if GTEST_HAS_COMBINE |
3572 | -// Combine() allows the user to combine two or more sequences to produce |
3573 | -// values of a Cartesian product of those sequences' elements. |
3574 | -// |
3575 | -// Synopsis: |
3576 | -// Combine(gen1, gen2, ..., genN) |
3577 | -// - returns a generator producing sequences with elements coming from |
3578 | -// the Cartesian product of elements from the sequences generated by |
3579 | -// gen1, gen2, ..., genN. The sequence elements will have a type of |
3580 | -// tuple<T1, T2, ..., TN> where T1, T2, ..., TN are the types |
3581 | -// of elements from sequences produces by gen1, gen2, ..., genN. |
3582 | -// |
3583 | -// Combine can have up to 10 arguments. This number is currently limited |
3584 | -// by the maximum number of elements in the tuple implementation used by Google |
3585 | -// Test. |
3586 | -// |
3587 | -// Example: |
3588 | -// |
3589 | -// This will instantiate tests in test case AnimalTest each one with |
3590 | -// the parameter values tuple("cat", BLACK), tuple("cat", WHITE), |
3591 | -// tuple("dog", BLACK), and tuple("dog", WHITE): |
3592 | -// |
3593 | -// enum Color { BLACK, GRAY, WHITE }; |
3594 | -// class AnimalTest |
3595 | -// : public testing::TestWithParam<tuple<const char*, Color> > {...}; |
3596 | -// |
3597 | -// TEST_P(AnimalTest, AnimalLooksNice) {...} |
3598 | -// |
3599 | -// INSTANTIATE_TEST_CASE_P(AnimalVariations, AnimalTest, |
3600 | -// Combine(Values("cat", "dog"), |
3601 | -// Values(BLACK, WHITE))); |
3602 | -// |
3603 | -// This will instantiate tests in FlagDependentTest with all variations of two |
3604 | -// Boolean flags: |
3605 | -// |
3606 | -// class FlagDependentTest |
3607 | -// : public testing::TestWithParam<tuple<bool, bool> > { |
3608 | -// virtual void SetUp() { |
3609 | -// // Assigns external_flag_1 and external_flag_2 values from the tuple. |
3610 | -// tie(external_flag_1, external_flag_2) = GetParam(); |
3611 | -// } |
3612 | -// }; |
3613 | -// |
3614 | -// TEST_P(FlagDependentTest, TestFeature1) { |
3615 | -// // Test your code using external_flag_1 and external_flag_2 here. |
3616 | -// } |
3617 | -// INSTANTIATE_TEST_CASE_P(TwoBoolSequence, FlagDependentTest, |
3618 | -// Combine(Bool(), Bool())); |
3619 | -// |
3620 | -template <typename Generator1, typename Generator2> |
3621 | -internal::CartesianProductHolder2<Generator1, Generator2> Combine( |
3622 | - const Generator1& g1, const Generator2& g2) { |
3623 | - return internal::CartesianProductHolder2<Generator1, Generator2>( |
3624 | - g1, g2); |
3625 | -} |
3626 | - |
3627 | -template <typename Generator1, typename Generator2, typename Generator3> |
3628 | -internal::CartesianProductHolder3<Generator1, Generator2, Generator3> Combine( |
3629 | - const Generator1& g1, const Generator2& g2, const Generator3& g3) { |
3630 | - return internal::CartesianProductHolder3<Generator1, Generator2, Generator3>( |
3631 | - g1, g2, g3); |
3632 | -} |
3633 | - |
3634 | -template <typename Generator1, typename Generator2, typename Generator3, |
3635 | - typename Generator4> |
3636 | -internal::CartesianProductHolder4<Generator1, Generator2, Generator3, |
3637 | - Generator4> Combine( |
3638 | - const Generator1& g1, const Generator2& g2, const Generator3& g3, |
3639 | - const Generator4& g4) { |
3640 | - return internal::CartesianProductHolder4<Generator1, Generator2, Generator3, |
3641 | - Generator4>( |
3642 | - g1, g2, g3, g4); |
3643 | -} |
3644 | - |
3645 | -template <typename Generator1, typename Generator2, typename Generator3, |
3646 | - typename Generator4, typename Generator5> |
3647 | -internal::CartesianProductHolder5<Generator1, Generator2, Generator3, |
3648 | - Generator4, Generator5> Combine( |
3649 | - const Generator1& g1, const Generator2& g2, const Generator3& g3, |
3650 | - const Generator4& g4, const Generator5& g5) { |
3651 | - return internal::CartesianProductHolder5<Generator1, Generator2, Generator3, |
3652 | - Generator4, Generator5>( |
3653 | - g1, g2, g3, g4, g5); |
3654 | -} |
3655 | - |
3656 | -template <typename Generator1, typename Generator2, typename Generator3, |
3657 | - typename Generator4, typename Generator5, typename Generator6> |
3658 | -internal::CartesianProductHolder6<Generator1, Generator2, Generator3, |
3659 | - Generator4, Generator5, Generator6> Combine( |
3660 | - const Generator1& g1, const Generator2& g2, const Generator3& g3, |
3661 | - const Generator4& g4, const Generator5& g5, const Generator6& g6) { |
3662 | - return internal::CartesianProductHolder6<Generator1, Generator2, Generator3, |
3663 | - Generator4, Generator5, Generator6>( |
3664 | - g1, g2, g3, g4, g5, g6); |
3665 | -} |
3666 | - |
3667 | -template <typename Generator1, typename Generator2, typename Generator3, |
3668 | - typename Generator4, typename Generator5, typename Generator6, |
3669 | - typename Generator7> |
3670 | -internal::CartesianProductHolder7<Generator1, Generator2, Generator3, |
3671 | - Generator4, Generator5, Generator6, Generator7> Combine( |
3672 | - const Generator1& g1, const Generator2& g2, const Generator3& g3, |
3673 | - const Generator4& g4, const Generator5& g5, const Generator6& g6, |
3674 | - const Generator7& g7) { |
3675 | - return internal::CartesianProductHolder7<Generator1, Generator2, Generator3, |
3676 | - Generator4, Generator5, Generator6, Generator7>( |
3677 | - g1, g2, g3, g4, g5, g6, g7); |
3678 | -} |
3679 | - |
3680 | -template <typename Generator1, typename Generator2, typename Generator3, |
3681 | - typename Generator4, typename Generator5, typename Generator6, |
3682 | - typename Generator7, typename Generator8> |
3683 | -internal::CartesianProductHolder8<Generator1, Generator2, Generator3, |
3684 | - Generator4, Generator5, Generator6, Generator7, Generator8> Combine( |
3685 | - const Generator1& g1, const Generator2& g2, const Generator3& g3, |
3686 | - const Generator4& g4, const Generator5& g5, const Generator6& g6, |
3687 | - const Generator7& g7, const Generator8& g8) { |
3688 | - return internal::CartesianProductHolder8<Generator1, Generator2, Generator3, |
3689 | - Generator4, Generator5, Generator6, Generator7, Generator8>( |
3690 | - g1, g2, g3, g4, g5, g6, g7, g8); |
3691 | -} |
3692 | - |
3693 | -template <typename Generator1, typename Generator2, typename Generator3, |
3694 | - typename Generator4, typename Generator5, typename Generator6, |
3695 | - typename Generator7, typename Generator8, typename Generator9> |
3696 | -internal::CartesianProductHolder9<Generator1, Generator2, Generator3, |
3697 | - Generator4, Generator5, Generator6, Generator7, Generator8, |
3698 | - Generator9> Combine( |
3699 | - const Generator1& g1, const Generator2& g2, const Generator3& g3, |
3700 | - const Generator4& g4, const Generator5& g5, const Generator6& g6, |
3701 | - const Generator7& g7, const Generator8& g8, const Generator9& g9) { |
3702 | - return internal::CartesianProductHolder9<Generator1, Generator2, Generator3, |
3703 | - Generator4, Generator5, Generator6, Generator7, Generator8, Generator9>( |
3704 | - g1, g2, g3, g4, g5, g6, g7, g8, g9); |
3705 | -} |
3706 | - |
3707 | -template <typename Generator1, typename Generator2, typename Generator3, |
3708 | - typename Generator4, typename Generator5, typename Generator6, |
3709 | - typename Generator7, typename Generator8, typename Generator9, |
3710 | - typename Generator10> |
3711 | -internal::CartesianProductHolder10<Generator1, Generator2, Generator3, |
3712 | - Generator4, Generator5, Generator6, Generator7, Generator8, Generator9, |
3713 | - Generator10> Combine( |
3714 | - const Generator1& g1, const Generator2& g2, const Generator3& g3, |
3715 | - const Generator4& g4, const Generator5& g5, const Generator6& g6, |
3716 | - const Generator7& g7, const Generator8& g8, const Generator9& g9, |
3717 | - const Generator10& g10) { |
3718 | - return internal::CartesianProductHolder10<Generator1, Generator2, Generator3, |
3719 | - Generator4, Generator5, Generator6, Generator7, Generator8, Generator9, |
3720 | - Generator10>( |
3721 | - g1, g2, g3, g4, g5, g6, g7, g8, g9, g10); |
3722 | -} |
3723 | -# endif // GTEST_HAS_COMBINE |
3724 | - |
3725 | - |
3726 | - |
3727 | -# define TEST_P(test_case_name, test_name) \ |
3728 | - class GTEST_TEST_CLASS_NAME_(test_case_name, test_name) \ |
3729 | - : public test_case_name { \ |
3730 | - public: \ |
3731 | - GTEST_TEST_CLASS_NAME_(test_case_name, test_name)() {} \ |
3732 | - virtual void TestBody(); \ |
3733 | - private: \ |
3734 | - static int AddToRegistry() { \ |
3735 | - ::testing::UnitTest::GetInstance()->parameterized_test_registry(). \ |
3736 | - GetTestCasePatternHolder<test_case_name>(\ |
3737 | - #test_case_name, __FILE__, __LINE__)->AddTestPattern(\ |
3738 | - #test_case_name, \ |
3739 | - #test_name, \ |
3740 | - new ::testing::internal::TestMetaFactory< \ |
3741 | - GTEST_TEST_CLASS_NAME_(test_case_name, test_name)>()); \ |
3742 | - return 0; \ |
3743 | - } \ |
3744 | - static int gtest_registering_dummy_; \ |
3745 | - GTEST_DISALLOW_COPY_AND_ASSIGN_(\ |
3746 | - GTEST_TEST_CLASS_NAME_(test_case_name, test_name)); \ |
3747 | - }; \ |
3748 | - int GTEST_TEST_CLASS_NAME_(test_case_name, \ |
3749 | - test_name)::gtest_registering_dummy_ = \ |
3750 | - GTEST_TEST_CLASS_NAME_(test_case_name, test_name)::AddToRegistry(); \ |
3751 | - void GTEST_TEST_CLASS_NAME_(test_case_name, test_name)::TestBody() |
3752 | - |
3753 | -# define INSTANTIATE_TEST_CASE_P(prefix, test_case_name, generator) \ |
3754 | - ::testing::internal::ParamGenerator<test_case_name::ParamType> \ |
3755 | - gtest_##prefix##test_case_name##_EvalGenerator_() { return generator; } \ |
3756 | - int gtest_##prefix##test_case_name##_dummy_ = \ |
3757 | - ::testing::UnitTest::GetInstance()->parameterized_test_registry(). \ |
3758 | - GetTestCasePatternHolder<test_case_name>(\ |
3759 | - #test_case_name, __FILE__, __LINE__)->AddTestCaseInstantiation(\ |
3760 | - #prefix, \ |
3761 | - >est_##prefix##test_case_name##_EvalGenerator_, \ |
3762 | - __FILE__, __LINE__) |
3763 | - |
3764 | -} // namespace testing |
3765 | - |
3766 | -#endif // GTEST_HAS_PARAM_TEST |
3767 | - |
3768 | -#endif // GTEST_INCLUDE_GTEST_GTEST_PARAM_TEST_H_ |
3769 | |
3770 | === removed file '3rd_party/gmock/gtest/include/gtest/gtest-param-test.h.pump' |
3771 | --- 3rd_party/gmock/gtest/include/gtest/gtest-param-test.h.pump 2014-04-07 19:53:07 +0000 |
3772 | +++ 3rd_party/gmock/gtest/include/gtest/gtest-param-test.h.pump 1970-01-01 00:00:00 +0000 |
3773 | @@ -1,487 +0,0 @@ |
3774 | -$$ -*- mode: c++; -*- |
3775 | -$var n = 50 $$ Maximum length of Values arguments we want to support. |
3776 | -$var maxtuple = 10 $$ Maximum number of Combine arguments we want to support. |
3777 | -// Copyright 2008, Google Inc. |
3778 | -// All rights reserved. |
3779 | -// |
3780 | -// Redistribution and use in source and binary forms, with or without |
3781 | -// modification, are permitted provided that the following conditions are |
3782 | -// met: |
3783 | -// |
3784 | -// * Redistributions of source code must retain the above copyright |
3785 | -// notice, this list of conditions and the following disclaimer. |
3786 | -// * Redistributions in binary form must reproduce the above |
3787 | -// copyright notice, this list of conditions and the following disclaimer |
3788 | -// in the documentation and/or other materials provided with the |
3789 | -// distribution. |
3790 | -// * Neither the name of Google Inc. nor the names of its |
3791 | -// contributors may be used to endorse or promote products derived from |
3792 | -// this software without specific prior written permission. |
3793 | -// |
3794 | -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
3795 | -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
3796 | -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
3797 | -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |
3798 | -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
3799 | -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
3800 | -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
3801 | -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
3802 | -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
3803 | -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
3804 | -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
3805 | -// |
3806 | -// Authors: vladl@google.com (Vlad Losev) |
3807 | -// |
3808 | -// Macros and functions for implementing parameterized tests |
3809 | -// in Google C++ Testing Framework (Google Test) |
3810 | -// |
3811 | -// This file is generated by a SCRIPT. DO NOT EDIT BY HAND! |
3812 | -// |
3813 | -#ifndef GTEST_INCLUDE_GTEST_GTEST_PARAM_TEST_H_ |
3814 | -#define GTEST_INCLUDE_GTEST_GTEST_PARAM_TEST_H_ |
3815 | - |
3816 | - |
3817 | -// Value-parameterized tests allow you to test your code with different |
3818 | -// parameters without writing multiple copies of the same test. |
3819 | -// |
3820 | -// Here is how you use value-parameterized tests: |
3821 | - |
3822 | -#if 0 |
3823 | - |
3824 | -// To write value-parameterized tests, first you should define a fixture |
3825 | -// class. It is usually derived from testing::TestWithParam<T> (see below for |
3826 | -// another inheritance scheme that's sometimes useful in more complicated |
3827 | -// class hierarchies), where the type of your parameter values. |
3828 | -// TestWithParam<T> is itself derived from testing::Test. T can be any |
3829 | -// copyable type. If it's a raw pointer, you are responsible for managing the |
3830 | -// lifespan of the pointed values. |
3831 | - |
3832 | -class FooTest : public ::testing::TestWithParam<const char*> { |
3833 | - // You can implement all the usual class fixture members here. |
3834 | -}; |
3835 | - |
3836 | -// Then, use the TEST_P macro to define as many parameterized tests |
3837 | -// for this fixture as you want. The _P suffix is for "parameterized" |
3838 | -// or "pattern", whichever you prefer to think. |
3839 | - |
3840 | -TEST_P(FooTest, DoesBlah) { |
3841 | - // Inside a test, access the test parameter with the GetParam() method |
3842 | - // of the TestWithParam<T> class: |
3843 | - EXPECT_TRUE(foo.Blah(GetParam())); |
3844 | - ... |
3845 | -} |
3846 | - |
3847 | -TEST_P(FooTest, HasBlahBlah) { |
3848 | - ... |
3849 | -} |
3850 | - |
3851 | -// Finally, you can use INSTANTIATE_TEST_CASE_P to instantiate the test |
3852 | -// case with any set of parameters you want. Google Test defines a number |
3853 | -// of functions for generating test parameters. They return what we call |
3854 | -// (surprise!) parameter generators. Here is a summary of them, which |
3855 | -// are all in the testing namespace: |
3856 | -// |
3857 | -// |
3858 | -// Range(begin, end [, step]) - Yields values {begin, begin+step, |
3859 | -// begin+step+step, ...}. The values do not |
3860 | -// include end. step defaults to 1. |
3861 | -// Values(v1, v2, ..., vN) - Yields values {v1, v2, ..., vN}. |
3862 | -// ValuesIn(container) - Yields values from a C-style array, an STL |
3863 | -// ValuesIn(begin,end) container, or an iterator range [begin, end). |
3864 | -// Bool() - Yields sequence {false, true}. |
3865 | -// Combine(g1, g2, ..., gN) - Yields all combinations (the Cartesian product |
3866 | -// for the math savvy) of the values generated |
3867 | -// by the N generators. |
3868 | -// |
3869 | -// For more details, see comments at the definitions of these functions below |
3870 | -// in this file. |
3871 | -// |
3872 | -// The following statement will instantiate tests from the FooTest test case |
3873 | -// each with parameter values "meeny", "miny", and "moe". |
3874 | - |
3875 | -INSTANTIATE_TEST_CASE_P(InstantiationName, |
3876 | - FooTest, |
3877 | - Values("meeny", "miny", "moe")); |
3878 | - |
3879 | -// To distinguish different instances of the pattern, (yes, you |
3880 | -// can instantiate it more then once) the first argument to the |
3881 | -// INSTANTIATE_TEST_CASE_P macro is a prefix that will be added to the |
3882 | -// actual test case name. Remember to pick unique prefixes for different |
3883 | -// instantiations. The tests from the instantiation above will have |
3884 | -// these names: |
3885 | -// |
3886 | -// * InstantiationName/FooTest.DoesBlah/0 for "meeny" |
3887 | -// * InstantiationName/FooTest.DoesBlah/1 for "miny" |
3888 | -// * InstantiationName/FooTest.DoesBlah/2 for "moe" |
3889 | -// * InstantiationName/FooTest.HasBlahBlah/0 for "meeny" |
3890 | -// * InstantiationName/FooTest.HasBlahBlah/1 for "miny" |
3891 | -// * InstantiationName/FooTest.HasBlahBlah/2 for "moe" |
3892 | -// |
3893 | -// You can use these names in --gtest_filter. |
3894 | -// |
3895 | -// This statement will instantiate all tests from FooTest again, each |
3896 | -// with parameter values "cat" and "dog": |
3897 | - |
3898 | -const char* pets[] = {"cat", "dog"}; |
3899 | -INSTANTIATE_TEST_CASE_P(AnotherInstantiationName, FooTest, ValuesIn(pets)); |
3900 | - |
3901 | -// The tests from the instantiation above will have these names: |
3902 | -// |
3903 | -// * AnotherInstantiationName/FooTest.DoesBlah/0 for "cat" |
3904 | -// * AnotherInstantiationName/FooTest.DoesBlah/1 for "dog" |
3905 | -// * AnotherInstantiationName/FooTest.HasBlahBlah/0 for "cat" |
3906 | -// * AnotherInstantiationName/FooTest.HasBlahBlah/1 for "dog" |
3907 | -// |
3908 | -// Please note that INSTANTIATE_TEST_CASE_P will instantiate all tests |
3909 | -// in the given test case, whether their definitions come before or |
3910 | -// AFTER the INSTANTIATE_TEST_CASE_P statement. |
3911 | -// |
3912 | -// Please also note that generator expressions (including parameters to the |
3913 | -// generators) are evaluated in InitGoogleTest(), after main() has started. |
3914 | -// This allows the user on one hand, to adjust generator parameters in order |
3915 | -// to dynamically determine a set of tests to run and on the other hand, |
3916 | -// give the user a chance to inspect the generated tests with Google Test |
3917 | -// reflection API before RUN_ALL_TESTS() is executed. |
3918 | -// |
3919 | -// You can see samples/sample7_unittest.cc and samples/sample8_unittest.cc |
3920 | -// for more examples. |
3921 | -// |
3922 | -// In the future, we plan to publish the API for defining new parameter |
3923 | -// generators. But for now this interface remains part of the internal |
3924 | -// implementation and is subject to change. |
3925 | -// |
3926 | -// |
3927 | -// A parameterized test fixture must be derived from testing::Test and from |
3928 | -// testing::WithParamInterface<T>, where T is the type of the parameter |
3929 | -// values. Inheriting from TestWithParam<T> satisfies that requirement because |
3930 | -// TestWithParam<T> inherits from both Test and WithParamInterface. In more |
3931 | -// complicated hierarchies, however, it is occasionally useful to inherit |
3932 | -// separately from Test and WithParamInterface. For example: |
3933 | - |
3934 | -class BaseTest : public ::testing::Test { |
3935 | - // You can inherit all the usual members for a non-parameterized test |
3936 | - // fixture here. |
3937 | -}; |
3938 | - |
3939 | -class DerivedTest : public BaseTest, public ::testing::WithParamInterface<int> { |
3940 | - // The usual test fixture members go here too. |
3941 | -}; |
3942 | - |
3943 | -TEST_F(BaseTest, HasFoo) { |
3944 | - // This is an ordinary non-parameterized test. |
3945 | -} |
3946 | - |
3947 | -TEST_P(DerivedTest, DoesBlah) { |
3948 | - // GetParam works just the same here as if you inherit from TestWithParam. |
3949 | - EXPECT_TRUE(foo.Blah(GetParam())); |
3950 | -} |
3951 | - |
3952 | -#endif // 0 |
3953 | - |
3954 | -#include "gtest/internal/gtest-port.h" |
3955 | - |
3956 | -#if !GTEST_OS_SYMBIAN |
3957 | -# include <utility> |
3958 | -#endif |
3959 | - |
3960 | -// scripts/fuse_gtest.py depends on gtest's own header being #included |
3961 | -// *unconditionally*. Therefore these #includes cannot be moved |
3962 | -// inside #if GTEST_HAS_PARAM_TEST. |
3963 | -#include "gtest/internal/gtest-internal.h" |
3964 | -#include "gtest/internal/gtest-param-util.h" |
3965 | -#include "gtest/internal/gtest-param-util-generated.h" |
3966 | - |
3967 | -#if GTEST_HAS_PARAM_TEST |
3968 | - |
3969 | -namespace testing { |
3970 | - |
3971 | -// Functions producing parameter generators. |
3972 | -// |
3973 | -// Google Test uses these generators to produce parameters for value- |
3974 | -// parameterized tests. When a parameterized test case is instantiated |
3975 | -// with a particular generator, Google Test creates and runs tests |
3976 | -// for each element in the sequence produced by the generator. |
3977 | -// |
3978 | -// In the following sample, tests from test case FooTest are instantiated |
3979 | -// each three times with parameter values 3, 5, and 8: |
3980 | -// |
3981 | -// class FooTest : public TestWithParam<int> { ... }; |
3982 | -// |
3983 | -// TEST_P(FooTest, TestThis) { |
3984 | -// } |
3985 | -// TEST_P(FooTest, TestThat) { |
3986 | -// } |
3987 | -// INSTANTIATE_TEST_CASE_P(TestSequence, FooTest, Values(3, 5, 8)); |
3988 | -// |
3989 | - |
3990 | -// Range() returns generators providing sequences of values in a range. |
3991 | -// |
3992 | -// Synopsis: |
3993 | -// Range(start, end) |
3994 | -// - returns a generator producing a sequence of values {start, start+1, |
3995 | -// start+2, ..., }. |
3996 | -// Range(start, end, step) |
3997 | -// - returns a generator producing a sequence of values {start, start+step, |
3998 | -// start+step+step, ..., }. |
3999 | -// Notes: |
4000 | -// * The generated sequences never include end. For example, Range(1, 5) |
4001 | -// returns a generator producing a sequence {1, 2, 3, 4}. Range(1, 9, 2) |
4002 | -// returns a generator producing {1, 3, 5, 7}. |
4003 | -// * start and end must have the same type. That type may be any integral or |
4004 | -// floating-point type or a user defined type satisfying these conditions: |
4005 | -// * It must be assignable (have operator=() defined). |
4006 | -// * It must have operator+() (operator+(int-compatible type) for |
4007 | -// two-operand version). |
4008 | -// * It must have operator<() defined. |
4009 | -// Elements in the resulting sequences will also have that type. |
4010 | -// * Condition start < end must be satisfied in order for resulting sequences |
4011 | -// to contain any elements. |
4012 | -// |
4013 | -template <typename T, typename IncrementT> |
4014 | -internal::ParamGenerator<T> Range(T start, T end, IncrementT step) { |
4015 | - return internal::ParamGenerator<T>( |
4016 | - new internal::RangeGenerator<T, IncrementT>(start, end, step)); |
4017 | -} |
4018 | - |
4019 | -template <typename T> |
4020 | -internal::ParamGenerator<T> Range(T start, T end) { |
4021 | - return Range(start, end, 1); |
4022 | -} |
4023 | - |
4024 | -// ValuesIn() function allows generation of tests with parameters coming from |
4025 | -// a container. |
4026 | -// |
4027 | -// Synopsis: |
4028 | -// ValuesIn(const T (&array)[N]) |
4029 | -// - returns a generator producing sequences with elements from |
4030 | -// a C-style array. |
4031 | -// ValuesIn(const Container& container) |
4032 | -// - returns a generator producing sequences with elements from |
4033 | -// an STL-style container. |
4034 | -// ValuesIn(Iterator begin, Iterator end) |
4035 | -// - returns a generator producing sequences with elements from |
4036 | -// a range [begin, end) defined by a pair of STL-style iterators. These |
4037 | -// iterators can also be plain C pointers. |
4038 | -// |
4039 | -// Please note that ValuesIn copies the values from the containers |
4040 | -// passed in and keeps them to generate tests in RUN_ALL_TESTS(). |
4041 | -// |
4042 | -// Examples: |
4043 | -// |
4044 | -// This instantiates tests from test case StringTest |
4045 | -// each with C-string values of "foo", "bar", and "baz": |
4046 | -// |
4047 | -// const char* strings[] = {"foo", "bar", "baz"}; |
4048 | -// INSTANTIATE_TEST_CASE_P(StringSequence, SrtingTest, ValuesIn(strings)); |
4049 | -// |
4050 | -// This instantiates tests from test case StlStringTest |
4051 | -// each with STL strings with values "a" and "b": |
4052 | -// |
4053 | -// ::std::vector< ::std::string> GetParameterStrings() { |
4054 | -// ::std::vector< ::std::string> v; |
4055 | -// v.push_back("a"); |
4056 | -// v.push_back("b"); |
4057 | -// return v; |
4058 | -// } |
4059 | -// |
4060 | -// INSTANTIATE_TEST_CASE_P(CharSequence, |
4061 | -// StlStringTest, |
4062 | -// ValuesIn(GetParameterStrings())); |
4063 | -// |
4064 | -// |
4065 | -// This will also instantiate tests from CharTest |
4066 | -// each with parameter values 'a' and 'b': |
4067 | -// |
4068 | -// ::std::list<char> GetParameterChars() { |
4069 | -// ::std::list<char> list; |
4070 | -// list.push_back('a'); |
4071 | -// list.push_back('b'); |
4072 | -// return list; |
4073 | -// } |
4074 | -// ::std::list<char> l = GetParameterChars(); |
4075 | -// INSTANTIATE_TEST_CASE_P(CharSequence2, |
4076 | -// CharTest, |
4077 | -// ValuesIn(l.begin(), l.end())); |
4078 | -// |
4079 | -template <typename ForwardIterator> |
4080 | -internal::ParamGenerator< |
4081 | - typename ::testing::internal::IteratorTraits<ForwardIterator>::value_type> |
4082 | -ValuesIn(ForwardIterator begin, ForwardIterator end) { |
4083 | - typedef typename ::testing::internal::IteratorTraits<ForwardIterator> |
4084 | - ::value_type ParamType; |
4085 | - return internal::ParamGenerator<ParamType>( |
4086 | - new internal::ValuesInIteratorRangeGenerator<ParamType>(begin, end)); |
4087 | -} |
4088 | - |
4089 | -template <typename T, size_t N> |
4090 | -internal::ParamGenerator<T> ValuesIn(const T (&array)[N]) { |
4091 | - return ValuesIn(array, array + N); |
4092 | -} |
4093 | - |
4094 | -template <class Container> |
4095 | -internal::ParamGenerator<typename Container::value_type> ValuesIn( |
4096 | - const Container& container) { |
4097 | - return ValuesIn(container.begin(), container.end()); |
4098 | -} |
4099 | - |
4100 | -// Values() allows generating tests from explicitly specified list of |
4101 | -// parameters. |
4102 | -// |
4103 | -// Synopsis: |
4104 | -// Values(T v1, T v2, ..., T vN) |
4105 | -// - returns a generator producing sequences with elements v1, v2, ..., vN. |
4106 | -// |
4107 | -// For example, this instantiates tests from test case BarTest each |
4108 | -// with values "one", "two", and "three": |
4109 | -// |
4110 | -// INSTANTIATE_TEST_CASE_P(NumSequence, BarTest, Values("one", "two", "three")); |
4111 | -// |
4112 | -// This instantiates tests from test case BazTest each with values 1, 2, 3.5. |
4113 | -// The exact type of values will depend on the type of parameter in BazTest. |
4114 | -// |
4115 | -// INSTANTIATE_TEST_CASE_P(FloatingNumbers, BazTest, Values(1, 2, 3.5)); |
4116 | -// |
4117 | -// Currently, Values() supports from 1 to $n parameters. |
4118 | -// |
4119 | -$range i 1..n |
4120 | -$for i [[ |
4121 | -$range j 1..i |
4122 | - |
4123 | -template <$for j, [[typename T$j]]> |
4124 | -internal::ValueArray$i<$for j, [[T$j]]> Values($for j, [[T$j v$j]]) { |
4125 | - return internal::ValueArray$i<$for j, [[T$j]]>($for j, [[v$j]]); |
4126 | -} |
4127 | - |
4128 | -]] |
4129 | - |
4130 | -// Bool() allows generating tests with parameters in a set of (false, true). |
4131 | -// |
4132 | -// Synopsis: |
4133 | -// Bool() |
4134 | -// - returns a generator producing sequences with elements {false, true}. |
4135 | -// |
4136 | -// It is useful when testing code that depends on Boolean flags. Combinations |
4137 | -// of multiple flags can be tested when several Bool()'s are combined using |
4138 | -// Combine() function. |
4139 | -// |
4140 | -// In the following example all tests in the test case FlagDependentTest |
4141 | -// will be instantiated twice with parameters false and true. |
4142 | -// |
4143 | -// class FlagDependentTest : public testing::TestWithParam<bool> { |
4144 | -// virtual void SetUp() { |
4145 | -// external_flag = GetParam(); |
4146 | -// } |
4147 | -// } |
4148 | -// INSTANTIATE_TEST_CASE_P(BoolSequence, FlagDependentTest, Bool()); |
4149 | -// |
4150 | -inline internal::ParamGenerator<bool> Bool() { |
4151 | - return Values(false, true); |
4152 | -} |
4153 | - |
4154 | -# if GTEST_HAS_COMBINE |
4155 | -// Combine() allows the user to combine two or more sequences to produce |
4156 | -// values of a Cartesian product of those sequences' elements. |
4157 | -// |
4158 | -// Synopsis: |
4159 | -// Combine(gen1, gen2, ..., genN) |
4160 | -// - returns a generator producing sequences with elements coming from |
4161 | -// the Cartesian product of elements from the sequences generated by |
4162 | -// gen1, gen2, ..., genN. The sequence elements will have a type of |
4163 | -// tuple<T1, T2, ..., TN> where T1, T2, ..., TN are the types |
4164 | -// of elements from sequences produces by gen1, gen2, ..., genN. |
4165 | -// |
4166 | -// Combine can have up to $maxtuple arguments. This number is currently limited |
4167 | -// by the maximum number of elements in the tuple implementation used by Google |
4168 | -// Test. |
4169 | -// |
4170 | -// Example: |
4171 | -// |
4172 | -// This will instantiate tests in test case AnimalTest each one with |
4173 | -// the parameter values tuple("cat", BLACK), tuple("cat", WHITE), |
4174 | -// tuple("dog", BLACK), and tuple("dog", WHITE): |
4175 | -// |
4176 | -// enum Color { BLACK, GRAY, WHITE }; |
4177 | -// class AnimalTest |
4178 | -// : public testing::TestWithParam<tuple<const char*, Color> > {...}; |
4179 | -// |
4180 | -// TEST_P(AnimalTest, AnimalLooksNice) {...} |
4181 | -// |
4182 | -// INSTANTIATE_TEST_CASE_P(AnimalVariations, AnimalTest, |
4183 | -// Combine(Values("cat", "dog"), |
4184 | -// Values(BLACK, WHITE))); |
4185 | -// |
4186 | -// This will instantiate tests in FlagDependentTest with all variations of two |
4187 | -// Boolean flags: |
4188 | -// |
4189 | -// class FlagDependentTest |
4190 | -// : public testing::TestWithParam<tuple<bool, bool> > { |
4191 | -// virtual void SetUp() { |
4192 | -// // Assigns external_flag_1 and external_flag_2 values from the tuple. |
4193 | -// tie(external_flag_1, external_flag_2) = GetParam(); |
4194 | -// } |
4195 | -// }; |
4196 | -// |
4197 | -// TEST_P(FlagDependentTest, TestFeature1) { |
4198 | -// // Test your code using external_flag_1 and external_flag_2 here. |
4199 | -// } |
4200 | -// INSTANTIATE_TEST_CASE_P(TwoBoolSequence, FlagDependentTest, |
4201 | -// Combine(Bool(), Bool())); |
4202 | -// |
4203 | -$range i 2..maxtuple |
4204 | -$for i [[ |
4205 | -$range j 1..i |
4206 | - |
4207 | -template <$for j, [[typename Generator$j]]> |
4208 | -internal::CartesianProductHolder$i<$for j, [[Generator$j]]> Combine( |
4209 | - $for j, [[const Generator$j& g$j]]) { |
4210 | - return internal::CartesianProductHolder$i<$for j, [[Generator$j]]>( |
4211 | - $for j, [[g$j]]); |
4212 | -} |
4213 | - |
4214 | -]] |
4215 | -# endif // GTEST_HAS_COMBINE |
4216 | - |
4217 | - |
4218 | - |
4219 | -# define TEST_P(test_case_name, test_name) \ |
4220 | - class GTEST_TEST_CLASS_NAME_(test_case_name, test_name) \ |
4221 | - : public test_case_name { \ |
4222 | - public: \ |
4223 | - GTEST_TEST_CLASS_NAME_(test_case_name, test_name)() {} \ |
4224 | - virtual void TestBody(); \ |
4225 | - private: \ |
4226 | - static int AddToRegistry() { \ |
4227 | - ::testing::UnitTest::GetInstance()->parameterized_test_registry(). \ |
4228 | - GetTestCasePatternHolder<test_case_name>(\ |
4229 | - #test_case_name, __FILE__, __LINE__)->AddTestPattern(\ |
4230 | - #test_case_name, \ |
4231 | - #test_name, \ |
4232 | - new ::testing::internal::TestMetaFactory< \ |
4233 | - GTEST_TEST_CLASS_NAME_(test_case_name, test_name)>()); \ |
4234 | - return 0; \ |
4235 | - } \ |
4236 | - static int gtest_registering_dummy_; \ |
4237 | - GTEST_DISALLOW_COPY_AND_ASSIGN_(\ |
4238 | - GTEST_TEST_CLASS_NAME_(test_case_name, test_name)); \ |
4239 | - }; \ |
4240 | - int GTEST_TEST_CLASS_NAME_(test_case_name, \ |
4241 | - test_name)::gtest_registering_dummy_ = \ |
4242 | - GTEST_TEST_CLASS_NAME_(test_case_name, test_name)::AddToRegistry(); \ |
4243 | - void GTEST_TEST_CLASS_NAME_(test_case_name, test_name)::TestBody() |
4244 | - |
4245 | -# define INSTANTIATE_TEST_CASE_P(prefix, test_case_name, generator) \ |
4246 | - ::testing::internal::ParamGenerator<test_case_name::ParamType> \ |
4247 | - gtest_##prefix##test_case_name##_EvalGenerator_() { return generator; } \ |
4248 | - int gtest_##prefix##test_case_name##_dummy_ = \ |
4249 | - ::testing::UnitTest::GetInstance()->parameterized_test_registry(). \ |
4250 | - GetTestCasePatternHolder<test_case_name>(\ |
4251 | - #test_case_name, __FILE__, __LINE__)->AddTestCaseInstantiation(\ |
4252 | - #prefix, \ |
4253 | - >est_##prefix##test_case_name##_EvalGenerator_, \ |
4254 | - __FILE__, __LINE__) |
4255 | - |
4256 | -} // namespace testing |
4257 | - |
4258 | -#endif // GTEST_HAS_PARAM_TEST |
4259 | - |
4260 | -#endif // GTEST_INCLUDE_GTEST_GTEST_PARAM_TEST_H_ |
4261 | |
4262 | === removed file '3rd_party/gmock/gtest/include/gtest/gtest-printers.h' |
4263 | --- 3rd_party/gmock/gtest/include/gtest/gtest-printers.h 2014-04-07 19:53:07 +0000 |
4264 | +++ 3rd_party/gmock/gtest/include/gtest/gtest-printers.h 1970-01-01 00:00:00 +0000 |
4265 | @@ -1,855 +0,0 @@ |
4266 | -// Copyright 2007, Google Inc. |
4267 | -// All rights reserved. |
4268 | -// |
4269 | -// Redistribution and use in source and binary forms, with or without |
4270 | -// modification, are permitted provided that the following conditions are |
4271 | -// met: |
4272 | -// |
4273 | -// * Redistributions of source code must retain the above copyright |
4274 | -// notice, this list of conditions and the following disclaimer. |
4275 | -// * Redistributions in binary form must reproduce the above |
4276 | -// copyright notice, this list of conditions and the following disclaimer |
4277 | -// in the documentation and/or other materials provided with the |
4278 | -// distribution. |
4279 | -// * Neither the name of Google Inc. nor the names of its |
4280 | -// contributors may be used to endorse or promote products derived from |
4281 | -// this software without specific prior written permission. |
4282 | -// |
4283 | -// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
4284 | -// "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
4285 | -// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
4286 | -// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |
4287 | -// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
4288 | -// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
4289 | -// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
4290 | -// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
4291 | -// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
4292 | -// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
4293 | -// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
4294 | -// |
4295 | -// Author: wan@google.com (Zhanyong Wan) |
4296 | - |
4297 | -// Google Test - The Google C++ Testing Framework |
4298 | -// |
4299 | -// This file implements a universal value printer that can print a |
4300 | -// value of any type T: |
4301 | -// |
4302 | -// void ::testing::internal::UniversalPrinter<T>::Print(value, ostream_ptr); |
4303 | -// |
4304 | -// A user can teach this function how to print a class type T by |
4305 | -// defining either operator<<() or PrintTo() in the namespace that |
4306 | -// defines T. More specifically, the FIRST defined function in the |
4307 | -// following list will be used (assuming T is defined in namespace |
4308 | -// foo): |
4309 | -// |
4310 | -// 1. foo::PrintTo(const T&, ostream*) |
4311 | -// 2. operator<<(ostream&, const T&) defined in either foo or the |
4312 | -// global namespace. |
4313 | -// |
4314 | -// If none of the above is defined, it will print the debug string of |
4315 | -// the value if it is a protocol buffer, or print the raw bytes in the |
4316 | -// value otherwise. |
4317 | -// |
4318 | -// To aid debugging: when T is a reference type, the address of the |
4319 | -// value is also printed; when T is a (const) char pointer, both the |
4320 | -// pointer value and the NUL-terminated string it points to are |
4321 | -// printed. |
4322 | -// |
4323 | -// We also provide some convenient wrappers: |
4324 | -// |
4325 | -// // Prints a value to a string. For a (const or not) char |
4326 | -// // pointer, the NUL-terminated string (but not the pointer) is |
4327 | -// // printed. |
4328 | -// std::string ::testing::PrintToString(const T& value); |
4329 | -// |
4330 | -// // Prints a value tersely: for a reference type, the referenced |
4331 | -// // value (but not the address) is printed; for a (const or not) char |
4332 | -// // pointer, the NUL-terminated string (but not the pointer) is |
4333 | -// // printed. |
4334 | -// void ::testing::internal::UniversalTersePrint(const T& value, ostream*); |
4335 | -// |
4336 | -// // Prints value using the type inferred by the compiler. The difference |
4337 | -// // from UniversalTersePrint() is that this function prints both the |
4338 | -// // pointer and the NUL-terminated string for a (const or not) char pointer. |
4339 | -// void ::testing::internal::UniversalPrint(const T& value, ostream*); |
4340 | -// |
4341 | -// // Prints the fields of a tuple tersely to a string vector, one |
4342 | -// // element for each field. Tuple support must be enabled in |
4343 | -// // gtest-port.h. |
4344 | -// std::vector<string> UniversalTersePrintTupleFieldsToStrings( |
4345 | -// const Tuple& value); |
4346 | -// |
4347 | -// Known limitation: |
4348 | -// |
4349 | -// The print primitives print the elements of an STL-style container |
4350 | -// using the compiler-inferred type of *iter where iter is a |
4351 | -// const_iterator of the container. When const_iterator is an input |
4352 | -// iterator but not a forward iterator, this inferred type may not |
4353 | -// match value_type, and the print output may be incorrect. In |
4354 | -// practice, this is rarely a problem as for most containers |
4355 | -// const_iterator is a forward iterator. We'll fix this if there's an |
4356 | -// actual need for it. Note that this fix cannot rely on value_type |
4357 | -// being defined as many user-defined container types don't have |
4358 | -// value_type. |
4359 | - |
4360 | -#ifndef GTEST_INCLUDE_GTEST_GTEST_PRINTERS_H_ |
4361 | -#define GTEST_INCLUDE_GTEST_GTEST_PRINTERS_H_ |
4362 | - |
4363 | -#include <ostream> // NOLINT |
4364 | -#include <sstream> |
4365 | -#include <string> |
4366 | -#include <utility> |
4367 | -#include <vector> |
4368 | -#include "gtest/internal/gtest-port.h" |
4369 | -#include "gtest/internal/gtest-internal.h" |
4370 | - |
4371 | -namespace testing { |
4372 | - |
4373 | -// Definitions in the 'internal' and 'internal2' name spaces are |
4374 | -// subject to change without notice. DO NOT USE THEM IN USER CODE! |
4375 | -namespace internal2 { |
4376 | - |
4377 | -// Prints the given number of bytes in the given object to the given |
4378 | -// ostream. |
4379 | -GTEST_API_ void PrintBytesInObjectTo(const unsigned char* obj_bytes, |
4380 | - size_t count, |
4381 | - ::std::ostream* os); |
4382 | - |
4383 | -// For selecting which printer to use when a given type has neither << |
4384 | -// nor PrintTo(). |
4385 | -enum TypeKind { |
4386 | - kProtobuf, // a protobuf type |
4387 | - kConvertibleToInteger, // a type implicitly convertible to BiggestInt |
4388 | - // (e.g. a named or unnamed enum type) |
4389 | - kOtherType // anything else |
4390 | -}; |
4391 | - |
4392 | -// TypeWithoutFormatter<T, kTypeKind>::PrintValue(value, os) is called |
4393 | -// by the universal printer to print a value of type T when neither |
4394 | -// operator<< nor PrintTo() is defined for T, where kTypeKind is the |
4395 | -// "kind" of T as defined by enum TypeKind. |
4396 | -template <typename T, TypeKind kTypeKind> |
4397 | -class TypeWithoutFormatter { |
4398 | - public: |
4399 | - // This default version is called when kTypeKind is kOtherType. |
4400 | - static void PrintValue(const T& value, ::std::ostream* os) { |
4401 | - PrintBytesInObjectTo(reinterpret_cast<const unsigned char*>(&value), |
4402 | - sizeof(value), os); |
4403 | - } |
4404 | -}; |
4405 | - |
4406 | -// We print a protobuf using its ShortDebugString() when the string |
4407 | -// doesn't exceed this many characters; otherwise we print it using |
4408 | -// DebugString() for better readability. |
4409 | -const size_t kProtobufOneLinerMaxLength = 50; |
4410 | - |
4411 | -template <typename T> |
4412 | -class TypeWithoutFormatter<T, kProtobuf> { |
4413 | - public: |
4414 | - static void PrintValue(const T& value, ::std::ostream* os) { |
4415 | - const ::testing::internal::string short_str = value.ShortDebugString(); |
4416 | - const ::testing::internal::string pretty_str = |
4417 | - short_str.length() <= kProtobufOneLinerMaxLength ? |
4418 | - short_str : ("\n" + value.DebugString()); |
4419 | - *os << ("<" + pretty_str + ">"); |
4420 | - } |
4421 | -}; |
4422 | - |
4423 | -template <typename T> |
4424 | -class TypeWithoutFormatter<T, kConvertibleToInteger> { |
4425 | - public: |
4426 | - // Since T has no << operator or PrintTo() but can be implicitly |
4427 | - // converted to BiggestInt, we print it as a BiggestInt. |
4428 | - // |
4429 | - // Most likely T is an enum type (either named or unnamed), in which |
4430 | - // case printing it as an integer is the desired behavior. In case |
4431 | - // T is not an enum, printing it as an integer is the best we can do |
4432 | - // given that it has no user-defined printer. |
4433 | - static void PrintValue(const T& value, ::std::ostream* os) { |
4434 | - const internal::BiggestInt kBigInt = value; |
4435 | - *os << kBigInt; |
4436 | - } |
4437 | -}; |
4438 | - |
4439 | -// Prints the given value to the given ostream. If the value is a |
4440 | -// protocol message, its debug string is printed; if it's an enum or |
4441 | -// of a type implicitly convertible to BiggestInt, it's printed as an |
4442 | -// integer; otherwise the bytes in the value are printed. This is |
4443 | -// what UniversalPrinter<T>::Print() does when it knows nothing about |
4444 | -// type T and T has neither << operator nor PrintTo(). |
4445 | -// |
4446 | -// A user can override this behavior for a class type Foo by defining |
4447 | -// a << operator in the namespace where Foo is defined. |
4448 | -// |
4449 | -// We put this operator in namespace 'internal2' instead of 'internal' |
4450 | -// to simplify the implementation, as much code in 'internal' needs to |
4451 | -// use << in STL, which would conflict with our own << were it defined |
4452 | -// in 'internal'. |
4453 | -// |
4454 | -// Note that this operator<< takes a generic std::basic_ostream<Char, |
4455 | -// CharTraits> type instead of the more restricted std::ostream. If |
4456 | -// we define it to take an std::ostream instead, we'll get an |
4457 | -// "ambiguous overloads" compiler error when trying to print a type |
4458 | -// Foo that supports streaming to std::basic_ostream<Char, |
4459 | -// CharTraits>, as the compiler cannot tell whether |
4460 | -// operator<<(std::ostream&, const T&) or |
4461 | -// operator<<(std::basic_stream<Char, CharTraits>, const Foo&) is more |
4462 | -// specific. |
4463 | -template <typename Char, typename CharTraits, typename T> |
4464 | -::std::basic_ostream<Char, CharTraits>& operator<<( |
4465 | - ::std::basic_ostream<Char, CharTraits>& os, const T& x) { |
4466 | - TypeWithoutFormatter<T, |
4467 | - (internal::IsAProtocolMessage<T>::value ? kProtobuf : |
4468 | - internal::ImplicitlyConvertible<const T&, internal::BiggestInt>::value ? |
4469 | - kConvertibleToInteger : kOtherType)>::PrintValue(x, &os); |
4470 | - return os; |
4471 | -} |
4472 | - |
4473 | -} // namespace internal2 |
4474 | -} // namespace testing |
4475 | - |
4476 | -// This namespace MUST NOT BE NESTED IN ::testing, or the name look-up |
4477 | -// magic needed for implementing UniversalPrinter won't work. |
4478 | -namespace testing_internal { |
4479 | - |
4480 | -// Used to print a value that is not an STL-style container when the |
4481 | -// user doesn't define PrintTo() for it. |
4482 | -template <typename T> |
4483 | -void DefaultPrintNonContainerTo(const T& value, ::std::ostream* os) { |
4484 | - // With the following statement, during unqualified name lookup, |
4485 | - // testing::internal2::operator<< appears as if it was declared in |
4486 | - // the nearest enclosing namespace that contains both |
4487 | - // ::testing_internal and ::testing::internal2, i.e. the global |
4488 | - // namespace. For more details, refer to the C++ Standard section |
4489 | - // 7.3.4-1 [namespace.udir]. This allows us to fall back onto |
4490 | - // testing::internal2::operator<< in case T doesn't come with a << |
4491 | - // operator. |
4492 | - // |
4493 | - // We cannot write 'using ::testing::internal2::operator<<;', which |
4494 | - // gcc 3.3 fails to compile due to a compiler bug. |
4495 | - using namespace ::testing::internal2; // NOLINT |
4496 | - |
4497 | - // Assuming T is defined in namespace foo, in the next statement, |
4498 | - // the compiler will consider all of: |
4499 | - // |
4500 | - // 1. foo::operator<< (thanks to Koenig look-up), |
4501 | - // 2. ::operator<< (as the current namespace is enclosed in ::), |
4502 | - // 3. testing::internal2::operator<< (thanks to the using statement above). |
4503 | - // |
4504 | - // The operator<< whose type matches T best will be picked. |
4505 | - // |
4506 | - // We deliberately allow #2 to be a candidate, as sometimes it's |
4507 | - // impossible to define #1 (e.g. when foo is ::std, defining |
4508 | - // anything in it is undefined behavior unless you are a compiler |
4509 | - // vendor.). |
4510 | - *os << value; |
4511 | -} |
4512 | - |
4513 | -} // namespace testing_internal |
4514 | - |
4515 | -namespace testing { |
4516 | -namespace internal { |
4517 | - |
4518 | -// UniversalPrinter<T>::Print(value, ostream_ptr) prints the given |
4519 | -// value to the given ostream. The caller must ensure that |
4520 | -// 'ostream_ptr' is not NULL, or the behavior is undefined. |
4521 | -// |
4522 | -// We define UniversalPrinter as a class template (as opposed to a |
4523 | -// function template), as we need to partially specialize it for |
4524 | -// reference types, which cannot be done with function templates. |
4525 | -template <typename T> |
4526 | -class UniversalPrinter; |
4527 | - |
4528 | -template <typename T> |
4529 | -void UniversalPrint(const T& value, ::std::ostream* os); |
4530 | - |
4531 | -// Used to print an STL-style container when the user doesn't define |
4532 | -// a PrintTo() for it. |
4533 | -template <typename C> |
4534 | -void DefaultPrintTo(IsContainer /* dummy */, |
4535 | - false_type /* is not a pointer */, |
4536 | - const C& container, ::std::ostream* os) { |
4537 | - const size_t kMaxCount = 32; // The maximum number of elements to print. |
4538 | - *os << '{'; |
4539 | - size_t count = 0; |
4540 | - for (typename C::const_iterator it = container.begin(); |
4541 | - it != container.end(); ++it, ++count) { |
4542 | - if (count > 0) { |
4543 | - *os << ','; |
4544 | - if (count == kMaxCount) { // Enough has been printed. |
4545 | - *os << " ..."; |
4546 | - break; |
4547 | - } |
4548 | - } |
4549 | - *os << ' '; |
4550 | - // We cannot call PrintTo(*it, os) here as PrintTo() doesn't |
4551 | - // handle *it being a native array. |
4552 | - internal::UniversalPrint(*it, os); |
4553 | - } |
4554 | - |
4555 | - if (count > 0) { |
4556 | - *os << ' '; |
4557 | - } |
4558 | - *os << '}'; |
4559 | -} |
4560 | - |
4561 | -// Used to print a pointer that is neither a char pointer nor a member |
4562 | -// pointer, when the user doesn't define PrintTo() for it. (A member |
4563 | -// variable pointer or member function pointer doesn't really point to |
4564 | -// a location in the address space. Their representation is |
4565 | -// implementation-defined. Therefore they will be printed as raw |
4566 | -// bytes.) |
4567 | -template <typename T> |
4568 | -void DefaultPrintTo(IsNotContainer /* dummy */, |
4569 | - true_type /* is a pointer */, |
4570 | - T* p, ::std::ostream* os) { |
4571 | - if (p == NULL) { |
4572 | - *os << "NULL"; |
4573 | - } else { |
4574 | - // C++ doesn't allow casting from a function pointer to any object |
4575 | - // pointer. |
4576 | - // |
4577 | - // IsTrue() silences warnings: "Condition is always true", |
4578 | - // "unreachable code". |
4579 | - if (IsTrue(ImplicitlyConvertible<T*, const void*>::value)) { |
4580 | - // T is not a function type. We just call << to print p, |
4581 | - // relying on ADL to pick up user-defined << for their pointer |
4582 | - // types, if any. |
4583 | - *os << p; |
4584 | - } else { |
4585 | - // T is a function type, so '*os << p' doesn't do what we want |
4586 | - // (it just prints p as bool). We want to print p as a const |
4587 | - // void*. However, we cannot cast it to const void* directly, |
4588 | - // even using reinterpret_cast, as earlier versions of gcc |
4589 | - // (e.g. 3.4.5) cannot compile the cast when p is a function |
4590 | - // pointer. Casting to UInt64 first solves the problem. |
4591 | - *os << reinterpret_cast<const void*>( |
4592 | - reinterpret_cast<internal::UInt64>(p)); |
4593 | - } |
4594 | - } |
4595 | -} |
4596 | - |
4597 | -// Used to print a non-container, non-pointer value when the user |
4598 | -// doesn't define PrintTo() for it. |
4599 | -template <typename T> |
4600 | -void DefaultPrintTo(IsNotContainer /* dummy */, |
4601 | - false_type /* is not a pointer */, |
4602 | - const T& value, ::std::ostream* os) { |
4603 | - ::testing_internal::DefaultPrintNonContainerTo(value, os); |
4604 | -} |
4605 | - |
4606 | -// Prints the given value using the << operator if it has one; |
4607 | -// otherwise prints the bytes in it. This is what |
4608 | -// UniversalPrinter<T>::Print() does when PrintTo() is not specialized |
4609 | -// or overloaded for type T. |
4610 | -// |
4611 | -// A user can override this behavior for a class type Foo by defining |
4612 | -// an overload of PrintTo() in the namespace where Foo is defined. We |
4613 | -// give the user this option as sometimes defining a << operator for |
4614 | -// Foo is not desirable (e.g. the coding style may prevent doing it, |
4615 | -// or there is already a << operator but it doesn't do what the user |
4616 | -// wants). |
4617 | -template <typename T> |
4618 | -void PrintTo(const T& value, ::std::ostream* os) { |
4619 | - // DefaultPrintTo() is overloaded. The type of its first two |
4620 | - // arguments determine which version will be picked. If T is an |
4621 | - // STL-style container, the version for container will be called; if |
4622 | - // T is a pointer, the pointer version will be called; otherwise the |
4623 | - // generic version will be called. |
4624 | - // |
4625 | - // Note that we check for container types here, prior to we check |
4626 | - // for protocol message types in our operator<<. The rationale is: |
4627 | - // |
4628 | - // For protocol messages, we want to give people a chance to |
4629 | - // override Google Mock's format by defining a PrintTo() or |
4630 | - // operator<<. For STL containers, other formats can be |
4631 | - // incompatible with Google Mock's format for the container |
4632 | - // elements; therefore we check for container types here to ensure |
4633 | - // that our format is used. |
4634 | - // |
4635 | - // The second argument of DefaultPrintTo() is needed to bypass a bug |
4636 | - // in Symbian's C++ compiler that prevents it from picking the right |
4637 | - // overload between: |
4638 | - // |
4639 | - // PrintTo(const T& x, ...); |
4640 | - // PrintTo(T* x, ...); |
4641 | - DefaultPrintTo(IsContainerTest<T>(0), is_pointer<T>(), value, os); |
4642 | -} |
4643 | - |
4644 | -// The following list of PrintTo() overloads tells |
4645 | -// UniversalPrinter<T>::Print() how to print standard types (built-in |
4646 | -// types, strings, plain arrays, and pointers). |
4647 | - |
4648 | -// Overloads for various char types. |
4649 | -GTEST_API_ void PrintTo(unsigned char c, ::std::ostream* os); |
4650 | -GTEST_API_ void PrintTo(signed char c, ::std::ostream* os); |
4651 | -inline void PrintTo(char c, ::std::ostream* os) { |
4652 | - // When printing a plain char, we always treat it as unsigned. This |
4653 | - // way, the output won't be affected by whether the compiler thinks |
4654 | - // char is signed or not. |
4655 | - PrintTo(static_cast<unsigned char>(c), os); |
4656 | -} |
4657 | - |
4658 | -// Overloads for other simple built-in types. |
4659 | -inline void PrintTo(bool x, ::std::ostream* os) { |
4660 | - *os << (x ? "true" : "false"); |
4661 | -} |
4662 | - |
4663 | -// Overload for wchar_t type. |
4664 | -// Prints a wchar_t as a symbol if it is printable or as its internal |
4665 | -// code otherwise and also as its decimal code (except for L'\0'). |
4666 | -// The L'\0' char is printed as "L'\\0'". The decimal code is printed |
4667 | -// as signed integer when wchar_t is implemented by the compiler |
4668 | -// as a signed type and is printed as an unsigned integer when wchar_t |
4669 | -// is implemented as an unsigned type. |
4670 | -GTEST_API_ void PrintTo(wchar_t wc, ::std::ostream* os); |
4671 | - |
4672 | -// Overloads for C strings. |
4673 | -GTEST_API_ void PrintTo(const char* s, ::std::ostream* os); |
4674 | -inline void PrintTo(char* s, ::std::ostream* os) { |
4675 | - PrintTo(ImplicitCast_<const char*>(s), os); |
4676 | -} |
4677 | - |
4678 | -// signed/unsigned char is often used for representing binary data, so |
4679 | -// we print pointers to it as void* to be safe. |
4680 | -inline void PrintTo(const signed char* s, ::std::ostream* os) { |
4681 | - PrintTo(ImplicitCast_<const void*>(s), os); |
4682 | -} |
4683 | -inline void PrintTo(signed char* s, ::std::ostream* os) { |
4684 | - PrintTo(ImplicitCast_<const void*>(s), os); |
4685 | -} |
4686 | -inline void PrintTo(const unsigned char* s, ::std::ostream* os) { |
4687 | - PrintTo(ImplicitCast_<const void*>(s), os); |
4688 | -} |
4689 | -inline void PrintTo(unsigned char* s, ::std::ostream* os) { |
4690 | - PrintTo(ImplicitCast_<const void*>(s), os); |
4691 | -} |
4692 | - |
4693 | -// MSVC can be configured to define wchar_t as a typedef of unsigned |
4694 | -// short. It defines _NATIVE_WCHAR_T_DEFINED when wchar_t is a native |
4695 | -// type. When wchar_t is a typedef, defining an overload for const |
4696 | -// wchar_t* would cause unsigned short* be printed as a wide string, |
4697 | -// possibly causing invalid memory accesses. |
4698 | -#if !defined(_MSC_VER) || defined(_NATIVE_WCHAR_T_DEFINED) |
4699 | -// Overloads for wide C strings |
4700 | -GTEST_API_ void PrintTo(const wchar_t* s, ::std::ostream* os); |
4701 | -inline void PrintTo(wchar_t* s, ::std::ostream* os) { |
4702 | - PrintTo(ImplicitCast_<const wchar_t*>(s), os); |
4703 | -} |
4704 | -#endif |
4705 | - |
4706 | -// Overload for C arrays. Multi-dimensional arrays are printed |
4707 | -// properly. |
4708 | - |
4709 | -// Prints the given number of elements in an array, without printing |
4710 | -// the curly braces. |
4711 | -template <typename T> |
4712 | -void PrintRawArrayTo(const T a[], size_t count, ::std::ostream* os) { |
4713 | - UniversalPrint(a[0], os); |
4714 | - for (size_t i = 1; i != count; i++) { |
4715 | - *os << ", "; |
4716 | - UniversalPrint(a[i], os); |
4717 | - } |
4718 | -} |
4719 | - |
4720 | -// Overloads for ::string and ::std::string. |
4721 | -#if GTEST_HAS_GLOBAL_STRING |
4722 | -GTEST_API_ void PrintStringTo(const ::string&s, ::std::ostream* os); |
4723 | -inline void PrintTo(const ::string& s, ::std::ostream* os) { |
4724 | - PrintStringTo(s, os); |
4725 | -} |
4726 | -#endif // GTEST_HAS_GLOBAL_STRING |
4727 | - |
4728 | -GTEST_API_ void PrintStringTo(const ::std::string&s, ::std::ostream* os); |
4729 | -inline void PrintTo(const ::std::string& s, ::std::ostream* os) { |
4730 | - PrintStringTo(s, os); |
4731 | -} |
4732 | - |
4733 | -// Overloads for ::wstring and ::std::wstring. |
4734 | -#if GTEST_HAS_GLOBAL_WSTRING |
4735 | -GTEST_API_ void PrintWideStringTo(const ::wstring&s, ::std::ostream* os); |
4736 | -inline void PrintTo(const ::wstring& s, ::std::ostream* os) { |
4737 | - PrintWideStringTo(s, os); |
4738 | -} |
4739 | -#endif // GTEST_HAS_GLOBAL_WSTRING |
4740 | - |
4741 | -#if GTEST_HAS_STD_WSTRING |
4742 | -GTEST_API_ void PrintWideStringTo(const ::std::wstring&s, ::std::ostream* os); |
4743 | -inline void PrintTo(const ::std::wstring& s, ::std::ostream* os) { |
4744 | - PrintWideStringTo(s, os); |
4745 | -} |
4746 | -#endif // GTEST_HAS_STD_WSTRING |
4747 | - |
4748 | -#if GTEST_HAS_TR1_TUPLE |
4749 | -// Overload for ::std::tr1::tuple. Needed for printing function arguments, |
4750 | -// which are packed as tuples. |
4751 | - |
4752 | -// Helper function for printing a tuple. T must be instantiated with |
4753 | -// a tuple type. |
4754 | -template <typename T> |
4755 | -void PrintTupleTo(const T& t, ::std::ostream* os); |
4756 | - |
4757 | -// Overloaded PrintTo() for tuples of various arities. We support |
4758 | -// tuples of up-to 10 fields. The following implementation works |
4759 | -// regardless of whether tr1::tuple is implemented using the |
4760 | -// non-standard variadic template feature or not. |
4761 | - |
4762 | -inline void PrintTo(const ::std::tr1::tuple<>& t, ::std::ostream* os) { |
4763 | - PrintTupleTo(t, os); |
4764 | -} |
4765 | - |
4766 | -template <typename T1> |
4767 | -void PrintTo(const ::std::tr1::tuple<T1>& t, ::std::ostream* os) { |
4768 | - PrintTupleTo(t, os); |
4769 | -} |
4770 | - |
4771 | -template <typename T1, typename T2> |
4772 | -void PrintTo(const ::std::tr1::tuple<T1, T2>& t, ::std::ostream* os) { |
4773 | - PrintTupleTo(t, os); |
4774 | -} |
4775 | - |
4776 | -template <typename T1, typename T2, typename T3> |
4777 | -void PrintTo(const ::std::tr1::tuple<T1, T2, T3>& t, ::std::ostream* os) { |
4778 | - PrintTupleTo(t, os); |
4779 | -} |
4780 | - |
4781 | -template <typename T1, typename T2, typename T3, typename T4> |
4782 | -void PrintTo(const ::std::tr1::tuple<T1, T2, T3, T4>& t, ::std::ostream* os) { |
4783 | - PrintTupleTo(t, os); |
4784 | -} |
4785 | - |
4786 | -template <typename T1, typename T2, typename T3, typename T4, typename T5> |
4787 | -void PrintTo(const ::std::tr1::tuple<T1, T2, T3, T4, T5>& t, |
4788 | - ::std::ostream* os) { |
4789 | - PrintTupleTo(t, os); |
4790 | -} |
4791 | - |
4792 | -template <typename T1, typename T2, typename T3, typename T4, typename T5, |
4793 | - typename T6> |
4794 | -void PrintTo(const ::std::tr1::tuple<T1, T2, T3, T4, T5, T6>& t, |
4795 | - ::std::ostream* os) { |
4796 | - PrintTupleTo(t, os); |
4797 | -} |
4798 | - |
4799 | -template <typename T1, typename T2, typename T3, typename T4, typename T5, |
4800 | - typename T6, typename T7> |
4801 | -void PrintTo(const ::std::tr1::tuple<T1, T2, T3, T4, T5, T6, T7>& t, |
4802 | - ::std::ostream* os) { |
4803 | - PrintTupleTo(t, os); |
4804 | -} |
4805 | - |
4806 | -template <typename T1, typename T2, typename T3, typename T4, typename T5, |
4807 | - typename T6, typename T7, typename T8> |
4808 | -void PrintTo(const ::std::tr1::tuple<T1, T2, T3, T4, T5, T6, T7, T8>& t, |
4809 | - ::std::ostream* os) { |
4810 | - PrintTupleTo(t, os); |
4811 | -} |
4812 | - |
4813 | -template <typename T1, typename T2, typename T3, typename T4, typename T5, |
4814 | - typename T6, typename T7, typename T8, typename T9> |
4815 | -void PrintTo(const ::std::tr1::tuple<T1, T2, T3, T4, T5, T6, T7, T8, T9>& t, |
4816 | - ::std::ostream* os) { |
4817 | - PrintTupleTo(t, os); |
4818 | -} |
4819 | - |
4820 | -template <typename T1, typename T2, typename T3, typename T4, typename T5, |
4821 | - typename T6, typename T7, typename T8, typename T9, typename T10> |
4822 | -void PrintTo( |
4823 | - const ::std::tr1::tuple<T1, T2, T3, T4, T5, T6, T7, T8, T9, T10>& t, |
4824 | - ::std::ostream* os) { |
4825 | - PrintTupleTo(t, os); |
4826 | -} |
4827 | -#endif // GTEST_HAS_TR1_TUPLE |
4828 | - |
4829 | -// Overload for std::pair. |
4830 | -template <typename T1, typename T2> |
4831 | -void PrintTo(const ::std::pair<T1, T2>& value, ::std::ostream* os) { |
4832 | - *os << '('; |
4833 | - // We cannot use UniversalPrint(value.first, os) here, as T1 may be |
4834 | - // a reference type. The same for printing value.second. |
4835 | - UniversalPrinter<T1>::Print(value.first, os); |
4836 | - *os << ", "; |
4837 | - UniversalPrinter<T2>::Print(value.second, os); |
4838 | - *os << ')'; |
4839 | -} |
4840 | - |
4841 | -// Implements printing a non-reference type T by letting the compiler |
4842 | -// pick the right overload of PrintTo() for T. |
4843 | -template <typename T> |
4844 | -class UniversalPrinter { |
4845 | - public: |
4846 | - // MSVC warns about adding const to a function type, so we want to |
4847 | - // disable the warning. |
4848 | -#ifdef _MSC_VER |
4849 | -# pragma warning(push) // Saves the current warning state. |
4850 | -# pragma warning(disable:4180) // Temporarily disables warning 4180. |
4851 | -#endif // _MSC_VER |
4852 | - |
4853 | - // Note: we deliberately don't call this PrintTo(), as that name |
4854 | - // conflicts with ::testing::internal::PrintTo in the body of the |
4855 | - // function. |
4856 | - static void Print(const T& value, ::std::ostream* os) { |
4857 | - // By default, ::testing::internal::PrintTo() is used for printing |
4858 | - // the value. |
4859 | - // |
4860 | - // Thanks to Koenig look-up, if T is a class and has its own |
4861 | - // PrintTo() function defined in its namespace, that function will |
4862 | - // be visible here. Since it is more specific than the generic ones |
4863 | - // in ::testing::internal, it will be picked by the compiler in the |
4864 | - // following statement - exactly what we want. |
4865 | - PrintTo(value, os); |
4866 | - } |
4867 | - |
4868 | -#ifdef _MSC_VER |
4869 | -# pragma warning(pop) // Restores the warning state. |
4870 | -#endif // _MSC_VER |
4871 | -}; |
4872 | - |
4873 | -// UniversalPrintArray(begin, len, os) prints an array of 'len' |
4874 | -// elements, starting at address 'begin'. |
4875 | -template <typename T> |
4876 | -void UniversalPrintArray(const T* begin, size_t len, ::std::ostream* os) { |
4877 | - if (len == 0) { |
4878 | - *os << "{}"; |
4879 | - } else { |
4880 | - *os << "{ "; |
4881 | - const size_t kThreshold = 18; |
4882 | - const size_t kChunkSize = 8; |
4883 | - // If the array has more than kThreshold elements, we'll have to |
4884 | - // omit some details by printing only the first and the last |
4885 | - // kChunkSize elements. |
4886 | - // TODO(wan@google.com): let the user control the threshold using a flag. |
4887 | - if (len <= kThreshold) { |
4888 | - PrintRawArrayTo(begin, len, os); |
4889 | - } else { |
4890 | - PrintRawArrayTo(begin, kChunkSize, os); |
4891 | - *os << ", ..., "; |
4892 | - PrintRawArrayTo(begin + len - kChunkSize, kChunkSize, os); |
4893 | - } |
4894 | - *os << " }"; |
4895 | - } |
4896 | -} |
4897 | -// This overload prints a (const) char array compactly. |
4898 | -GTEST_API_ void UniversalPrintArray( |
4899 | - const char* begin, size_t len, ::std::ostream* os); |
4900 | - |
4901 | -// This overload prints a (const) wchar_t array compactly. |
4902 | -GTEST_API_ void UniversalPrintArray( |
4903 | - const wchar_t* begin, size_t len, ::std::ostream* os); |
4904 | - |
4905 | -// Implements printing an array type T[N]. |
4906 | -template <typename T, size_t N> |
4907 | -class UniversalPrinter<T[N]> { |
4908 | - public: |
4909 | - // Prints the given array, omitting some elements when there are too |
4910 | - // many. |
4911 | - static void Print(const T (&a)[N], ::std::ostream* os) { |
4912 | - UniversalPrintArray(a, N, os); |
4913 | - } |
4914 | -}; |
4915 | - |
4916 | -// Implements printing a reference type T&. |
4917 | -template <typename T> |
4918 | -class UniversalPrinter<T&> { |
4919 | - public: |
4920 | - // MSVC warns about adding const to a function type, so we want to |
4921 | - // disable the warning. |
4922 | -#ifdef _MSC_VER |
4923 | -# pragma warning(push) // Saves the current warning state. |
4924 | -# pragma warning(disable:4180) // Temporarily disables warning 4180. |
4925 | -#endif // _MSC_VER |
4926 | - |
4927 | - static void Print(const T& value, ::std::ostream* os) { |
4928 | - // Prints the address of the value. We use reinterpret_cast here |
4929 | - // as static_cast doesn't compile when T is a function type. |
4930 | - *os << "@" << reinterpret_cast<const void*>(&value) << " "; |
4931 | - |
4932 | - // Then prints the value itself. |
4933 | - UniversalPrint(value, os); |
4934 | - } |
4935 | - |
4936 | -#ifdef _MSC_VER |
4937 | -# pragma warning(pop) // Restores the warning state. |
4938 | -#endif // _MSC_VER |
4939 | -}; |
4940 | - |
4941 | -// Prints a value tersely: for a reference type, the referenced value |
4942 | -// (but not the address) is printed; for a (const) char pointer, the |
4943 | -// NUL-terminated string (but not the pointer) is printed. |
4944 | - |
4945 | -template <typename T> |
4946 | -class UniversalTersePrinter { |
4947 | - public: |
4948 | - static void Print(const T& value, ::std::ostream* os) { |
4949 | - UniversalPrint(value, os); |
4950 | - } |
4951 | -}; |
4952 | -template <typename T> |
4953 | -class UniversalTersePrinter<T&> { |
4954 | - public: |
4955 | - static void Print(const T& value, ::std::ostream* os) { |
4956 | - UniversalPrint(value, os); |
4957 | - } |
4958 | -}; |
4959 | -template <typename T, size_t N> |
4960 | -class UniversalTersePrinter<T[N]> { |
4961 | - public: |
4962 | - static void Print(const T (&value)[N], ::std::ostream* os) { |
4963 | - UniversalPrinter<T[N]>::Print(value, os); |
4964 | - } |
4965 | -}; |
4966 | -template <> |
4967 | -class UniversalTersePrinter<const char*> { |
4968 | - public: |
4969 | - static void Print(const char* str, ::std::ostream* os) { |
4970 | - if (str == NULL) { |
4971 | - *os << "NULL"; |
4972 | - } else { |
4973 | - UniversalPrint(string(str), os); |
4974 | - } |
4975 | - } |
4976 | -}; |
4977 | -template <> |
4978 | -class UniversalTersePrinter<char*> { |
4979 | - public: |
4980 | - static void Print(char* str, ::std::ostream* os) { |
4981 | - UniversalTersePrinter<const char*>::Print(str, os); |
4982 | - } |
4983 | -}; |
4984 | - |
4985 | -#if GTEST_HAS_STD_WSTRING |
4986 | -template <> |
4987 | -class UniversalTersePrinter<const wchar_t*> { |
4988 | - public: |
4989 | - static void Print(const wchar_t* str, ::std::ostream* os) { |
4990 | - if (str == NULL) { |
4991 | - *os << "NULL"; |
4992 | - } else { |
4993 | - UniversalPrint(::std::wstring(str), os); |
4994 | - } |
4995 | - } |
4996 | -}; |
4997 | -#endif |
4998 | - |
4999 | -template <> |
5000 | -class UniversalTersePrinter<wchar_t*> { |
FAILED: Continuous integration, rev:100 /jenkins. canonical. com/system- apps/job/ lp-sync- monitor- ci/1/ /jenkins. canonical. com/system- apps/job/ build/2354/ console /jenkins. canonical. com/system- apps/job/ build-0- fetch/2354 /jenkins. canonical. com/system- apps/job/ build-2- binpkg/ arch=amd64, release= xenial+ overlay/ 2172 /jenkins. canonical. com/system- apps/job/ build-2- binpkg/ arch=amd64, release= xenial+ overlay/ 2172/artifact/ output/ *zip*/output. zip /jenkins. canonical. com/system- apps/job/ build-2- binpkg/ arch=amd64, release= zesty/2172/ console /jenkins. canonical. com/system- apps/job/ build-2- binpkg/ arch=armhf, release= xenial+ overlay/ 2172 /jenkins. canonical. com/system- apps/job/ build-2- binpkg/ arch=armhf, release= xenial+ overlay/ 2172/artifact/ output/ *zip*/output. zip /jenkins. canonical. com/system- apps/job/ build-2- binpkg/ arch=armhf, release= zesty/2172/ console /jenkins. canonical. com/system- apps/job/ build-2- binpkg/ arch=i386, release= xenial+ overlay/ 2172 /jenkins. canonical. com/system- apps/job/ build-2- binpkg/ arch=i386, release= xenial+ overlay/ 2172/artifact/ output/ *zip*/output. zip /jenkins. canonical. com/system- apps/job/ build-2- binpkg/ arch=i386, release= zesty/2172/ console
https:/
Executed test runs:
FAILURE: https:/
SUCCESS: https:/
SUCCESS: https:/
deb: https:/
FAILURE: https:/
SUCCESS: https:/
deb: https:/
FAILURE: https:/
SUCCESS: https:/
deb: https:/
FAILURE: https:/
Click here to trigger a rebuild: /jenkins. canonical. com/system- apps/job/ lp-sync- monitor- ci/1/rebuild
https:/