couchbase 4.2.2 → 4.2.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1523) hide show
  1. package/deps/couchbase-cxx-client/.github/workflows/sanitizers.yml +20 -12
  2. package/deps/couchbase-cxx-client/.github/workflows/tests.yml +5 -3
  3. package/deps/couchbase-cxx-client/.idea/vcs.xml +2 -0
  4. package/deps/couchbase-cxx-client/CMakeLists.txt +15 -6
  5. package/deps/couchbase-cxx-client/bin/build-tests +3 -0
  6. package/deps/couchbase-cxx-client/bin/build-tests.rb +9 -0
  7. package/deps/couchbase-cxx-client/bin/init-cluster +38 -11
  8. package/deps/couchbase-cxx-client/bin/run-unit-tests +9 -9
  9. package/deps/couchbase-cxx-client/cmake/CompilerWarnings.cmake +12 -4
  10. package/deps/couchbase-cxx-client/cmake/Documentation.cmake +4 -3
  11. package/deps/couchbase-cxx-client/cmake/OpenSSL.cmake +52 -7
  12. package/deps/couchbase-cxx-client/cmake/Testing.cmake +4 -4
  13. package/deps/couchbase-cxx-client/cmake/ThirdPartyDependencies.cmake +4 -0
  14. package/deps/couchbase-cxx-client/cmake/VersionInfo.cmake +39 -3
  15. package/deps/couchbase-cxx-client/cmake/test_openssl.cxx +7 -0
  16. package/deps/couchbase-cxx-client/core/bucket.cxx +3 -2
  17. package/deps/couchbase-cxx-client/core/bucket.hxx +9 -0
  18. package/deps/couchbase-cxx-client/core/cluster_options.cxx +2 -2
  19. package/deps/couchbase-cxx-client/core/cluster_options.hxx +3 -7
  20. package/deps/couchbase-cxx-client/core/cluster_options_fwd.hxx +26 -0
  21. package/deps/couchbase-cxx-client/core/config_profile.hxx +2 -65
  22. package/deps/couchbase-cxx-client/core/config_profiles.cxx +79 -0
  23. package/deps/couchbase-cxx-client/core/config_profiles.hxx +56 -0
  24. package/deps/couchbase-cxx-client/core/crypto/CMakeLists.txt +5 -1
  25. package/deps/couchbase-cxx-client/core/error_context/analytics.hxx +2 -1
  26. package/deps/couchbase-cxx-client/core/error_context/http.hxx +2 -1
  27. package/deps/couchbase-cxx-client/core/error_context/query.hxx +2 -1
  28. package/deps/couchbase-cxx-client/core/error_context/search.hxx +2 -1
  29. package/deps/couchbase-cxx-client/core/error_context/view.hxx +2 -1
  30. package/deps/couchbase-cxx-client/core/impl/analytics.cxx +236 -0
  31. package/deps/couchbase-cxx-client/core/impl/cluster.cxx +1 -1
  32. package/deps/couchbase-cxx-client/core/impl/collection_query_index_manager.cxx +3 -3
  33. package/deps/couchbase-cxx-client/core/impl/dns_srv_tracker.cxx +5 -3
  34. package/deps/couchbase-cxx-client/core/impl/get_all_query_indexes.cxx +3 -3
  35. package/deps/couchbase-cxx-client/core/impl/query.cxx +19 -17
  36. package/deps/couchbase-cxx-client/core/impl/subdoc/lookup_in_macro.cxx +1 -0
  37. package/deps/couchbase-cxx-client/core/impl/subdoc/mutate_in_macro.cxx +1 -0
  38. package/deps/couchbase-cxx-client/core/impl/transaction_get_result.cxx +54 -0
  39. package/deps/couchbase-cxx-client/core/io/dns_client.cxx +225 -0
  40. package/deps/couchbase-cxx-client/core/io/dns_client.hxx +19 -188
  41. package/deps/couchbase-cxx-client/core/io/http_context.hxx +1 -1
  42. package/deps/couchbase-cxx-client/core/io/http_session.hxx +10 -0
  43. package/deps/couchbase-cxx-client/core/io/http_session_manager.hxx +5 -3
  44. package/deps/couchbase-cxx-client/core/io/mcbp_session.cxx +27 -0
  45. package/deps/couchbase-cxx-client/core/io/retry_orchestrator.hxx +3 -2
  46. package/deps/couchbase-cxx-client/core/meta/CMakeLists.txt +7 -5
  47. package/deps/couchbase-cxx-client/core/meta/version.cxx +19 -0
  48. package/deps/couchbase-cxx-client/core/operations/document_analytics.cxx +1 -0
  49. package/deps/couchbase-cxx-client/core/operations/document_analytics.hxx +1 -0
  50. package/deps/couchbase-cxx-client/core/operations/document_append.hxx +1 -1
  51. package/deps/couchbase-cxx-client/core/operations/document_decrement.hxx +1 -1
  52. package/deps/couchbase-cxx-client/core/operations/document_exists.hxx +1 -1
  53. package/deps/couchbase-cxx-client/core/operations/document_get.hxx +1 -1
  54. package/deps/couchbase-cxx-client/core/operations/document_get_and_lock.hxx +1 -1
  55. package/deps/couchbase-cxx-client/core/operations/document_get_and_touch.hxx +1 -1
  56. package/deps/couchbase-cxx-client/core/operations/document_get_projected.hxx +1 -1
  57. package/deps/couchbase-cxx-client/core/operations/document_increment.hxx +1 -1
  58. package/deps/couchbase-cxx-client/core/operations/document_insert.hxx +1 -1
  59. package/deps/couchbase-cxx-client/core/operations/document_lookup_in.hxx +1 -1
  60. package/deps/couchbase-cxx-client/core/operations/document_mutate_in.hxx +1 -1
  61. package/deps/couchbase-cxx-client/core/operations/document_prepend.hxx +1 -1
  62. package/deps/couchbase-cxx-client/core/operations/document_query.cxx +2 -0
  63. package/deps/couchbase-cxx-client/core/operations/document_query.hxx +6 -0
  64. package/deps/couchbase-cxx-client/core/operations/document_remove.hxx +1 -1
  65. package/deps/couchbase-cxx-client/core/operations/document_replace.hxx +1 -1
  66. package/deps/couchbase-cxx-client/core/operations/document_search.cxx +6 -2
  67. package/deps/couchbase-cxx-client/core/operations/document_search.hxx +1 -1
  68. package/deps/couchbase-cxx-client/core/operations/document_touch.hxx +1 -1
  69. package/deps/couchbase-cxx-client/core/operations/document_unlock.hxx +1 -1
  70. package/deps/couchbase-cxx-client/core/operations/document_upsert.hxx +1 -1
  71. package/deps/couchbase-cxx-client/core/operations/document_view.hxx +1 -0
  72. package/deps/couchbase-cxx-client/core/operations/management/analytics_problem.hxx +2 -1
  73. package/deps/couchbase-cxx-client/core/operations/management/eventing_problem.hxx +2 -1
  74. package/deps/couchbase-cxx-client/core/platform/base64.cc +2 -1
  75. package/deps/couchbase-cxx-client/core/protocol/client_opcode.hxx +1 -0
  76. package/deps/couchbase-cxx-client/core/protocol/cmd_info.hxx +2 -1
  77. package/deps/couchbase-cxx-client/core/public_fwd.hxx +21 -0
  78. package/deps/couchbase-cxx-client/core/tls_verify_mode.hxx +26 -0
  79. package/deps/couchbase-cxx-client/core/topology/configuration.cxx +15 -2
  80. package/deps/couchbase-cxx-client/core/topology/configuration.hxx +5 -1
  81. package/deps/couchbase-cxx-client/core/transactions/active_transaction_record.hxx +2 -2
  82. package/deps/couchbase-cxx-client/core/transactions/atr_cleanup_entry.cxx +1 -0
  83. package/deps/couchbase-cxx-client/core/transactions/atr_ids.cxx +1 -1
  84. package/deps/couchbase-cxx-client/core/transactions/attempt_context_impl.cxx +78 -44
  85. package/deps/couchbase-cxx-client/core/transactions/attempt_context_impl.hxx +90 -59
  86. package/deps/couchbase-cxx-client/core/transactions/attempt_context_testing_hooks.cxx +93 -0
  87. package/deps/couchbase-cxx-client/core/transactions/attempt_context_testing_hooks.hxx +48 -75
  88. package/deps/couchbase-cxx-client/core/transactions/cleanup_testing_hooks.cxx +52 -0
  89. package/deps/couchbase-cxx-client/core/transactions/cleanup_testing_hooks.hxx +17 -31
  90. package/deps/couchbase-cxx-client/core/transactions/exceptions.cxx +0 -1
  91. package/deps/couchbase-cxx-client/core/transactions/exceptions.hxx +14 -11
  92. package/deps/couchbase-cxx-client/core/transactions/forward_compat.hxx +2 -2
  93. package/deps/couchbase-cxx-client/core/transactions/internal/transaction_context.hxx +14 -14
  94. package/deps/couchbase-cxx-client/core/transactions/internal/transaction_fields.hxx +1 -0
  95. package/deps/couchbase-cxx-client/core/transactions/internal/transactions_cleanup.hxx +7 -1
  96. package/deps/couchbase-cxx-client/core/transactions/staged_mutation.cxx +1 -1
  97. package/deps/couchbase-cxx-client/core/transactions/staged_mutation.hxx +12 -2
  98. package/deps/couchbase-cxx-client/core/transactions/transaction_context.cxx +9 -11
  99. package/deps/couchbase-cxx-client/core/transactions/transaction_get_result.cxx +41 -31
  100. package/deps/couchbase-cxx-client/core/transactions/transaction_get_result.hxx +69 -21
  101. package/deps/couchbase-cxx-client/core/transactions/transaction_links.hxx +13 -1
  102. package/deps/couchbase-cxx-client/core/transactions/transactions.cxx +5 -4
  103. package/deps/couchbase-cxx-client/core/transactions/transactions_cleanup.cxx +144 -155
  104. package/deps/couchbase-cxx-client/core/transactions/waitable_op_list.hxx +1 -0
  105. package/deps/couchbase-cxx-client/core/transactions.hxx +1 -1
  106. package/deps/couchbase-cxx-client/core/utils/connection_string.cxx +25 -3
  107. package/deps/couchbase-cxx-client/core/utils/connection_string.hxx +3 -3
  108. package/deps/couchbase-cxx-client/core/utils/crc32.hxx +3 -2
  109. package/deps/couchbase-cxx-client/core/utils/json.cxx +4 -1
  110. package/deps/couchbase-cxx-client/core/utils/json_streaming_lexer.hxx +2 -1
  111. package/deps/couchbase-cxx-client/core/utils/url_codec.cxx +2 -1
  112. package/deps/couchbase-cxx-client/couchbase/analytics_error_context.hxx +143 -0
  113. package/deps/couchbase-cxx-client/couchbase/analytics_meta_data.hxx +155 -0
  114. package/deps/couchbase-cxx-client/couchbase/analytics_metrics.hxx +163 -0
  115. package/deps/couchbase-cxx-client/couchbase/analytics_options.hxx +359 -0
  116. package/deps/couchbase-cxx-client/couchbase/analytics_result.hxx +102 -0
  117. package/deps/couchbase-cxx-client/couchbase/analytics_scan_consistency.hxx +46 -0
  118. package/deps/couchbase-cxx-client/couchbase/analytics_status.hxx +41 -0
  119. package/deps/couchbase-cxx-client/couchbase/analytics_warning.hxx +85 -0
  120. package/deps/couchbase-cxx-client/couchbase/behavior_options.hxx +10 -1
  121. package/deps/couchbase-cxx-client/couchbase/cluster.hxx +38 -3
  122. package/deps/couchbase-cxx-client/couchbase/cluster_options.hxx +10 -10
  123. package/deps/couchbase-cxx-client/couchbase/collection.hxx +22 -17
  124. package/deps/couchbase-cxx-client/couchbase/collection_query_index_manager.hxx +1 -1
  125. package/deps/couchbase-cxx-client/couchbase/common_options.hxx +1 -1
  126. package/deps/couchbase-cxx-client/couchbase/configuration_profile.hxx +1 -1
  127. package/deps/couchbase-cxx-client/couchbase/configuration_profiles_registry.hxx +0 -1
  128. package/deps/couchbase-cxx-client/couchbase/create_primary_query_index_options.hxx +1 -1
  129. package/deps/couchbase-cxx-client/couchbase/drop_primary_query_index_options.hxx +1 -1
  130. package/deps/couchbase-cxx-client/couchbase/drop_query_index_options.hxx +1 -1
  131. package/deps/couchbase-cxx-client/couchbase/fmt/analytics_status.hxx +76 -0
  132. package/deps/couchbase-cxx-client/couchbase/fmt/cas.hxx +12 -0
  133. package/deps/couchbase-cxx-client/couchbase/fmt/durability_level.hxx +6 -0
  134. package/deps/couchbase-cxx-client/couchbase/fmt/key_value_extended_error_info.hxx +6 -0
  135. package/deps/couchbase-cxx-client/couchbase/fmt/key_value_status_code.hxx +6 -0
  136. package/deps/couchbase-cxx-client/couchbase/fmt/mutation_token.hxx +6 -0
  137. package/deps/couchbase-cxx-client/couchbase/fmt/query_scan_consistency.hxx +6 -0
  138. package/deps/couchbase-cxx-client/couchbase/fmt/query_status.hxx +6 -0
  139. package/deps/couchbase-cxx-client/couchbase/fmt/retry_reason.hxx +6 -0
  140. package/deps/couchbase-cxx-client/couchbase/fmt/tls_verify_mode.hxx +6 -0
  141. package/deps/couchbase-cxx-client/couchbase/get_all_query_indexes_options.hxx +5 -4
  142. package/deps/couchbase-cxx-client/couchbase/query_index_manager.hxx +4 -2
  143. package/deps/couchbase-cxx-client/couchbase/query_options.hxx +0 -1
  144. package/deps/couchbase-cxx-client/couchbase/scope.hxx +35 -1
  145. package/deps/couchbase-cxx-client/couchbase/subdoc/array_add_unique.hxx +2 -0
  146. package/deps/couchbase-cxx-client/couchbase/subdoc/array_append.hxx +2 -0
  147. package/deps/couchbase-cxx-client/couchbase/subdoc/array_insert.hxx +2 -0
  148. package/deps/couchbase-cxx-client/couchbase/subdoc/array_prepend.hxx +2 -0
  149. package/deps/couchbase-cxx-client/couchbase/subdoc/count.hxx +2 -0
  150. package/deps/couchbase-cxx-client/couchbase/subdoc/counter.hxx +2 -0
  151. package/deps/couchbase-cxx-client/couchbase/subdoc/exists.hxx +2 -0
  152. package/deps/couchbase-cxx-client/couchbase/subdoc/get.hxx +2 -0
  153. package/deps/couchbase-cxx-client/couchbase/subdoc/insert.hxx +2 -0
  154. package/deps/couchbase-cxx-client/couchbase/subdoc/remove.hxx +2 -0
  155. package/deps/couchbase-cxx-client/couchbase/subdoc/replace.hxx +3 -1
  156. package/deps/couchbase-cxx-client/couchbase/subdoc/upsert.hxx +2 -0
  157. package/deps/couchbase-cxx-client/couchbase/tracing/request_span.hxx +63 -0
  158. package/deps/couchbase-cxx-client/couchbase/tracing/request_tracer.hxx +2 -40
  159. package/deps/couchbase-cxx-client/couchbase/transaction_op_error_context.hxx +4 -4
  160. package/deps/couchbase-cxx-client/couchbase/transactions/async_attempt_context.hxx +93 -14
  161. package/deps/couchbase-cxx-client/couchbase/transactions/attempt_context.hxx +88 -15
  162. package/deps/couchbase-cxx-client/couchbase/transactions/transaction_get_result.hxx +55 -35
  163. package/deps/couchbase-cxx-client/couchbase/transactions/transaction_keyspace.hxx +11 -1
  164. package/deps/couchbase-cxx-client/couchbase/transactions/transaction_options.hxx +79 -8
  165. package/deps/couchbase-cxx-client/couchbase/transactions/transaction_query_options.hxx +127 -15
  166. package/deps/couchbase-cxx-client/couchbase/transactions/transaction_query_result.hxx +6 -21
  167. package/deps/couchbase-cxx-client/couchbase/transactions/transaction_result.hxx +0 -1
  168. package/deps/couchbase-cxx-client/couchbase/transactions/transactions_cleanup_config.hxx +5 -3
  169. package/deps/couchbase-cxx-client/couchbase/transactions/transactions_config.hxx +9 -5
  170. package/deps/couchbase-cxx-client/couchbase/transactions/transactions_query_config.hxx +6 -3
  171. package/deps/couchbase-cxx-client/couchbase/transactions.hxx +36 -2
  172. package/deps/couchbase-cxx-client/docs/Doxyfile.in +324 -223
  173. package/deps/couchbase-cxx-client/docs/cbc-analytics.md +171 -0
  174. package/deps/couchbase-cxx-client/docs/cbc-get.md +160 -0
  175. package/deps/couchbase-cxx-client/docs/cbc-pillowfight.md +163 -0
  176. package/deps/couchbase-cxx-client/docs/cbc-query.md +179 -0
  177. package/deps/couchbase-cxx-client/docs/cbc.md +46 -0
  178. package/deps/couchbase-cxx-client/docs/cli.hxx +33 -0
  179. package/deps/couchbase-cxx-client/docs/doxygen-awesome.css +474 -89
  180. package/deps/couchbase-cxx-client/docs/mainpage.hxx +9 -8
  181. package/deps/couchbase-cxx-client/docs/stability.hxx +15 -0
  182. package/deps/couchbase-cxx-client/examples/async_game_server.cxx +56 -54
  183. package/deps/couchbase-cxx-client/examples/distributed_mutex.cxx +2 -0
  184. package/deps/couchbase-cxx-client/examples/game_server.cxx +9 -10
  185. package/deps/couchbase-cxx-client/test/CMakeLists.txt +9 -7
  186. package/deps/couchbase-cxx-client/test/benchmark_helper_integration.hxx +2 -2
  187. package/deps/couchbase-cxx-client/test/data/search_beers_dataset.json +70 -0
  188. package/deps/couchbase-cxx-client/test/data/search_beers_index_params.json +108 -0
  189. package/deps/couchbase-cxx-client/test/test_helper.hxx +6 -6
  190. package/deps/couchbase-cxx-client/test/test_integration_analytics.cxx +289 -13
  191. package/deps/couchbase-cxx-client/test/test_integration_crud.cxx +8 -1
  192. package/deps/couchbase-cxx-client/test/test_integration_diagnostics.cxx +3 -3
  193. package/deps/couchbase-cxx-client/test/test_integration_examples.cxx +182 -0
  194. package/deps/couchbase-cxx-client/test/test_integration_management.cxx +25 -9
  195. package/deps/couchbase-cxx-client/test/test_integration_query.cxx +1 -1
  196. package/deps/couchbase-cxx-client/test/test_integration_search.cxx +603 -0
  197. package/deps/couchbase-cxx-client/test/test_integration_subdoc.cxx +2 -2
  198. package/deps/couchbase-cxx-client/test/test_integration_tracer.cxx +2 -0
  199. package/deps/couchbase-cxx-client/test/test_integration_transcoders.cxx +9 -5
  200. package/deps/couchbase-cxx-client/test/test_transaction_context.cxx +550 -0
  201. package/deps/couchbase-cxx-client/test/test_transaction_examples.cxx +180 -0
  202. package/deps/couchbase-cxx-client/test/test_transaction_public_async_api.cxx +393 -0
  203. package/deps/couchbase-cxx-client/test/test_transaction_public_blocking_api.cxx +653 -0
  204. package/deps/couchbase-cxx-client/test/test_transaction_simple.cxx +984 -0
  205. package/deps/couchbase-cxx-client/test/test_transaction_simple_async.cxx +970 -0
  206. package/deps/couchbase-cxx-client/test/test_unit_config_profiles.cxx +13 -13
  207. package/deps/couchbase-cxx-client/test/test_unit_connection_string.cxx +35 -0
  208. package/deps/couchbase-cxx-client/test/test_unit_json_transcoder.cxx +4 -0
  209. package/deps/couchbase-cxx-client/test/test_unit_transaction_utils.cxx +113 -0
  210. package/deps/couchbase-cxx-client/test/test_unit_utils.cxx +8 -4
  211. package/deps/couchbase-cxx-client/test/utils/CMakeLists.txt +13 -9
  212. package/deps/couchbase-cxx-client/test/utils/integration_shortcuts.hxx +3 -3
  213. package/deps/couchbase-cxx-client/test/utils/integration_test_guard.cxx +19 -9
  214. package/deps/couchbase-cxx-client/test/utils/server_version.hxx +10 -0
  215. package/deps/couchbase-cxx-client/test/utils/test_data.cxx +41 -0
  216. package/deps/couchbase-cxx-client/test/utils/test_data.hxx +29 -0
  217. package/deps/couchbase-cxx-client/test/utils/wait_until.cxx +61 -0
  218. package/deps/couchbase-cxx-client/test/utils/wait_until.hxx +8 -1
  219. package/deps/couchbase-cxx-client/third_party/catch2/.bazelrc +10 -0
  220. package/deps/couchbase-cxx-client/third_party/catch2/.conan/build.py +4 -4
  221. package/deps/couchbase-cxx-client/third_party/catch2/.conan/test_package/CMakeLists.txt +5 -4
  222. package/deps/couchbase-cxx-client/third_party/catch2/.conan/test_package/conanfile.py +3 -2
  223. package/deps/couchbase-cxx-client/third_party/catch2/.conan/test_package/test_package.cpp +1 -3
  224. package/deps/couchbase-cxx-client/third_party/catch2/.github/FUNDING.yml +1 -0
  225. package/deps/couchbase-cxx-client/third_party/catch2/.github/workflows/linux-bazel-builds.yml +24 -0
  226. package/deps/couchbase-cxx-client/third_party/catch2/.github/workflows/linux-meson-builds.yml +43 -0
  227. package/deps/couchbase-cxx-client/third_party/catch2/.github/workflows/linux-other-builds.yml +104 -0
  228. package/deps/couchbase-cxx-client/third_party/catch2/.github/workflows/linux-simple-builds.yml +122 -0
  229. package/deps/couchbase-cxx-client/third_party/catch2/.github/workflows/mac-builds.yml +52 -0
  230. package/deps/couchbase-cxx-client/third_party/catch2/.github/workflows/validate-header-guards.yml +36 -0
  231. package/deps/couchbase-cxx-client/third_party/catch2/.github/workflows/windows-simple-builds.yml +37 -0
  232. package/deps/couchbase-cxx-client/third_party/catch2/BUILD.bazel +83 -8
  233. package/deps/couchbase-cxx-client/third_party/catch2/CMake/CatchConfigOptions.cmake +79 -0
  234. package/deps/couchbase-cxx-client/third_party/catch2/CMake/CatchMiscFunctions.cmake +120 -0
  235. package/deps/couchbase-cxx-client/third_party/catch2/CMake/catch2-with-main.pc.in +10 -0
  236. package/deps/couchbase-cxx-client/third_party/catch2/CMake/catch2.pc.in +5 -1
  237. package/deps/couchbase-cxx-client/third_party/catch2/CMakeLists.txt +98 -152
  238. package/deps/couchbase-cxx-client/third_party/catch2/CMakePresets.json +25 -0
  239. package/deps/couchbase-cxx-client/third_party/catch2/Doxyfile +2484 -0
  240. package/deps/couchbase-cxx-client/third_party/catch2/README.md +83 -17
  241. package/deps/couchbase-cxx-client/third_party/catch2/SECURITY.md +19 -0
  242. package/deps/couchbase-cxx-client/third_party/catch2/WORKSPACE.bazel +16 -0
  243. package/deps/couchbase-cxx-client/third_party/catch2/appveyor.yml +55 -73
  244. package/deps/couchbase-cxx-client/third_party/catch2/codecov.yml +3 -6
  245. package/deps/couchbase-cxx-client/third_party/catch2/conanfile.py +44 -14
  246. package/deps/couchbase-cxx-client/third_party/catch2/data/artwork/catch2-logo-small-with-background.png +0 -0
  247. package/deps/couchbase-cxx-client/third_party/catch2/docs/Readme.md +18 -16
  248. package/deps/couchbase-cxx-client/third_party/catch2/docs/assertions.md +45 -64
  249. package/deps/couchbase-cxx-client/third_party/catch2/docs/benchmarks.md +3 -6
  250. package/deps/couchbase-cxx-client/third_party/catch2/docs/ci-and-misc.md +27 -29
  251. package/deps/couchbase-cxx-client/third_party/catch2/docs/cmake-integration.md +157 -35
  252. package/deps/couchbase-cxx-client/third_party/catch2/docs/command-line.md +232 -65
  253. package/deps/couchbase-cxx-client/third_party/catch2/docs/commercial-users.md +14 -13
  254. package/deps/couchbase-cxx-client/third_party/catch2/docs/comparing-floating-point-numbers.md +192 -0
  255. package/deps/couchbase-cxx-client/third_party/catch2/docs/configuration.md +48 -54
  256. package/deps/couchbase-cxx-client/third_party/catch2/docs/contributing.md +150 -38
  257. package/deps/couchbase-cxx-client/third_party/catch2/docs/deprecations.md +14 -118
  258. package/deps/couchbase-cxx-client/third_party/catch2/docs/event-listeners.md +31 -62
  259. package/deps/couchbase-cxx-client/third_party/catch2/docs/faq.md +94 -0
  260. package/deps/couchbase-cxx-client/third_party/catch2/docs/generators.md +14 -10
  261. package/deps/couchbase-cxx-client/third_party/catch2/docs/limitations.md +34 -36
  262. package/deps/couchbase-cxx-client/third_party/catch2/docs/list-of-examples.md +0 -3
  263. package/deps/couchbase-cxx-client/third_party/catch2/docs/logging.md +2 -2
  264. package/deps/couchbase-cxx-client/third_party/catch2/docs/matchers.md +355 -122
  265. package/deps/couchbase-cxx-client/third_party/catch2/docs/migrate-v2-to-v3.md +98 -0
  266. package/deps/couchbase-cxx-client/third_party/catch2/docs/opensource-users.md +43 -13
  267. package/deps/couchbase-cxx-client/third_party/catch2/docs/other-macros.md +19 -18
  268. package/deps/couchbase-cxx-client/third_party/catch2/docs/own-main.md +50 -49
  269. package/deps/couchbase-cxx-client/third_party/catch2/docs/release-notes.md +375 -6
  270. package/deps/couchbase-cxx-client/third_party/catch2/docs/release-process.md +9 -16
  271. package/deps/couchbase-cxx-client/third_party/catch2/docs/reporter-events.md +175 -0
  272. package/deps/couchbase-cxx-client/third_party/catch2/docs/reporters.md +191 -25
  273. package/deps/couchbase-cxx-client/third_party/catch2/docs/skipping-passing-failing.md +129 -0
  274. package/deps/couchbase-cxx-client/third_party/catch2/docs/test-cases-and-sections.md +91 -20
  275. package/deps/couchbase-cxx-client/third_party/catch2/docs/test-fixtures.md +28 -9
  276. package/deps/couchbase-cxx-client/third_party/catch2/docs/tostring.md +3 -3
  277. package/deps/couchbase-cxx-client/third_party/catch2/docs/tutorial.md +87 -139
  278. package/deps/couchbase-cxx-client/third_party/catch2/docs/usage-tips.md +100 -0
  279. package/deps/couchbase-cxx-client/third_party/catch2/docs/why-catch.md +24 -11
  280. package/deps/couchbase-cxx-client/third_party/catch2/examples/010-TestCase.cpp +4 -7
  281. package/deps/couchbase-cxx-client/third_party/catch2/examples/020-TestCase-1.cpp +3 -9
  282. package/deps/couchbase-cxx-client/third_party/catch2/examples/020-TestCase-2.cpp +2 -2
  283. package/deps/couchbase-cxx-client/third_party/catch2/examples/030-Asn-Require-Check.cpp +5 -5
  284. package/deps/couchbase-cxx-client/third_party/catch2/examples/100-Fix-Section.cpp +5 -4
  285. package/deps/couchbase-cxx-client/third_party/catch2/examples/110-Fix-ClassFixture.cpp +7 -4
  286. package/deps/couchbase-cxx-client/third_party/catch2/examples/120-Bdd-ScenarioGivenWhenThen.cpp +4 -4
  287. package/deps/couchbase-cxx-client/third_party/catch2/examples/210-Evt-EventListeners.cpp +51 -44
  288. package/deps/couchbase-cxx-client/third_party/catch2/examples/231-Cfg-OutputStreams.cpp +3 -4
  289. package/deps/couchbase-cxx-client/third_party/catch2/examples/300-Gen-OwnGenerator.cpp +13 -3
  290. package/deps/couchbase-cxx-client/third_party/catch2/examples/301-Gen-MapTypeConversion.cpp +9 -7
  291. package/deps/couchbase-cxx-client/third_party/catch2/examples/302-Gen-Table.cpp +4 -3
  292. package/deps/couchbase-cxx-client/third_party/catch2/examples/310-Gen-VariablesInGenerators.cpp +3 -1
  293. package/deps/couchbase-cxx-client/third_party/catch2/examples/311-Gen-CustomCapture.cpp +3 -1
  294. package/deps/couchbase-cxx-client/third_party/catch2/examples/CMakeLists.txt +29 -126
  295. package/deps/couchbase-cxx-client/third_party/catch2/extras/Catch.cmake +279 -0
  296. package/deps/couchbase-cxx-client/third_party/catch2/extras/CatchAddTests.cmake +187 -0
  297. package/deps/couchbase-cxx-client/third_party/catch2/extras/CatchShardTests.cmake +74 -0
  298. package/deps/couchbase-cxx-client/third_party/catch2/extras/CatchShardTestsImpl.cmake +52 -0
  299. package/deps/couchbase-cxx-client/third_party/catch2/extras/catch_amalgamated.cpp +10655 -0
  300. package/deps/couchbase-cxx-client/third_party/catch2/extras/catch_amalgamated.hpp +12972 -0
  301. package/deps/couchbase-cxx-client/third_party/catch2/fuzzing/CMakeLists.txt +20 -0
  302. package/deps/couchbase-cxx-client/third_party/catch2/fuzzing/NullOStream.cpp +10 -0
  303. package/deps/couchbase-cxx-client/third_party/catch2/fuzzing/NullOStream.h +20 -0
  304. package/deps/couchbase-cxx-client/third_party/catch2/fuzzing/build_fuzzers.sh +33 -0
  305. package/deps/couchbase-cxx-client/third_party/catch2/fuzzing/fuzz_TestSpecParser.cpp +16 -0
  306. package/deps/couchbase-cxx-client/third_party/catch2/fuzzing/fuzz_XmlWriter.cpp +16 -0
  307. package/deps/couchbase-cxx-client/third_party/catch2/fuzzing/fuzz_textflow.cpp +47 -0
  308. package/deps/couchbase-cxx-client/third_party/catch2/mdsnippets.json +9 -0
  309. package/deps/couchbase-cxx-client/third_party/catch2/meson.build +17 -0
  310. package/deps/couchbase-cxx-client/third_party/catch2/src/CMakeLists.txt +510 -0
  311. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/benchmark/catch_benchmark.hpp +147 -0
  312. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/benchmark/catch_benchmark_all.hpp +46 -0
  313. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/benchmark/catch_chronometer.cpp +17 -0
  314. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/benchmark/catch_chronometer.hpp +74 -0
  315. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/benchmark/catch_clock.hpp +39 -0
  316. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/benchmark/catch_constructor.hpp +82 -0
  317. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/benchmark/catch_environment.hpp +37 -0
  318. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/benchmark/catch_estimate.hpp +30 -0
  319. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/benchmark/catch_execution_plan.hpp +58 -0
  320. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/benchmark/catch_optimizer.hpp +78 -0
  321. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/benchmark/catch_outlier_classification.hpp +29 -0
  322. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/benchmark/catch_sample_analysis.hpp +49 -0
  323. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/benchmark/detail/catch_analyse.hpp +79 -0
  324. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/benchmark/detail/catch_benchmark_function.cpp +17 -0
  325. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/benchmark/detail/catch_benchmark_function.hpp +107 -0
  326. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/benchmark/detail/catch_benchmark_stats.hpp +64 -0
  327. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/benchmark/detail/catch_benchmark_stats_fwd.hpp +23 -0
  328. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/benchmark/detail/catch_complete_invoke.hpp +58 -0
  329. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/benchmark/detail/catch_estimate_clock.hpp +121 -0
  330. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/benchmark/detail/catch_measure.hpp +32 -0
  331. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/benchmark/detail/catch_repeat.hpp +36 -0
  332. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/benchmark/detail/catch_run_for_at_least.cpp +31 -0
  333. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/benchmark/detail/catch_run_for_at_least.hpp +65 -0
  334. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/benchmark/detail/catch_stats.cpp +257 -0
  335. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/benchmark/detail/catch_stats.hpp +144 -0
  336. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/benchmark/detail/catch_timing.hpp +31 -0
  337. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/catch_all.hpp +127 -0
  338. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/catch_approx.cpp +85 -0
  339. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/catch_approx.hpp +128 -0
  340. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/catch_assertion_info.hpp +28 -0
  341. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/catch_assertion_result.cpp +105 -0
  342. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/catch_assertion_result.hpp +60 -0
  343. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/catch_config.cpp +247 -0
  344. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/catch_config.hpp +153 -0
  345. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/catch_get_random_seed.cpp +18 -0
  346. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/catch_get_random_seed.hpp +18 -0
  347. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/catch_message.cpp +116 -0
  348. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/catch_message.hpp +148 -0
  349. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/catch_registry_hub.cpp +105 -0
  350. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/catch_section_info.hpp +42 -0
  351. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/catch_session.cpp +363 -0
  352. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/catch_session.hpp +62 -0
  353. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/catch_tag_alias.hpp +29 -0
  354. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/catch_tag_alias_autoregistrar.cpp +24 -0
  355. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/catch_tag_alias_autoregistrar.hpp +29 -0
  356. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/catch_template_test_macros.hpp +124 -0
  357. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/catch_test_case_info.cpp +247 -0
  358. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/catch_test_case_info.hpp +131 -0
  359. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/catch_test_macros.hpp +226 -0
  360. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/catch_test_spec.cpp +138 -0
  361. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/catch_test_spec.hpp +119 -0
  362. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/catch_timer.cpp +37 -0
  363. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/catch_timer.hpp +27 -0
  364. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/catch_tostring.cpp +254 -0
  365. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/catch_tostring.hpp +668 -0
  366. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/catch_totals.cpp +65 -0
  367. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/catch_totals.hpp +41 -0
  368. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/catch_translate_exception.cpp +20 -0
  369. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/catch_translate_exception.hpp +88 -0
  370. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/catch_user_config.hpp.in +210 -0
  371. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/catch_version.cpp +43 -0
  372. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/catch_version.hpp +39 -0
  373. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/catch_version_macros.hpp +15 -0
  374. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/generators/catch_generator_exception.cpp +17 -0
  375. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/generators/catch_generator_exception.hpp +31 -0
  376. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/generators/catch_generators.cpp +42 -0
  377. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/generators/catch_generators.hpp +250 -0
  378. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/generators/catch_generators_adapters.hpp +241 -0
  379. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/generators/catch_generators_all.hpp +30 -0
  380. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/generators/catch_generators_random.cpp +13 -0
  381. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/generators/catch_generators_random.hpp +98 -0
  382. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/generators/catch_generators_range.hpp +110 -0
  383. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/interfaces/catch_interfaces_all.hpp +37 -0
  384. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/interfaces/catch_interfaces_capture.cpp +13 -0
  385. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/interfaces/catch_interfaces_capture.hpp +109 -0
  386. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/interfaces/catch_interfaces_config.cpp +13 -0
  387. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/interfaces/catch_interfaces_config.hpp +100 -0
  388. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/interfaces/catch_interfaces_enum_values_registry.hpp +47 -0
  389. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/interfaces/catch_interfaces_exception.cpp +14 -0
  390. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/interfaces/catch_interfaces_exception.hpp +36 -0
  391. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/interfaces/catch_interfaces_generatortracker.cpp +32 -0
  392. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/interfaces/catch_interfaces_generatortracker.hpp +90 -0
  393. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/interfaces/catch_interfaces_registry_hub.cpp +14 -0
  394. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/interfaces/catch_interfaces_registry_hub.hpp +66 -0
  395. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/interfaces/catch_interfaces_reporter.cpp +101 -0
  396. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/interfaces/catch_interfaces_reporter.hpp +224 -0
  397. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/interfaces/catch_interfaces_reporter_factory.cpp +14 -0
  398. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/interfaces/catch_interfaces_reporter_factory.hpp +45 -0
  399. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/interfaces/catch_interfaces_tag_alias_registry.hpp +29 -0
  400. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/interfaces/catch_interfaces_test_invoker.hpp +21 -0
  401. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/interfaces/catch_interfaces_testcase.cpp +13 -0
  402. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/interfaces/catch_interfaces_testcase.hpp +36 -0
  403. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_assertion_handler.cpp +82 -0
  404. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_assertion_handler.hpp +68 -0
  405. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_case_insensitive_comparisons.cpp +35 -0
  406. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_case_insensitive_comparisons.hpp +30 -0
  407. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_case_sensitive.hpp +17 -0
  408. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_clara.cpp +448 -0
  409. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_clara.hpp +702 -0
  410. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_commandline.cpp +313 -0
  411. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_commandline.hpp +21 -0
  412. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_compare_traits.hpp +75 -0
  413. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_compiler_capabilities.hpp +430 -0
  414. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_config_android_logwrite.hpp +33 -0
  415. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_config_counter.hpp +32 -0
  416. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_config_uncaught_exceptions.hpp +44 -0
  417. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_config_wchar.hpp +33 -0
  418. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_console_colour.cpp +282 -0
  419. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_console_colour.hpp +141 -0
  420. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_console_width.hpp +19 -0
  421. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_container_nonmembers.hpp +73 -0
  422. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_context.cpp +41 -0
  423. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_context.hpp +51 -0
  424. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_debug_console.cpp +45 -0
  425. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_debug_console.hpp +17 -0
  426. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_debugger.cpp +120 -0
  427. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_debugger.hpp +67 -0
  428. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_decomposer.cpp +23 -0
  429. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_decomposer.hpp +340 -0
  430. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_enforce.cpp +41 -0
  431. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_enforce.hpp +54 -0
  432. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_enum_values_registry.cpp +73 -0
  433. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_enum_values_registry.hpp +36 -0
  434. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_errno_guard.cpp +16 -0
  435. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_errno_guard.hpp +27 -0
  436. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_exception_translator_registry.cpp +84 -0
  437. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_exception_translator_registry.hpp +30 -0
  438. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_fatal_condition_handler.cpp +243 -0
  439. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_fatal_condition_handler.hpp +69 -0
  440. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_floating_point_helpers.cpp +32 -0
  441. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_floating_point_helpers.hpp +103 -0
  442. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_getenv.cpp +37 -0
  443. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_getenv.hpp +20 -0
  444. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_is_permutation.hpp +138 -0
  445. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_istream.cpp +159 -0
  446. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_istream.hpp +54 -0
  447. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_lazy_expr.cpp +29 -0
  448. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_lazy_expr.hpp +40 -0
  449. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_leak_detector.cpp +38 -0
  450. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_leak_detector.hpp +19 -0
  451. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_list.cpp +123 -0
  452. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_list.hpp +43 -0
  453. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_logical_traits.hpp +44 -0
  454. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_main.cpp +39 -0
  455. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_message_info.cpp +25 -0
  456. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_message_info.hpp +42 -0
  457. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_meta.hpp +47 -0
  458. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_move_and_forward.hpp +19 -0
  459. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_noncopyable.hpp +28 -0
  460. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_optional.hpp +100 -0
  461. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_output_redirect.cpp +146 -0
  462. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_output_redirect.hpp +118 -0
  463. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_parse_numbers.cpp +52 -0
  464. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_parse_numbers.hpp +26 -0
  465. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_platform.hpp +37 -0
  466. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_polyfills.cpp +34 -0
  467. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_polyfills.hpp +16 -0
  468. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_preprocessor.hpp +237 -0
  469. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_preprocessor_remove_parens.hpp +19 -0
  470. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_random_number_generator.cpp +70 -0
  471. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_random_number_generator.hpp +59 -0
  472. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_random_seed_generation.cpp +34 -0
  473. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_random_seed_generation.hpp +26 -0
  474. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_reporter_registry.cpp +88 -0
  475. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_reporter_registry.hpp +55 -0
  476. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_reporter_spec_parser.cpp +173 -0
  477. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_reporter_spec_parser.hpp +85 -0
  478. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_result_type.cpp +26 -0
  479. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_result_type.hpp +57 -0
  480. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_reusable_string_stream.cpp +62 -0
  481. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_reusable_string_stream.hpp +57 -0
  482. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_run_context.cpp +688 -0
  483. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_run_context.hpp +160 -0
  484. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_section.cpp +60 -0
  485. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_section.hpp +53 -0
  486. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_sharding.hpp +42 -0
  487. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_singletons.cpp +36 -0
  488. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_singletons.hpp +45 -0
  489. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_source_line_info.cpp +33 -0
  490. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_source_line_info.hpp +37 -0
  491. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_startup_exception_registry.cpp +29 -0
  492. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_startup_exception_registry.hpp +29 -0
  493. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_stdstreams.cpp +24 -0
  494. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_stdstreams.hpp +22 -0
  495. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_stream_end_stop.hpp +30 -0
  496. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_string_manip.cpp +104 -0
  497. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_string_manip.hpp +61 -0
  498. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_stringref.cpp +66 -0
  499. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_stringref.hpp +121 -0
  500. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_tag_alias_registry.cpp +55 -0
  501. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_tag_alias_registry.hpp +33 -0
  502. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_template_test_registry.hpp +337 -0
  503. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_test_case_info_hasher.cpp +39 -0
  504. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_test_case_info_hasher.hpp +29 -0
  505. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_test_case_registry_impl.cpp +146 -0
  506. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_test_case_registry_impl.hpp +62 -0
  507. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_test_case_tracker.cpp +239 -0
  508. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_test_case_tracker.hpp +244 -0
  509. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_test_failure_exception.cpp +31 -0
  510. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_test_failure_exception.hpp +34 -0
  511. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_test_macro_impl.hpp +159 -0
  512. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_test_registry.cpp +82 -0
  513. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_test_registry.hpp +132 -0
  514. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_test_run_info.hpp +22 -0
  515. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_test_spec_parser.cpp +239 -0
  516. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_test_spec_parser.hpp +81 -0
  517. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_textflow.cpp +255 -0
  518. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_textflow.hpp +169 -0
  519. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_to_string.hpp +29 -0
  520. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_uncaught_exceptions.cpp +26 -0
  521. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_uncaught_exceptions.hpp +15 -0
  522. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_unique_name.hpp +20 -0
  523. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_unique_ptr.hpp +118 -0
  524. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_void_type.hpp +25 -0
  525. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_wildcard_pattern.cpp +47 -0
  526. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_wildcard_pattern.hpp +38 -0
  527. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_windows_h_proxy.hpp +28 -0
  528. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_xmlwriter.cpp +348 -0
  529. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/internal/catch_xmlwriter.hpp +152 -0
  530. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/matchers/catch_matchers.cpp +25 -0
  531. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/matchers/catch_matchers.hpp +237 -0
  532. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/matchers/catch_matchers_all.hpp +36 -0
  533. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/matchers/catch_matchers_container_properties.cpp +34 -0
  534. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/matchers/catch_matchers_container_properties.hpp +90 -0
  535. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/matchers/catch_matchers_contains.hpp +102 -0
  536. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/matchers/catch_matchers_exception.cpp +26 -0
  537. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/matchers/catch_matchers_exception.hpp +61 -0
  538. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/matchers/catch_matchers_floating_point.cpp +241 -0
  539. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/matchers/catch_matchers_floating_point.hpp +94 -0
  540. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/matchers/catch_matchers_predicate.cpp +17 -0
  541. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/matchers/catch_matchers_predicate.hpp +59 -0
  542. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/matchers/catch_matchers_quantifiers.cpp +24 -0
  543. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/matchers/catch_matchers_quantifiers.hpp +165 -0
  544. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/matchers/catch_matchers_range_equals.hpp +144 -0
  545. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/matchers/catch_matchers_string.cpp +114 -0
  546. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/matchers/catch_matchers_string.hpp +85 -0
  547. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/matchers/catch_matchers_templated.cpp +41 -0
  548. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/matchers/catch_matchers_templated.hpp +296 -0
  549. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/matchers/catch_matchers_vector.hpp +194 -0
  550. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/matchers/internal/catch_matchers_impl.cpp +25 -0
  551. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/matchers/internal/catch_matchers_impl.hpp +83 -0
  552. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/meson.build +368 -0
  553. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/reporters/catch_reporter_automake.cpp +37 -0
  554. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/reporters/catch_reporter_automake.hpp +38 -0
  555. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/reporters/catch_reporter_common_base.cpp +49 -0
  556. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/reporters/catch_reporter_common_base.hpp +79 -0
  557. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/reporters/catch_reporter_compact.cpp +254 -0
  558. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/reporters/catch_reporter_compact.hpp +39 -0
  559. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/reporters/catch_reporter_console.cpp +656 -0
  560. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/reporters/catch_reporter_console.hpp +67 -0
  561. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/reporters/catch_reporter_cumulative_base.cpp +159 -0
  562. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/reporters/catch_reporter_cumulative_base.hpp +151 -0
  563. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/reporters/catch_reporter_event_listener.cpp +40 -0
  564. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/reporters/catch_reporter_event_listener.hpp +60 -0
  565. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/reporters/catch_reporter_helpers.cpp +343 -0
  566. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/reporters/catch_reporter_helpers.hpp +95 -0
  567. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/reporters/catch_reporter_junit.cpp +309 -0
  568. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/reporters/catch_reporter_junit.hpp +58 -0
  569. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/reporters/catch_reporter_multi.cpp +197 -0
  570. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/reporters/catch_reporter_multi.hpp +72 -0
  571. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/reporters/catch_reporter_registrars.cpp +36 -0
  572. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/reporters/catch_reporter_registrars.hpp +131 -0
  573. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/reporters/catch_reporter_sonarqube.cpp +162 -0
  574. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/reporters/catch_reporter_sonarqube.hpp +61 -0
  575. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/reporters/catch_reporter_streaming_base.cpp +23 -0
  576. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/reporters/catch_reporter_streaming_base.hpp +73 -0
  577. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/reporters/catch_reporter_tap.cpp +229 -0
  578. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/reporters/catch_reporter_tap.hpp +43 -0
  579. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/reporters/catch_reporter_teamcity.cpp +177 -0
  580. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/reporters/catch_reporter_teamcity.hpp +66 -0
  581. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/reporters/catch_reporter_xml.cpp +336 -0
  582. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/reporters/catch_reporter_xml.hpp +66 -0
  583. package/deps/couchbase-cxx-client/third_party/catch2/src/catch2/reporters/catch_reporters_all.hpp +40 -0
  584. package/deps/couchbase-cxx-client/third_party/catch2/tests/CMakeLists.txt +665 -0
  585. package/deps/couchbase-cxx-client/third_party/catch2/tests/ExtraTests/CMakeLists.txt +554 -0
  586. package/deps/couchbase-cxx-client/third_party/catch2/tests/ExtraTests/ToDo.txt +10 -0
  587. package/deps/couchbase-cxx-client/third_party/catch2/tests/ExtraTests/X01-PrefixedMacros.cpp +97 -0
  588. package/deps/couchbase-cxx-client/third_party/catch2/tests/ExtraTests/X02-DisabledMacros.cpp +65 -0
  589. package/deps/couchbase-cxx-client/third_party/catch2/tests/ExtraTests/X03-DisabledExceptions-DefaultHandler.cpp +39 -0
  590. package/deps/couchbase-cxx-client/third_party/catch2/tests/ExtraTests/X04-DisabledExceptions-CustomHandler.cpp +40 -0
  591. package/deps/couchbase-cxx-client/third_party/catch2/tests/ExtraTests/X05-DeferredStaticChecks.cpp +21 -0
  592. package/deps/couchbase-cxx-client/third_party/catch2/tests/ExtraTests/X10-FallbackStringifier.cpp +35 -0
  593. package/deps/couchbase-cxx-client/third_party/catch2/tests/ExtraTests/X11-DisableStringification.cpp +27 -0
  594. package/deps/couchbase-cxx-client/third_party/catch2/tests/ExtraTests/X12-CustomDebugBreakMacro.cpp +26 -0
  595. package/deps/couchbase-cxx-client/third_party/catch2/tests/ExtraTests/X21-PartialTestCaseEvents.cpp +74 -0
  596. package/deps/couchbase-cxx-client/third_party/catch2/tests/ExtraTests/X22-BenchmarksInCumulativeReporter.cpp +79 -0
  597. package/deps/couchbase-cxx-client/third_party/catch2/tests/ExtraTests/X23-CasingInReporterNames.cpp +41 -0
  598. package/deps/couchbase-cxx-client/third_party/catch2/tests/ExtraTests/X24-ListenerStdoutCaptureInMultireporter.cpp +40 -0
  599. package/deps/couchbase-cxx-client/third_party/catch2/tests/ExtraTests/X25-ListenerCanAskForCapturedStdout.cpp +47 -0
  600. package/deps/couchbase-cxx-client/third_party/catch2/tests/ExtraTests/X26-ReporterPreferencesForPassingAssertionsIsRespected.cpp +52 -0
  601. package/deps/couchbase-cxx-client/third_party/catch2/tests/ExtraTests/X27-CapturedStdoutInTestCaseEvents.cpp +82 -0
  602. package/deps/couchbase-cxx-client/third_party/catch2/tests/ExtraTests/X28-ListenersGetEventsBeforeReporters.cpp +99 -0
  603. package/deps/couchbase-cxx-client/third_party/catch2/tests/ExtraTests/X29-CustomArgumentsForReporters.cpp +59 -0
  604. package/deps/couchbase-cxx-client/third_party/catch2/tests/ExtraTests/X30-BazelReporter.cpp +17 -0
  605. package/deps/couchbase-cxx-client/third_party/catch2/tests/ExtraTests/X31-DuplicatedTestCases.cpp +16 -0
  606. package/deps/couchbase-cxx-client/third_party/catch2/tests/ExtraTests/X32-DuplicatedTestCasesDifferentTags.cpp +17 -0
  607. package/deps/couchbase-cxx-client/third_party/catch2/tests/ExtraTests/X33-DuplicatedTestCaseMethods.cpp +22 -0
  608. package/deps/couchbase-cxx-client/third_party/catch2/tests/ExtraTests/X34-DuplicatedTestCaseMethodsDifferentFixtures.cpp +27 -0
  609. package/deps/couchbase-cxx-client/third_party/catch2/tests/ExtraTests/X35-DuplicatedReporterNames.cpp +31 -0
  610. package/deps/couchbase-cxx-client/third_party/catch2/tests/ExtraTests/X90-WindowsHeaderInclusion.cpp +21 -0
  611. package/deps/couchbase-cxx-client/third_party/catch2/tests/ExtraTests/X91-AmalgamatedCatch.cpp +38 -0
  612. package/deps/couchbase-cxx-client/third_party/catch2/tests/ExtraTests/X92-NoTests.cpp +11 -0
  613. package/deps/couchbase-cxx-client/third_party/catch2/tests/ExtraTests/X93-AllSkipped.cpp +16 -0
  614. package/deps/couchbase-cxx-client/third_party/catch2/tests/SelfTest/Baselines/automake.sw.approved.txt +420 -0
  615. package/deps/couchbase-cxx-client/third_party/catch2/tests/SelfTest/Baselines/automake.sw.multi.approved.txt +409 -0
  616. package/deps/couchbase-cxx-client/third_party/catch2/tests/SelfTest/Baselines/compact.sw.approved.txt +2544 -0
  617. package/deps/couchbase-cxx-client/third_party/catch2/tests/SelfTest/Baselines/compact.sw.multi.approved.txt +2533 -0
  618. package/deps/couchbase-cxx-client/third_party/catch2/tests/SelfTest/Baselines/console.std.approved.txt +1538 -0
  619. package/deps/couchbase-cxx-client/third_party/catch2/tests/SelfTest/Baselines/console.sw.approved.txt +18236 -0
  620. package/deps/couchbase-cxx-client/third_party/catch2/tests/SelfTest/Baselines/console.sw.multi.approved.txt +18225 -0
  621. package/deps/couchbase-cxx-client/third_party/catch2/tests/SelfTest/Baselines/console.swa4.approved.txt +956 -0
  622. package/deps/couchbase-cxx-client/third_party/catch2/tests/SelfTest/Baselines/default.sw.multi.approved.txt +11 -0
  623. package/deps/couchbase-cxx-client/third_party/catch2/tests/SelfTest/Baselines/junit.sw.approved.txt +2052 -0
  624. package/deps/couchbase-cxx-client/third_party/catch2/tests/SelfTest/Baselines/junit.sw.multi.approved.txt +2051 -0
  625. package/deps/couchbase-cxx-client/third_party/catch2/tests/SelfTest/Baselines/sonarqube.sw.approved.txt +2071 -0
  626. package/deps/couchbase-cxx-client/third_party/catch2/tests/SelfTest/Baselines/sonarqube.sw.multi.approved.txt +2070 -0
  627. package/deps/couchbase-cxx-client/third_party/catch2/tests/SelfTest/Baselines/tap.sw.approved.txt +4481 -0
  628. package/deps/couchbase-cxx-client/third_party/catch2/tests/SelfTest/Baselines/tap.sw.multi.approved.txt +4470 -0
  629. package/deps/couchbase-cxx-client/third_party/catch2/tests/SelfTest/Baselines/teamcity.sw.approved.txt +998 -0
  630. package/deps/couchbase-cxx-client/third_party/catch2/tests/SelfTest/Baselines/teamcity.sw.multi.approved.txt +997 -0
  631. package/deps/couchbase-cxx-client/third_party/catch2/tests/SelfTest/Baselines/xml.sw.approved.txt +21208 -0
  632. package/deps/couchbase-cxx-client/third_party/catch2/tests/SelfTest/Baselines/xml.sw.multi.approved.txt +21207 -0
  633. package/deps/couchbase-cxx-client/third_party/catch2/tests/SelfTest/IntrospectiveTests/Algorithms.tests.cpp +94 -0
  634. package/deps/couchbase-cxx-client/third_party/catch2/tests/SelfTest/IntrospectiveTests/Clara.tests.cpp +73 -0
  635. package/deps/couchbase-cxx-client/third_party/catch2/tests/SelfTest/IntrospectiveTests/CmdLine.tests.cpp +467 -0
  636. package/deps/couchbase-cxx-client/third_party/catch2/tests/SelfTest/IntrospectiveTests/CmdLineHelpers.tests.cpp +111 -0
  637. package/deps/couchbase-cxx-client/third_party/catch2/tests/SelfTest/IntrospectiveTests/ColourImpl.tests.cpp +64 -0
  638. package/deps/couchbase-cxx-client/third_party/catch2/tests/SelfTest/IntrospectiveTests/Details.tests.cpp +131 -0
  639. package/deps/couchbase-cxx-client/third_party/catch2/tests/SelfTest/IntrospectiveTests/FloatingPoint.tests.cpp +74 -0
  640. package/deps/couchbase-cxx-client/third_party/catch2/tests/SelfTest/IntrospectiveTests/GeneratorsImpl.tests.cpp +546 -0
  641. package/deps/couchbase-cxx-client/third_party/catch2/tests/SelfTest/IntrospectiveTests/InternalBenchmark.tests.cpp +447 -0
  642. package/deps/couchbase-cxx-client/third_party/catch2/tests/SelfTest/IntrospectiveTests/Parse.tests.cpp +38 -0
  643. package/deps/couchbase-cxx-client/third_party/catch2/tests/SelfTest/IntrospectiveTests/PartTracker.tests.cpp +254 -0
  644. package/deps/couchbase-cxx-client/third_party/catch2/tests/SelfTest/IntrospectiveTests/RandomNumberGeneration.tests.cpp +62 -0
  645. package/deps/couchbase-cxx-client/third_party/catch2/tests/SelfTest/IntrospectiveTests/Reporters.tests.cpp +328 -0
  646. package/deps/couchbase-cxx-client/third_party/catch2/tests/SelfTest/IntrospectiveTests/Sharding.tests.cpp +45 -0
  647. package/deps/couchbase-cxx-client/third_party/catch2/tests/SelfTest/IntrospectiveTests/Stream.tests.cpp +32 -0
  648. package/deps/couchbase-cxx-client/third_party/catch2/tests/SelfTest/IntrospectiveTests/String.tests.cpp +212 -0
  649. package/deps/couchbase-cxx-client/third_party/catch2/tests/SelfTest/IntrospectiveTests/StringManip.tests.cpp +83 -0
  650. package/deps/couchbase-cxx-client/third_party/catch2/tests/SelfTest/IntrospectiveTests/Tag.tests.cpp +104 -0
  651. package/deps/couchbase-cxx-client/third_party/catch2/tests/SelfTest/IntrospectiveTests/TestCaseInfoHasher.tests.cpp +72 -0
  652. package/deps/couchbase-cxx-client/third_party/catch2/tests/SelfTest/IntrospectiveTests/TestSpec.tests.cpp +365 -0
  653. package/deps/couchbase-cxx-client/third_party/catch2/tests/SelfTest/IntrospectiveTests/TestSpecParser.tests.cpp +55 -0
  654. package/deps/couchbase-cxx-client/third_party/catch2/tests/SelfTest/IntrospectiveTests/TextFlow.tests.cpp +200 -0
  655. package/deps/couchbase-cxx-client/third_party/catch2/tests/SelfTest/IntrospectiveTests/ToString.tests.cpp +97 -0
  656. package/deps/couchbase-cxx-client/third_party/catch2/tests/SelfTest/IntrospectiveTests/Traits.tests.cpp +45 -0
  657. package/deps/couchbase-cxx-client/third_party/catch2/tests/SelfTest/IntrospectiveTests/UniquePtr.tests.cpp +141 -0
  658. package/deps/couchbase-cxx-client/third_party/catch2/tests/SelfTest/IntrospectiveTests/Xml.tests.cpp +183 -0
  659. package/deps/couchbase-cxx-client/third_party/catch2/tests/SelfTest/TestRegistrations.cpp +181 -0
  660. package/deps/couchbase-cxx-client/third_party/catch2/tests/SelfTest/TimingTests/Sleep.tests.cpp +24 -0
  661. package/deps/couchbase-cxx-client/third_party/catch2/tests/SelfTest/UsageTests/Approx.tests.cpp +218 -0
  662. package/deps/couchbase-cxx-client/third_party/catch2/tests/SelfTest/UsageTests/BDD.tests.cpp +106 -0
  663. package/deps/couchbase-cxx-client/third_party/catch2/tests/SelfTest/UsageTests/Benchmark.tests.cpp +173 -0
  664. package/deps/couchbase-cxx-client/third_party/catch2/tests/SelfTest/UsageTests/Class.tests.cpp +133 -0
  665. package/deps/couchbase-cxx-client/third_party/catch2/tests/SelfTest/UsageTests/Compilation.tests.cpp +355 -0
  666. package/deps/couchbase-cxx-client/third_party/catch2/tests/SelfTest/UsageTests/Condition.tests.cpp +334 -0
  667. package/deps/couchbase-cxx-client/third_party/catch2/tests/SelfTest/UsageTests/Decomposition.tests.cpp +41 -0
  668. package/deps/couchbase-cxx-client/third_party/catch2/tests/SelfTest/UsageTests/EnumToString.tests.cpp +108 -0
  669. package/deps/couchbase-cxx-client/third_party/catch2/tests/SelfTest/UsageTests/Exception.tests.cpp +204 -0
  670. package/deps/couchbase-cxx-client/third_party/catch2/tests/SelfTest/UsageTests/Generators.tests.cpp +313 -0
  671. package/deps/couchbase-cxx-client/third_party/catch2/tests/SelfTest/UsageTests/Matchers.tests.cpp +1144 -0
  672. package/deps/couchbase-cxx-client/third_party/catch2/tests/SelfTest/UsageTests/MatchersRanges.tests.cpp +917 -0
  673. package/deps/couchbase-cxx-client/third_party/catch2/tests/SelfTest/UsageTests/Message.tests.cpp +287 -0
  674. package/deps/couchbase-cxx-client/third_party/catch2/tests/SelfTest/UsageTests/Misc.tests.cpp +553 -0
  675. package/deps/couchbase-cxx-client/third_party/catch2/tests/SelfTest/UsageTests/Skip.tests.cpp +73 -0
  676. package/deps/couchbase-cxx-client/third_party/catch2/tests/SelfTest/UsageTests/ToStringByte.tests.cpp +23 -0
  677. package/deps/couchbase-cxx-client/third_party/catch2/tests/SelfTest/UsageTests/ToStringChrono.tests.cpp +51 -0
  678. package/deps/couchbase-cxx-client/third_party/catch2/tests/SelfTest/UsageTests/ToStringGeneral.tests.cpp +211 -0
  679. package/deps/couchbase-cxx-client/third_party/catch2/tests/SelfTest/UsageTests/ToStringOptional.tests.cpp +31 -0
  680. package/deps/couchbase-cxx-client/third_party/catch2/tests/SelfTest/UsageTests/ToStringPair.tests.cpp +38 -0
  681. package/deps/couchbase-cxx-client/third_party/catch2/tests/SelfTest/UsageTests/ToStringTuple.tests.cpp +54 -0
  682. package/deps/couchbase-cxx-client/third_party/catch2/tests/SelfTest/UsageTests/ToStringVariant.tests.cpp +99 -0
  683. package/deps/couchbase-cxx-client/third_party/catch2/tests/SelfTest/UsageTests/ToStringVector.tests.cpp +94 -0
  684. package/deps/couchbase-cxx-client/third_party/catch2/tests/SelfTest/UsageTests/ToStringWhich.tests.cpp +186 -0
  685. package/deps/couchbase-cxx-client/third_party/catch2/tests/SelfTest/UsageTests/Tricky.tests.cpp +380 -0
  686. package/deps/couchbase-cxx-client/third_party/catch2/tests/SelfTest/UsageTests/VariadicMacros.tests.cpp +29 -0
  687. package/deps/couchbase-cxx-client/third_party/catch2/tests/SelfTest/helpers/parse_test_spec.cpp +22 -0
  688. package/deps/couchbase-cxx-client/third_party/catch2/tests/SelfTest/helpers/parse_test_spec.hpp +20 -0
  689. package/deps/couchbase-cxx-client/third_party/catch2/tests/SelfTest/helpers/range_test_helpers.hpp +210 -0
  690. package/deps/couchbase-cxx-client/third_party/catch2/tests/SelfTest/helpers/type_with_lit_0_comparisons.hpp +44 -0
  691. package/deps/couchbase-cxx-client/third_party/catch2/tests/TestScripts/ConfigureTestsCommon.py +75 -0
  692. package/deps/couchbase-cxx-client/third_party/catch2/tests/TestScripts/testBazelReporter.py +104 -0
  693. package/deps/couchbase-cxx-client/third_party/catch2/tests/TestScripts/testBazelSharding.py +75 -0
  694. package/deps/couchbase-cxx-client/third_party/catch2/tests/TestScripts/testConfigureDefaultReporter.py +41 -0
  695. package/deps/couchbase-cxx-client/third_party/catch2/tests/TestScripts/testConfigureDisable.py +48 -0
  696. package/deps/couchbase-cxx-client/third_party/catch2/tests/TestScripts/testConfigureDisableStringification.py +44 -0
  697. package/deps/couchbase-cxx-client/third_party/catch2/tests/TestScripts/testConfigureExperimentalRedirect.py +49 -0
  698. package/deps/couchbase-cxx-client/third_party/catch2/tests/TestScripts/testPartialTestCaseEvent.py +79 -0
  699. package/deps/couchbase-cxx-client/third_party/catch2/tests/TestScripts/testRandomOrder.py +77 -0
  700. package/deps/couchbase-cxx-client/third_party/catch2/tests/TestScripts/testSharding.py +165 -0
  701. package/deps/couchbase-cxx-client/third_party/catch2/tests/meson.build +76 -0
  702. package/deps/couchbase-cxx-client/third_party/catch2/tools/misc/appveyorBuildConfigurationScript.bat +21 -0
  703. package/deps/couchbase-cxx-client/third_party/catch2/tools/misc/appveyorMergeCoverageScript.py +9 -0
  704. package/deps/couchbase-cxx-client/third_party/catch2/tools/misc/appveyorTestRunScript.bat +17 -0
  705. package/deps/couchbase-cxx-client/third_party/catch2/tools/misc/coverage-helper.cpp +142 -0
  706. package/deps/couchbase-cxx-client/third_party/catch2/tools/misc/installOpenCppCoverage.ps1 +19 -0
  707. package/deps/couchbase-cxx-client/third_party/catch2/tools/scripts/approvalTests.py +243 -0
  708. package/deps/couchbase-cxx-client/third_party/catch2/tools/scripts/approve.py +31 -0
  709. package/deps/couchbase-cxx-client/third_party/catch2/tools/scripts/buildAndTest.cmd +17 -0
  710. package/deps/couchbase-cxx-client/third_party/catch2/tools/scripts/buildAndTest.sh +19 -0
  711. package/deps/couchbase-cxx-client/third_party/catch2/tools/scripts/checkConvenienceHeaders.py +151 -0
  712. package/deps/couchbase-cxx-client/third_party/catch2/tools/scripts/checkDuplicateFilenames.py +14 -0
  713. package/deps/couchbase-cxx-client/third_party/catch2/tools/scripts/checkLicense.py +45 -0
  714. package/deps/couchbase-cxx-client/third_party/catch2/tools/scripts/developBuild.py +9 -0
  715. package/deps/couchbase-cxx-client/third_party/catch2/tools/scripts/extractFeaturesFromReleaseNotes.py +92 -0
  716. package/deps/couchbase-cxx-client/third_party/catch2/tools/scripts/fixWhitespace.py +51 -0
  717. package/deps/couchbase-cxx-client/third_party/catch2/tools/scripts/generateAmalgamatedFiles.py +129 -0
  718. package/deps/couchbase-cxx-client/third_party/catch2/tools/scripts/majorRelease.py +9 -0
  719. package/deps/couchbase-cxx-client/third_party/catch2/tools/scripts/minorRelease.py +9 -0
  720. package/deps/couchbase-cxx-client/third_party/catch2/tools/scripts/patchRelease.py +9 -0
  721. package/deps/couchbase-cxx-client/third_party/catch2/tools/scripts/releaseCommon.py +143 -0
  722. package/deps/couchbase-cxx-client/third_party/catch2/tools/scripts/scriptCommon.py +4 -0
  723. package/deps/couchbase-cxx-client/third_party/catch2/tools/scripts/updateDocumentSnippets.py +23 -0
  724. package/deps/couchbase-cxx-client/third_party/catch2/tools/scripts/updateDocumentToC.py +447 -0
  725. package/deps/couchbase-cxx-client/third_party/snappy/.github/workflows/build.yml +135 -0
  726. package/deps/couchbase-cxx-client/third_party/snappy/.gitmodules +6 -0
  727. package/deps/couchbase-cxx-client/third_party/snappy/CMakeLists.txt +150 -27
  728. package/deps/couchbase-cxx-client/third_party/snappy/CONTRIBUTING.md +9 -4
  729. package/deps/couchbase-cxx-client/third_party/snappy/NEWS +12 -0
  730. package/deps/couchbase-cxx-client/third_party/snappy/README.md +52 -35
  731. package/deps/couchbase-cxx-client/third_party/snappy/cmake/config.h.in +28 -24
  732. package/deps/couchbase-cxx-client/third_party/snappy/snappy-internal.h +189 -25
  733. package/deps/couchbase-cxx-client/third_party/snappy/snappy-sinksource.cc +26 -9
  734. package/deps/couchbase-cxx-client/third_party/snappy/snappy-sinksource.h +11 -11
  735. package/deps/couchbase-cxx-client/third_party/snappy/snappy-stubs-internal.cc +1 -1
  736. package/deps/couchbase-cxx-client/third_party/snappy/snappy-stubs-internal.h +227 -308
  737. package/deps/couchbase-cxx-client/third_party/snappy/snappy-stubs-public.h.in +0 -11
  738. package/deps/couchbase-cxx-client/third_party/snappy/snappy-test.cc +88 -198
  739. package/deps/couchbase-cxx-client/third_party/snappy/snappy-test.h +102 -285
  740. package/deps/couchbase-cxx-client/third_party/snappy/snappy.cc +1176 -410
  741. package/deps/couchbase-cxx-client/third_party/snappy/snappy.h +19 -4
  742. package/deps/couchbase-cxx-client/third_party/snappy/snappy_benchmark.cc +378 -0
  743. package/deps/couchbase-cxx-client/third_party/snappy/snappy_compress_fuzzer.cc +3 -2
  744. package/deps/couchbase-cxx-client/third_party/snappy/snappy_test_data.cc +57 -0
  745. package/deps/couchbase-cxx-client/third_party/snappy/snappy_test_data.h +68 -0
  746. package/deps/couchbase-cxx-client/third_party/snappy/snappy_test_tool.cc +471 -0
  747. package/deps/couchbase-cxx-client/third_party/snappy/snappy_uncompress_fuzzer.cc +3 -2
  748. package/deps/couchbase-cxx-client/third_party/snappy/snappy_unittest.cc +170 -666
  749. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/.github/ISSUE_TEMPLATE/bug_report.md +32 -0
  750. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/.github/ISSUE_TEMPLATE/feature_request.md +20 -0
  751. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/.github/workflows/build-and-test.yml +38 -0
  752. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/.github/workflows/pylint.yml +26 -0
  753. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/.github/workflows/test_bindings.yml +24 -0
  754. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/.travis-libcxx-setup.sh +28 -0
  755. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/.travis.yml +231 -0
  756. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/.ycm_extra_conf.py +115 -0
  757. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/AUTHORS +58 -0
  758. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/BUILD.bazel +44 -0
  759. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/CMakeLists.txt +287 -0
  760. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/CONTRIBUTING.md +58 -0
  761. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/CONTRIBUTORS +83 -0
  762. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/LICENSE +202 -0
  763. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/README.md +1323 -0
  764. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/WORKSPACE +51 -0
  765. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/_config.yml +1 -0
  766. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/appveyor.yml +50 -0
  767. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/bindings/python/BUILD +3 -0
  768. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/bindings/python/build_defs.bzl +25 -0
  769. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/bindings/python/google_benchmark/BUILD +38 -0
  770. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/bindings/python/google_benchmark/__init__.py +156 -0
  771. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/bindings/python/google_benchmark/benchmark.cc +180 -0
  772. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/bindings/python/google_benchmark/example.py +136 -0
  773. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/bindings/python/pybind11.BUILD +20 -0
  774. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/bindings/python/python_headers.BUILD +6 -0
  775. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/bindings/python/requirements.txt +2 -0
  776. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/cmake/AddCXXCompilerFlag.cmake +74 -0
  777. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/cmake/CXXFeatureCheck.cmake +69 -0
  778. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/cmake/Config.cmake.in +1 -0
  779. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/cmake/GetGitVersion.cmake +54 -0
  780. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/cmake/GoogleTest.cmake +41 -0
  781. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/cmake/GoogleTest.cmake.in +58 -0
  782. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/cmake/benchmark.pc.in +12 -0
  783. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/cmake/gnu_posix_regex.cpp +12 -0
  784. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/cmake/llvm-toolchain.cmake +8 -0
  785. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/cmake/posix_regex.cpp +14 -0
  786. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/cmake/split_list.cmake +3 -0
  787. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/cmake/std_regex.cpp +10 -0
  788. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/cmake/steady_clock.cpp +7 -0
  789. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/cmake/thread_safety_attributes.cpp +4 -0
  790. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/conan/CMakeLists.txt +7 -0
  791. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/conan/test_package/CMakeLists.txt +10 -0
  792. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/conan/test_package/conanfile.py +19 -0
  793. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/conan/test_package/test_package.cpp +18 -0
  794. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/conanfile.py +79 -0
  795. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/dependencies.md +18 -0
  796. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/docs/AssemblyTests.md +147 -0
  797. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/docs/_config.yml +1 -0
  798. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/docs/releasing.md +16 -0
  799. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/docs/tools.md +203 -0
  800. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/include/benchmark/benchmark.h +1604 -0
  801. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/requirements.txt +2 -0
  802. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/setup.py +140 -0
  803. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/src/CMakeLists.txt +114 -0
  804. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/src/arraysize.h +33 -0
  805. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/src/benchmark.cc +499 -0
  806. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/src/benchmark_api_internal.cc +15 -0
  807. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/src/benchmark_api_internal.h +53 -0
  808. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/src/benchmark_main.cc +17 -0
  809. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/src/benchmark_name.cc +58 -0
  810. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/src/benchmark_register.cc +515 -0
  811. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/src/benchmark_register.h +108 -0
  812. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/src/benchmark_runner.cc +362 -0
  813. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/src/benchmark_runner.h +51 -0
  814. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/src/check.h +82 -0
  815. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/src/colorprint.cc +188 -0
  816. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/src/colorprint.h +33 -0
  817. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/src/commandlineflags.cc +228 -0
  818. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/src/commandlineflags.h +103 -0
  819. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/src/complexity.cc +238 -0
  820. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/src/complexity.h +55 -0
  821. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/src/console_reporter.cc +177 -0
  822. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/src/counter.cc +80 -0
  823. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/src/counter.h +32 -0
  824. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/src/csv_reporter.cc +154 -0
  825. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/src/cycleclock.h +211 -0
  826. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/src/internal_macros.h +102 -0
  827. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/src/json_reporter.cc +255 -0
  828. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/src/log.h +74 -0
  829. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/src/mutex.h +155 -0
  830. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/src/re.h +158 -0
  831. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/src/reporter.cc +105 -0
  832. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/src/sleep.cc +67 -0
  833. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/src/sleep.h +15 -0
  834. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/src/statistics.cc +193 -0
  835. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/src/statistics.h +37 -0
  836. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/src/string_util.cc +255 -0
  837. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/src/string_util.h +59 -0
  838. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/src/sysinfo.cc +716 -0
  839. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/src/thread_manager.h +64 -0
  840. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/src/thread_timer.h +86 -0
  841. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/src/timers.cc +245 -0
  842. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/src/timers.h +48 -0
  843. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/test/AssemblyTests.cmake +46 -0
  844. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/test/BUILD +73 -0
  845. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/test/CMakeLists.txt +263 -0
  846. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/test/args_product_test.cc +77 -0
  847. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/test/basic_test.cc +136 -0
  848. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/test/benchmark_gtest.cc +134 -0
  849. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/test/benchmark_name_gtest.cc +74 -0
  850. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/test/benchmark_test.cc +245 -0
  851. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/test/clobber_memory_assembly_test.cc +64 -0
  852. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/test/commandlineflags_gtest.cc +201 -0
  853. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/test/complexity_test.cc +213 -0
  854. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/test/cxx03_test.cc +63 -0
  855. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/test/diagnostics_test.cc +80 -0
  856. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/test/display_aggregates_only_test.cc +43 -0
  857. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/test/donotoptimize_assembly_test.cc +163 -0
  858. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/test/donotoptimize_test.cc +52 -0
  859. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/test/filter_test.cc +104 -0
  860. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/test/fixture_test.cc +51 -0
  861. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/test/internal_threading_test.cc +184 -0
  862. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/test/link_main_test.cc +8 -0
  863. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/test/map_test.cc +57 -0
  864. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/test/memory_manager_test.cc +44 -0
  865. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/test/multiple_ranges_test.cc +96 -0
  866. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/test/options_test.cc +75 -0
  867. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/test/output_test.h +213 -0
  868. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/test/output_test_helper.cc +515 -0
  869. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/test/register_benchmark_test.cc +184 -0
  870. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/test/report_aggregates_only_test.cc +39 -0
  871. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/test/reporter_output_test.cc +747 -0
  872. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/test/skip_with_error_test.cc +195 -0
  873. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/test/state_assembly_test.cc +68 -0
  874. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/test/statistics_gtest.cc +28 -0
  875. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/test/string_util_gtest.cc +153 -0
  876. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/test/templated_fixture_test.cc +28 -0
  877. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/test/user_counters_tabular_test.cc +285 -0
  878. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/test/user_counters_test.cc +531 -0
  879. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/test/user_counters_thousands_test.cc +173 -0
  880. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/tools/BUILD.bazel +19 -0
  881. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/tools/compare.py +429 -0
  882. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/tools/gbench/Inputs/test1_run1.json +119 -0
  883. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/tools/gbench/Inputs/test1_run2.json +119 -0
  884. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/tools/gbench/Inputs/test2_run.json +81 -0
  885. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/tools/gbench/Inputs/test3_run0.json +65 -0
  886. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/tools/gbench/Inputs/test3_run1.json +65 -0
  887. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/tools/gbench/__init__.py +8 -0
  888. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/tools/gbench/report.py +903 -0
  889. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/tools/gbench/util.py +163 -0
  890. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/tools/requirements.txt +1 -0
  891. package/deps/couchbase-cxx-client/third_party/snappy/third_party/benchmark/tools/strip_asm.py +151 -0
  892. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/.travis.yml +65 -0
  893. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/BUILD.bazel +182 -0
  894. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/CMakeLists.txt +32 -0
  895. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/CONTRIBUTING.md +142 -0
  896. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/LICENSE +28 -0
  897. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/README.md +135 -0
  898. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/WORKSPACE +30 -0
  899. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/appveyor.yml +156 -0
  900. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/ci/build-linux-bazel.sh +36 -0
  901. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/ci/build-platformio.sh +2 -0
  902. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/ci/env-linux.sh +41 -0
  903. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/ci/env-osx.sh +41 -0
  904. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/ci/get-nprocessors.sh +48 -0
  905. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/ci/install-linux.sh +49 -0
  906. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/ci/install-osx.sh +39 -0
  907. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/ci/install-platformio.sh +5 -0
  908. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/ci/log-config.sh +47 -0
  909. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/ci/travis.sh +29 -0
  910. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googlemock/CMakeLists.txt +219 -0
  911. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googlemock/CONTRIBUTORS +40 -0
  912. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googlemock/LICENSE +28 -0
  913. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googlemock/README.md +44 -0
  914. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googlemock/cmake/gmock.pc.in +10 -0
  915. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googlemock/cmake/gmock_main.pc.in +10 -0
  916. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googlemock/docs/cheat_sheet.md +786 -0
  917. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googlemock/docs/community_created_documentation.md +9 -0
  918. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googlemock/docs/cook_book.md +4276 -0
  919. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googlemock/docs/for_dummies.md +702 -0
  920. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googlemock/docs/gmock_faq.md +398 -0
  921. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googlemock/docs/pump_manual.md +189 -0
  922. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googlemock/include/gmock/gmock-actions.h +1688 -0
  923. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googlemock/include/gmock/gmock-cardinalities.h +157 -0
  924. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googlemock/include/gmock/gmock-function-mocker.h +479 -0
  925. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googlemock/include/gmock/gmock-generated-actions.h +577 -0
  926. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googlemock/include/gmock/gmock-generated-actions.h.pump +390 -0
  927. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googlemock/include/gmock/gmock-matchers.h +5394 -0
  928. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googlemock/include/gmock/gmock-more-matchers.h +92 -0
  929. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googlemock/include/gmock/gmock-nice-strict.h +230 -0
  930. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googlemock/include/gmock/gmock-spec-builders.h +2030 -0
  931. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googlemock/include/gmock/gmock.h +98 -0
  932. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googlemock/include/gmock/internal/custom/README.md +16 -0
  933. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googlemock/include/gmock/internal/custom/gmock-generated-actions.h +10 -0
  934. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googlemock/include/gmock/internal/custom/gmock-generated-actions.h.pump +12 -0
  935. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googlemock/include/gmock/internal/custom/gmock-matchers.h +36 -0
  936. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googlemock/include/gmock/internal/custom/gmock-port.h +39 -0
  937. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googlemock/include/gmock/internal/gmock-internal-utils.h +459 -0
  938. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googlemock/include/gmock/internal/gmock-port.h +87 -0
  939. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googlemock/include/gmock/internal/gmock-pp.h +279 -0
  940. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googlemock/scripts/README.md +5 -0
  941. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googlemock/scripts/fuse_gmock_files.py +257 -0
  942. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googlemock/scripts/generator/LICENSE +203 -0
  943. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googlemock/scripts/generator/README +34 -0
  944. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googlemock/scripts/generator/README.cppclean +115 -0
  945. package/deps/couchbase-cxx-client/{core/CMakeLists.txt → third_party/snappy/third_party/googletest/googlemock/scripts/generator/cpp/__init__.py} +0 -0
  946. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googlemock/scripts/generator/cpp/ast.py +1772 -0
  947. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googlemock/scripts/generator/cpp/gmock_class.py +245 -0
  948. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googlemock/scripts/generator/cpp/gmock_class_test.py +552 -0
  949. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googlemock/scripts/generator/cpp/keywords.py +56 -0
  950. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googlemock/scripts/generator/cpp/tokenize.py +284 -0
  951. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googlemock/scripts/generator/cpp/utils.py +37 -0
  952. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googlemock/scripts/generator/gmock_gen.py +30 -0
  953. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googlemock/scripts/pump.py +856 -0
  954. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googlemock/src/gmock-all.cc +46 -0
  955. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googlemock/src/gmock-cardinalities.cc +155 -0
  956. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googlemock/src/gmock-internal-utils.cc +200 -0
  957. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googlemock/src/gmock-matchers.cc +459 -0
  958. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googlemock/src/gmock-spec-builders.cc +908 -0
  959. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googlemock/src/gmock.cc +213 -0
  960. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googlemock/src/gmock_main.cc +72 -0
  961. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googlemock/test/BUILD.bazel +111 -0
  962. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googlemock/test/gmock-actions_test.cc +1583 -0
  963. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googlemock/test/gmock-cardinalities_test.cc +429 -0
  964. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googlemock/test/gmock-function-mocker_nc.cc +16 -0
  965. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googlemock/test/gmock-function-mocker_nc_test.py +43 -0
  966. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googlemock/test/gmock-function-mocker_test.cc +974 -0
  967. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googlemock/test/gmock-generated-actions_test.cc +1036 -0
  968. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googlemock/test/gmock-internal-utils_test.cc +720 -0
  969. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googlemock/test/gmock-matchers_test.cc +8562 -0
  970. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googlemock/test/gmock-more-actions_test.cc +725 -0
  971. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googlemock/test/gmock-nice-strict_test.cc +500 -0
  972. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googlemock/test/gmock-port_test.cc +42 -0
  973. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googlemock/test/gmock-pp-string_test.cc +206 -0
  974. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googlemock/test/gmock-pp_test.cc +83 -0
  975. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googlemock/test/gmock-spec-builders_test.cc +2775 -0
  976. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googlemock/test/gmock_all_test.cc +47 -0
  977. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googlemock/test/gmock_ex_test.cc +80 -0
  978. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googlemock/test/gmock_leak_test.py +104 -0
  979. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googlemock/test/gmock_leak_test_.cc +99 -0
  980. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googlemock/test/gmock_link2_test.cc +39 -0
  981. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googlemock/test/gmock_link_test.cc +39 -0
  982. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googlemock/test/gmock_link_test.h +690 -0
  983. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googlemock/test/gmock_output_test.py +183 -0
  984. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googlemock/test/gmock_output_test_.cc +309 -0
  985. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googlemock/test/gmock_output_test_golden.txt +317 -0
  986. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googlemock/test/gmock_stress_test.cc +240 -0
  987. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googlemock/test/gmock_test.cc +181 -0
  988. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googlemock/test/gmock_test_utils.py +108 -0
  989. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googlemock/test/pump_test.py +182 -0
  990. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/CMakeLists.txt +320 -0
  991. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/CONTRIBUTORS +38 -0
  992. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/LICENSE +28 -0
  993. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/README.md +262 -0
  994. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/cmake/Config.cmake.in +9 -0
  995. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/cmake/gtest.pc.in +9 -0
  996. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/cmake/gtest_main.pc.in +10 -0
  997. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/cmake/internal_utils.cmake +341 -0
  998. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/cmake/libgtest.la.in +21 -0
  999. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/docs/advanced.md +2640 -0
  1000. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/docs/faq.md +771 -0
  1001. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/docs/pkgconfig.md +150 -0
  1002. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/docs/primer.md +583 -0
  1003. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/docs/samples.md +22 -0
  1004. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/include/gtest/gtest-death-test.h +342 -0
  1005. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/include/gtest/gtest-matchers.h +756 -0
  1006. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/include/gtest/gtest-message.h +219 -0
  1007. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/include/gtest/gtest-param-test.h +512 -0
  1008. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/include/gtest/gtest-printers.h +903 -0
  1009. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/include/gtest/gtest-spi.h +238 -0
  1010. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/include/gtest/gtest-test-part.h +184 -0
  1011. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/include/gtest/gtest-typed-test.h +337 -0
  1012. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/include/gtest/gtest.h +2491 -0
  1013. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/include/gtest/gtest_pred_impl.h +359 -0
  1014. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/include/gtest/gtest_prod.h +61 -0
  1015. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/include/gtest/internal/custom/README.md +56 -0
  1016. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/include/gtest/internal/custom/gtest-port.h +37 -0
  1017. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/include/gtest/internal/custom/gtest-printers.h +42 -0
  1018. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/include/gtest/internal/custom/gtest.h +37 -0
  1019. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/include/gtest/internal/gtest-death-test-internal.h +304 -0
  1020. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/include/gtest/internal/gtest-filepath.h +211 -0
  1021. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/include/gtest/internal/gtest-internal.h +1564 -0
  1022. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/include/gtest/internal/gtest-param-util.h +947 -0
  1023. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/include/gtest/internal/gtest-port-arch.h +112 -0
  1024. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/include/gtest/internal/gtest-port.h +2371 -0
  1025. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/include/gtest/internal/gtest-string.h +175 -0
  1026. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/include/gtest/internal/gtest-type-util.h +187 -0
  1027. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/samples/prime_tables.h +126 -0
  1028. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/samples/sample1.cc +66 -0
  1029. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/samples/sample1.h +41 -0
  1030. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/samples/sample10_unittest.cc +139 -0
  1031. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/samples/sample1_unittest.cc +151 -0
  1032. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/samples/sample2.cc +54 -0
  1033. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/samples/sample2.h +81 -0
  1034. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/samples/sample2_unittest.cc +107 -0
  1035. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/samples/sample3-inl.h +172 -0
  1036. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/samples/sample3_unittest.cc +149 -0
  1037. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/samples/sample4.cc +54 -0
  1038. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/samples/sample4.h +53 -0
  1039. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/samples/sample4_unittest.cc +53 -0
  1040. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/samples/sample5_unittest.cc +196 -0
  1041. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/samples/sample6_unittest.cc +224 -0
  1042. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/samples/sample7_unittest.cc +117 -0
  1043. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/samples/sample8_unittest.cc +154 -0
  1044. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/samples/sample9_unittest.cc +156 -0
  1045. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/scripts/README.md +5 -0
  1046. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/scripts/common.py +83 -0
  1047. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/scripts/fuse_gtest_files.py +253 -0
  1048. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/scripts/gen_gtest_pred_impl.py +733 -0
  1049. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/scripts/gtest-config.in +274 -0
  1050. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/scripts/release_docs.py +158 -0
  1051. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/scripts/run_with_path.py +32 -0
  1052. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/scripts/upload.py +1402 -0
  1053. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/scripts/upload_gtest.py +78 -0
  1054. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/src/gtest-all.cc +48 -0
  1055. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/src/gtest-death-test.cc +1644 -0
  1056. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/src/gtest-filepath.cc +368 -0
  1057. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/src/gtest-internal-inl.h +1228 -0
  1058. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/src/gtest-matchers.cc +97 -0
  1059. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/src/gtest-port.cc +1404 -0
  1060. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/src/gtest-printers.cc +444 -0
  1061. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/src/gtest-test-part.cc +108 -0
  1062. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/src/gtest-typed-test.cc +111 -0
  1063. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/src/gtest.cc +6606 -0
  1064. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/src/gtest_main.cc +54 -0
  1065. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/test/BUILD.bazel +562 -0
  1066. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/test/googletest-break-on-failure-unittest.py +208 -0
  1067. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/test/googletest-break-on-failure-unittest_.cc +86 -0
  1068. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/test/googletest-catch-exceptions-test.py +236 -0
  1069. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/test/googletest-catch-exceptions-test_.cc +293 -0
  1070. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/test/googletest-color-test.py +127 -0
  1071. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/test/googletest-color-test_.cc +62 -0
  1072. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/test/googletest-death-test-test.cc +1542 -0
  1073. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/test/googletest-death-test_ex_test.cc +92 -0
  1074. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/test/googletest-env-var-test.py +120 -0
  1075. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/test/googletest-env-var-test_.cc +132 -0
  1076. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/test/googletest-failfast-unittest.py +410 -0
  1077. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/test/googletest-failfast-unittest_.cc +167 -0
  1078. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/test/googletest-filepath-test.cc +649 -0
  1079. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/test/googletest-filter-unittest.py +639 -0
  1080. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/test/googletest-filter-unittest_.cc +137 -0
  1081. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/test/googletest-json-outfiles-test.py +191 -0
  1082. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/test/googletest-json-output-unittest.py +804 -0
  1083. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/test/googletest-list-tests-unittest.py +205 -0
  1084. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/test/googletest-list-tests-unittest_.cc +156 -0
  1085. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/test/googletest-listener-test.cc +518 -0
  1086. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/test/googletest-message-test.cc +158 -0
  1087. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/test/googletest-options-test.cc +216 -0
  1088. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/test/googletest-output-test-golden-lin.txt +1180 -0
  1089. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/test/googletest-output-test.py +346 -0
  1090. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/test/googletest-output-test_.cc +1126 -0
  1091. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/test/googletest-param-test-invalid-name1-test.py +63 -0
  1092. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/test/googletest-param-test-invalid-name1-test_.cc +50 -0
  1093. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/test/googletest-param-test-invalid-name2-test.py +62 -0
  1094. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/test/googletest-param-test-invalid-name2-test_.cc +55 -0
  1095. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/test/googletest-param-test-test.cc +1119 -0
  1096. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/test/googletest-param-test-test.h +51 -0
  1097. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/test/googletest-param-test2-test.cc +61 -0
  1098. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/test/googletest-port-test.cc +1280 -0
  1099. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/test/googletest-printers-test.cc +1847 -0
  1100. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/test/googletest-setuptestsuite-test.py +54 -0
  1101. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/test/googletest-setuptestsuite-test_.cc +49 -0
  1102. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/test/googletest-shuffle-test.py +323 -0
  1103. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/test/googletest-shuffle-test_.cc +101 -0
  1104. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/test/googletest-test-part-test.cc +230 -0
  1105. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/test/googletest-throw-on-failure-test.py +168 -0
  1106. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/test/googletest-throw-on-failure-test_.cc +71 -0
  1107. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/test/googletest-uninitialized-test.py +67 -0
  1108. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/test/googletest-uninitialized-test_.cc +42 -0
  1109. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/test/gtest-typed-test2_test.cc +44 -0
  1110. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/test/gtest-typed-test_test.cc +462 -0
  1111. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/test/gtest-typed-test_test.h +65 -0
  1112. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/test/gtest-unittest-api_test.cc +341 -0
  1113. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/test/gtest_all_test.cc +46 -0
  1114. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/test/gtest_assert_by_exception_test.cc +116 -0
  1115. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/test/gtest_environment_test.cc +188 -0
  1116. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/test/gtest_help_test.py +171 -0
  1117. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/test/gtest_help_test_.cc +45 -0
  1118. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/test/gtest_json_test_utils.py +60 -0
  1119. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/test/gtest_list_output_unittest.py +286 -0
  1120. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/test/gtest_list_output_unittest_.cc +81 -0
  1121. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/test/gtest_main_unittest.cc +44 -0
  1122. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/test/gtest_no_test_unittest.cc +54 -0
  1123. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/test/gtest_pred_impl_unittest.cc +2422 -0
  1124. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/test/gtest_premature_exit_test.cc +126 -0
  1125. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/test/gtest_prod_test.cc +56 -0
  1126. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/test/gtest_repeat_test.cc +233 -0
  1127. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/test/gtest_skip_check_output_test.py +59 -0
  1128. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/test/gtest_skip_environment_check_output_test.py +54 -0
  1129. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/test/gtest_skip_in_environment_setup_test.cc +49 -0
  1130. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/test/gtest_skip_test.cc +55 -0
  1131. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/test/gtest_sole_header_test.cc +56 -0
  1132. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/test/gtest_stress_test.cc +248 -0
  1133. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/test/gtest_test_macro_stack_footprint_test.cc +89 -0
  1134. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/test/gtest_test_utils.py +312 -0
  1135. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/test/gtest_testbridge_test.py +63 -0
  1136. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/test/gtest_testbridge_test_.cc +43 -0
  1137. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/test/gtest_throw_on_failure_ex_test.cc +90 -0
  1138. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/test/gtest_unittest.cc +7792 -0
  1139. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/test/gtest_xml_outfile1_test_.cc +43 -0
  1140. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/test/gtest_xml_outfile2_test_.cc +43 -0
  1141. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/test/gtest_xml_outfiles_test.py +135 -0
  1142. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/test/gtest_xml_output_unittest.py +405 -0
  1143. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/test/gtest_xml_output_unittest_.cc +197 -0
  1144. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/test/gtest_xml_test_utils.py +197 -0
  1145. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/test/production.cc +35 -0
  1146. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/googletest/test/production.h +54 -0
  1147. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/library.json +62 -0
  1148. package/deps/couchbase-cxx-client/third_party/snappy/third_party/googletest/platformio.ini +47 -0
  1149. package/deps/couchbase-cxx-client/tools/CMakeLists.txt +2 -0
  1150. package/deps/couchbase-cxx-client/tools/analytics.cxx +375 -0
  1151. package/deps/couchbase-cxx-client/tools/analytics.hxx +26 -0
  1152. package/deps/couchbase-cxx-client/tools/cbc.cxx +11 -4
  1153. package/deps/couchbase-cxx-client/tools/command_registry.cxx +4 -0
  1154. package/deps/couchbase-cxx-client/tools/get.cxx +27 -31
  1155. package/deps/couchbase-cxx-client/tools/get.hxx +1 -1
  1156. package/deps/couchbase-cxx-client/tools/pillowfight.cxx +396 -0
  1157. package/deps/couchbase-cxx-client/tools/pillowfight.hxx +26 -0
  1158. package/deps/couchbase-cxx-client/tools/query.cxx +97 -101
  1159. package/deps/couchbase-cxx-client/tools/query.hxx +1 -1
  1160. package/deps/couchbase-cxx-client/tools/utils.cxx +15 -1
  1161. package/deps/couchbase-cxx-client/tools/utils.hxx +3 -0
  1162. package/deps/couchbase-cxx-client/tools/version.hxx +1 -1
  1163. package/dist/authenticators.d.ts +1 -1
  1164. package/dist/binding.d.ts +24 -9
  1165. package/dist/bindingutilities.d.ts +6 -2
  1166. package/dist/bindingutilities.js +39 -7
  1167. package/dist/cluster.d.ts +27 -0
  1168. package/dist/cluster.js +88 -56
  1169. package/dist/collection.js +6 -6
  1170. package/dist/configProfile.js +16 -10
  1171. package/dist/couchbase.d.ts +1 -0
  1172. package/dist/couchbase.js +2 -1
  1173. package/dist/errors.d.ts +2 -2
  1174. package/dist/errors.js +4 -4
  1175. package/dist/scope.js +6 -6
  1176. package/dist/sdspecs.js +11 -11
  1177. package/dist/searchquery.d.ts +1 -1
  1178. package/dist/streamablepromises.d.ts +1 -1
  1179. package/dist/transactions.js +5 -1
  1180. package/dist/usermanager.js +9 -9
  1181. package/dist/viewindexmanager.js +8 -8
  1182. package/package.json +1 -1
  1183. package/src/binding.cpp +2 -0
  1184. package/src/jstocbpp_autogen.hpp +0 -4
  1185. package/src/jstocbpp_basic.hpp +8 -2
  1186. package/src/jstocbpp_errors.hpp +35 -0
  1187. package/src/jstocbpp_transactions.hpp +61 -9
  1188. package/src/transaction.cpp +1 -1
  1189. package/deps/couchbase-cxx-client/core/config_profile.cxx +0 -25
  1190. package/deps/couchbase-cxx-client/test/test_transaction_transaction_context.cxx +0 -550
  1191. package/deps/couchbase-cxx-client/test/test_transaction_transaction_public_async_api.cxx +0 -392
  1192. package/deps/couchbase-cxx-client/test/test_transaction_transaction_public_blocking_api.cxx +0 -643
  1193. package/deps/couchbase-cxx-client/test/test_transaction_transaction_simple.cxx +0 -899
  1194. package/deps/couchbase-cxx-client/test/test_transaction_transaction_simple_async.cxx +0 -972
  1195. package/deps/couchbase-cxx-client/test/tools/CMakeLists.txt +0 -10
  1196. package/deps/couchbase-cxx-client/test/tools/tool_kv_loader.cxx +0 -349
  1197. package/deps/couchbase-cxx-client/test/utils/uniq_id.cxx +0 -29
  1198. package/deps/couchbase-cxx-client/test/utils/uniq_id.hxx +0 -26
  1199. package/deps/couchbase-cxx-client/third_party/catch2/.travis.yml +0 -335
  1200. package/deps/couchbase-cxx-client/third_party/catch2/CMake/MiscFunctions.cmake +0 -26
  1201. package/deps/couchbase-cxx-client/third_party/catch2/WORKSPACE +0 -0
  1202. package/deps/couchbase-cxx-client/third_party/catch2/contrib/Catch.cmake +0 -206
  1203. package/deps/couchbase-cxx-client/third_party/catch2/contrib/CatchAddTests.cmake +0 -135
  1204. package/deps/couchbase-cxx-client/third_party/catch2/docs/slow-compiles.md +0 -106
  1205. package/deps/couchbase-cxx-client/third_party/catch2/examples/000-CatchMain.cpp +0 -15
  1206. package/deps/couchbase-cxx-client/third_party/catch2/examples/200-Rpt-CatchMain.cpp +0 -27
  1207. package/deps/couchbase-cxx-client/third_party/catch2/examples/207-Rpt-TeamCityReporter.cpp +0 -171
  1208. package/deps/couchbase-cxx-client/third_party/catch2/include/catch.hpp +0 -496
  1209. package/deps/couchbase-cxx-client/third_party/catch2/include/catch_with_main.hpp +0 -14
  1210. package/deps/couchbase-cxx-client/third_party/catch2/include/external/clara.hpp +0 -1268
  1211. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/benchmark/catch_benchmark.hpp +0 -122
  1212. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/benchmark/catch_benchmarking_all.hpp +0 -29
  1213. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/benchmark/catch_chronometer.hpp +0 -71
  1214. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/benchmark/catch_clock.hpp +0 -40
  1215. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/benchmark/catch_constructor.hpp +0 -79
  1216. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/benchmark/catch_environment.hpp +0 -38
  1217. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/benchmark/catch_estimate.hpp +0 -31
  1218. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/benchmark/catch_execution_plan.hpp +0 -59
  1219. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/benchmark/catch_optimizer.hpp +0 -68
  1220. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/benchmark/catch_outlier_classification.hpp +0 -29
  1221. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/benchmark/catch_sample_analysis.hpp +0 -50
  1222. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/benchmark/detail/catch_analyse.hpp +0 -78
  1223. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/benchmark/detail/catch_benchmark_function.hpp +0 -105
  1224. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/benchmark/detail/catch_complete_invoke.hpp +0 -68
  1225. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/benchmark/detail/catch_estimate_clock.hpp +0 -115
  1226. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/benchmark/detail/catch_measure.hpp +0 -35
  1227. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/benchmark/detail/catch_repeat.hpp +0 -37
  1228. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/benchmark/detail/catch_run_for_at_least.hpp +0 -65
  1229. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/benchmark/detail/catch_stats.cpp +0 -224
  1230. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/benchmark/detail/catch_stats.hpp +0 -160
  1231. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/benchmark/detail/catch_timing.hpp +0 -33
  1232. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_approx.cpp +0 -88
  1233. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_approx.h +0 -132
  1234. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_assertionhandler.cpp +0 -122
  1235. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_assertionhandler.h +0 -88
  1236. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_assertioninfo.h +0 -31
  1237. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_assertionresult.cpp +0 -104
  1238. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_assertionresult.h +0 -59
  1239. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_capture.hpp +0 -159
  1240. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_capture_matchers.cpp +0 -24
  1241. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_capture_matchers.h +0 -88
  1242. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_clara.h +0 -38
  1243. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_commandline.cpp +0 -230
  1244. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_commandline.h +0 -20
  1245. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_common.cpp +0 -43
  1246. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_common.h +0 -92
  1247. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_compiler_capabilities.h +0 -377
  1248. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_config.cpp +0 -86
  1249. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_config.hpp +0 -133
  1250. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_config_uncaught_exceptions.hpp +0 -44
  1251. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_console_colour.cpp +0 -243
  1252. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_console_colour.h +0 -69
  1253. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_context.cpp +0 -70
  1254. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_context.h +0 -64
  1255. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_debug_console.cpp +0 -41
  1256. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_debug_console.h +0 -17
  1257. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_debugger.cpp +0 -122
  1258. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_debugger.h +0 -65
  1259. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_decomposer.cpp +0 -24
  1260. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_decomposer.h +0 -259
  1261. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_default_main.hpp +0 -47
  1262. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_enforce.cpp +0 -40
  1263. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_enforce.h +0 -53
  1264. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_enum_values_registry.cpp +0 -75
  1265. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_enum_values_registry.h +0 -35
  1266. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_errno_guard.cpp +0 -15
  1267. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_errno_guard.h +0 -22
  1268. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_exception_translator_registry.cpp +0 -89
  1269. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_exception_translator_registry.h +0 -30
  1270. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_external_interfaces.h +0 -20
  1271. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_fatal_condition.cpp +0 -244
  1272. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_fatal_condition.h +0 -68
  1273. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_generators.cpp +0 -32
  1274. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_generators.hpp +0 -219
  1275. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_generators_generic.hpp +0 -237
  1276. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_generators_specific.hpp +0 -175
  1277. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_impl.hpp +0 -33
  1278. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_interfaces_capture.cpp +0 -5
  1279. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_interfaces_capture.h +0 -100
  1280. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_interfaces_config.cpp +0 -5
  1281. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_interfaces_config.h +0 -92
  1282. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_interfaces_enum_values_registry.h +0 -46
  1283. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_interfaces_exception.cpp +0 -6
  1284. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_interfaces_exception.h +0 -88
  1285. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_interfaces_generatortracker.h +0 -39
  1286. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_interfaces_registry_hub.cpp +0 -6
  1287. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_interfaces_registry_hub.h +0 -61
  1288. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_interfaces_reporter.cpp +0 -114
  1289. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_interfaces_reporter.h +0 -272
  1290. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_interfaces_runner.cpp +0 -5
  1291. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_interfaces_runner.h +0 -19
  1292. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_interfaces_tag_alias_registry.h +0 -28
  1293. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_interfaces_testcase.cpp +0 -6
  1294. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_interfaces_testcase.h +0 -38
  1295. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_leak_detector.cpp +0 -37
  1296. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_leak_detector.h +0 -18
  1297. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_list.cpp +0 -173
  1298. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_list.h +0 -38
  1299. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_matchers.cpp +0 -28
  1300. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_matchers.h +0 -174
  1301. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_matchers_exception.cpp +0 -30
  1302. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_matchers_exception.hpp +0 -36
  1303. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_matchers_floating.cpp +0 -237
  1304. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_matchers_floating.h +0 -70
  1305. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_matchers_generic.cpp +0 -9
  1306. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_matchers_generic.hpp +0 -58
  1307. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_matchers_string.cpp +0 -118
  1308. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_matchers_string.h +0 -80
  1309. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_matchers_vector.h +0 -180
  1310. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_message.cpp +0 -142
  1311. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_message.h +0 -99
  1312. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_meta.hpp +0 -50
  1313. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_objc.hpp +0 -215
  1314. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_objc_arc.hpp +0 -51
  1315. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_option.hpp +0 -73
  1316. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_output_redirect.cpp +0 -147
  1317. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_output_redirect.h +0 -116
  1318. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_platform.h +0 -30
  1319. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_polyfills.cpp +0 -31
  1320. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_polyfills.hpp +0 -15
  1321. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_preprocessor.hpp +0 -237
  1322. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_random_number_generator.cpp +0 -73
  1323. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_random_number_generator.h +0 -58
  1324. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_reenable_warnings.h +0 -21
  1325. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_registry_hub.cpp +0 -99
  1326. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_reporter_registrars.hpp +0 -78
  1327. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_reporter_registry.cpp +0 -34
  1328. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_reporter_registry.h +0 -37
  1329. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_result_type.cpp +0 -27
  1330. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_result_type.h +0 -55
  1331. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_run_context.cpp +0 -595
  1332. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_run_context.h +0 -159
  1333. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_section.cpp +0 -38
  1334. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_section.h +0 -51
  1335. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_section_info.cpp +0 -19
  1336. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_section_info.h +0 -42
  1337. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_session.cpp +0 -313
  1338. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_session.h +0 -62
  1339. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_singletons.cpp +0 -36
  1340. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_singletons.hpp +0 -44
  1341. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_startup_exception_registry.cpp +0 -28
  1342. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_startup_exception_registry.h +0 -29
  1343. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_stream.cpp +0 -187
  1344. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_stream.h +0 -51
  1345. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_string_manip.cpp +0 -109
  1346. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_string_manip.h +0 -45
  1347. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_stringref.cpp +0 -50
  1348. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_stringref.h +0 -104
  1349. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_suppress_warnings.h +0 -27
  1350. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_tag_alias.cpp +0 -5
  1351. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_tag_alias.h +0 -26
  1352. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_tag_alias_autoregistrar.cpp +0 -16
  1353. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_tag_alias_autoregistrar.h +0 -26
  1354. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_tag_alias_registry.cpp +0 -58
  1355. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_tag_alias_registry.h +0 -31
  1356. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_test_case_info.cpp +0 -186
  1357. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_test_case_info.h +0 -90
  1358. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_test_case_registry_impl.cpp +0 -176
  1359. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_test_case_registry_impl.h +0 -71
  1360. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_test_case_tracker.cpp +0 -254
  1361. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_test_case_tracker.h +0 -180
  1362. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_test_registry.cpp +0 -37
  1363. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_test_registry.h +0 -402
  1364. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_test_spec.cpp +0 -99
  1365. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_test_spec.h +0 -94
  1366. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_test_spec_parser.cpp +0 -240
  1367. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_test_spec_parser.h +0 -79
  1368. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_text.h +0 -17
  1369. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_timer.cpp +0 -74
  1370. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_timer.h +0 -30
  1371. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_to_string.hpp +0 -28
  1372. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_tostring.cpp +0 -265
  1373. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_tostring.h +0 -675
  1374. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_totals.cpp +0 -61
  1375. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_totals.h +0 -41
  1376. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_uncaught_exceptions.cpp +0 -25
  1377. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_uncaught_exceptions.h +0 -15
  1378. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_user_interfaces.h +0 -18
  1379. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_version.cpp +0 -44
  1380. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_version.h +0 -39
  1381. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_wildcard_pattern.cpp +0 -47
  1382. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_wildcard_pattern.h +0 -38
  1383. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_windows_h_proxy.h +0 -39
  1384. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_xmlwriter.cpp +0 -334
  1385. package/deps/couchbase-cxx-client/third_party/catch2/include/internal/catch_xmlwriter.h +0 -116
  1386. package/deps/couchbase-cxx-client/third_party/catch2/include/reporters/catch_reporter_automake.hpp +0 -62
  1387. package/deps/couchbase-cxx-client/third_party/catch2/include/reporters/catch_reporter_bases.cpp +0 -84
  1388. package/deps/couchbase-cxx-client/third_party/catch2/include/reporters/catch_reporter_bases.hpp +0 -285
  1389. package/deps/couchbase-cxx-client/third_party/catch2/include/reporters/catch_reporter_compact.cpp +0 -290
  1390. package/deps/couchbase-cxx-client/third_party/catch2/include/reporters/catch_reporter_compact.h +0 -39
  1391. package/deps/couchbase-cxx-client/third_party/catch2/include/reporters/catch_reporter_console.cpp +0 -700
  1392. package/deps/couchbase-cxx-client/third_party/catch2/include/reporters/catch_reporter_console.h +0 -89
  1393. package/deps/couchbase-cxx-client/third_party/catch2/include/reporters/catch_reporter_junit.cpp +0 -300
  1394. package/deps/couchbase-cxx-client/third_party/catch2/include/reporters/catch_reporter_junit.h +0 -62
  1395. package/deps/couchbase-cxx-client/third_party/catch2/include/reporters/catch_reporter_listening.cpp +0 -164
  1396. package/deps/couchbase-cxx-client/third_party/catch2/include/reporters/catch_reporter_listening.h +0 -63
  1397. package/deps/couchbase-cxx-client/third_party/catch2/include/reporters/catch_reporter_sonarqube.hpp +0 -181
  1398. package/deps/couchbase-cxx-client/third_party/catch2/include/reporters/catch_reporter_tap.hpp +0 -254
  1399. package/deps/couchbase-cxx-client/third_party/catch2/include/reporters/catch_reporter_teamcity.hpp +0 -219
  1400. package/deps/couchbase-cxx-client/third_party/catch2/include/reporters/catch_reporter_xml.cpp +0 -281
  1401. package/deps/couchbase-cxx-client/third_party/catch2/include/reporters/catch_reporter_xml.h +0 -68
  1402. package/deps/couchbase-cxx-client/third_party/catch2/misc/appveyorBuildConfigurationScript.bat +0 -22
  1403. package/deps/couchbase-cxx-client/third_party/catch2/misc/appveyorMergeCoverageScript.py +0 -9
  1404. package/deps/couchbase-cxx-client/third_party/catch2/misc/appveyorTestRunScript.bat +0 -15
  1405. package/deps/couchbase-cxx-client/third_party/catch2/misc/coverage-helper.cpp +0 -142
  1406. package/deps/couchbase-cxx-client/third_party/catch2/misc/installOpenCppCoverage.ps1 +0 -19
  1407. package/deps/couchbase-cxx-client/third_party/catch2/projects/CMakeLists.txt +0 -492
  1408. package/deps/couchbase-cxx-client/third_party/catch2/projects/ExtraTests/CMakeLists.txt +0 -201
  1409. package/deps/couchbase-cxx-client/third_party/catch2/projects/ExtraTests/ToDo.txt +0 -11
  1410. package/deps/couchbase-cxx-client/third_party/catch2/projects/ExtraTests/X01-PrefixedMacros.cpp +0 -84
  1411. package/deps/couchbase-cxx-client/third_party/catch2/projects/ExtraTests/X02-DisabledMacros.cpp +0 -31
  1412. package/deps/couchbase-cxx-client/third_party/catch2/projects/ExtraTests/X03-DisabledExceptions-DefaultHandler.cpp +0 -23
  1413. package/deps/couchbase-cxx-client/third_party/catch2/projects/ExtraTests/X04-DisabledExceptions-CustomHandler.cpp +0 -33
  1414. package/deps/couchbase-cxx-client/third_party/catch2/projects/ExtraTests/X10-FallbackStringifier.cpp +0 -23
  1415. package/deps/couchbase-cxx-client/third_party/catch2/projects/ExtraTests/X11-DisableStringification.cpp +0 -16
  1416. package/deps/couchbase-cxx-client/third_party/catch2/projects/ExtraTests/X12-CustomDebugBreakMacro.cpp +0 -17
  1417. package/deps/couchbase-cxx-client/third_party/catch2/projects/ExtraTests/X20-BenchmarkingMacros.cpp +0 -125
  1418. package/deps/couchbase-cxx-client/third_party/catch2/projects/ExtraTests/X90-WindowsHeaderInclusion.cpp +0 -12
  1419. package/deps/couchbase-cxx-client/third_party/catch2/projects/SelfTest/Baselines/compact.sw.approved.txt +0 -1903
  1420. package/deps/couchbase-cxx-client/third_party/catch2/projects/SelfTest/Baselines/console.std.approved.txt +0 -1425
  1421. package/deps/couchbase-cxx-client/third_party/catch2/projects/SelfTest/Baselines/console.sw.approved.txt +0 -14183
  1422. package/deps/couchbase-cxx-client/third_party/catch2/projects/SelfTest/Baselines/console.swa4.approved.txt +0 -936
  1423. package/deps/couchbase-cxx-client/third_party/catch2/projects/SelfTest/Baselines/junit.sw.approved.txt +0 -1773
  1424. package/deps/couchbase-cxx-client/third_party/catch2/projects/SelfTest/Baselines/sonarqube.sw.approved.txt +0 -1777
  1425. package/deps/couchbase-cxx-client/third_party/catch2/projects/SelfTest/Baselines/xml.sw.approved.txt +0 -16767
  1426. package/deps/couchbase-cxx-client/third_party/catch2/projects/SelfTest/CompileTimePerfTests/10.tests.cpp +0 -13
  1427. package/deps/couchbase-cxx-client/third_party/catch2/projects/SelfTest/CompileTimePerfTests/100.tests.cpp +0 -13
  1428. package/deps/couchbase-cxx-client/third_party/catch2/projects/SelfTest/CompileTimePerfTests/All.tests.cpp +0 -15
  1429. package/deps/couchbase-cxx-client/third_party/catch2/projects/SelfTest/IntrospectiveTests/CmdLine.tests.cpp +0 -582
  1430. package/deps/couchbase-cxx-client/third_party/catch2/projects/SelfTest/IntrospectiveTests/Details.tests.cpp +0 -23
  1431. package/deps/couchbase-cxx-client/third_party/catch2/projects/SelfTest/IntrospectiveTests/GeneratorsImpl.tests.cpp +0 -352
  1432. package/deps/couchbase-cxx-client/third_party/catch2/projects/SelfTest/IntrospectiveTests/InternalBenchmark.tests.cpp +0 -405
  1433. package/deps/couchbase-cxx-client/third_party/catch2/projects/SelfTest/IntrospectiveTests/PartTracker.tests.cpp +0 -253
  1434. package/deps/couchbase-cxx-client/third_party/catch2/projects/SelfTest/IntrospectiveTests/RandomNumberGeneration.tests.cpp +0 -45
  1435. package/deps/couchbase-cxx-client/third_party/catch2/projects/SelfTest/IntrospectiveTests/String.tests.cpp +0 -150
  1436. package/deps/couchbase-cxx-client/third_party/catch2/projects/SelfTest/IntrospectiveTests/StringManip.tests.cpp +0 -67
  1437. package/deps/couchbase-cxx-client/third_party/catch2/projects/SelfTest/IntrospectiveTests/Tag.tests.cpp +0 -54
  1438. package/deps/couchbase-cxx-client/third_party/catch2/projects/SelfTest/IntrospectiveTests/ToString.tests.cpp +0 -53
  1439. package/deps/couchbase-cxx-client/third_party/catch2/projects/SelfTest/IntrospectiveTests/Xml.tests.cpp +0 -114
  1440. package/deps/couchbase-cxx-client/third_party/catch2/projects/SelfTest/SurrogateCpps/catch_console_colour.cpp +0 -3
  1441. package/deps/couchbase-cxx-client/third_party/catch2/projects/SelfTest/SurrogateCpps/catch_debugger.cpp +0 -2
  1442. package/deps/couchbase-cxx-client/third_party/catch2/projects/SelfTest/SurrogateCpps/catch_interfaces_reporter.cpp +0 -2
  1443. package/deps/couchbase-cxx-client/third_party/catch2/projects/SelfTest/SurrogateCpps/catch_option.cpp +0 -3
  1444. package/deps/couchbase-cxx-client/third_party/catch2/projects/SelfTest/SurrogateCpps/catch_stream.cpp +0 -3
  1445. package/deps/couchbase-cxx-client/third_party/catch2/projects/SelfTest/SurrogateCpps/catch_test_case_tracker.cpp +0 -2
  1446. package/deps/couchbase-cxx-client/third_party/catch2/projects/SelfTest/SurrogateCpps/catch_test_spec.cpp +0 -3
  1447. package/deps/couchbase-cxx-client/third_party/catch2/projects/SelfTest/SurrogateCpps/catch_xmlwriter.cpp +0 -4
  1448. package/deps/couchbase-cxx-client/third_party/catch2/projects/SelfTest/TestMain.cpp +0 -34
  1449. package/deps/couchbase-cxx-client/third_party/catch2/projects/SelfTest/TimingTests/Sleep.tests.cpp +0 -23
  1450. package/deps/couchbase-cxx-client/third_party/catch2/projects/SelfTest/UsageTests/Approx.tests.cpp +0 -215
  1451. package/deps/couchbase-cxx-client/third_party/catch2/projects/SelfTest/UsageTests/BDD.tests.cpp +0 -110
  1452. package/deps/couchbase-cxx-client/third_party/catch2/projects/SelfTest/UsageTests/Benchmark.tests.cpp +0 -144
  1453. package/deps/couchbase-cxx-client/third_party/catch2/projects/SelfTest/UsageTests/Class.tests.cpp +0 -137
  1454. package/deps/couchbase-cxx-client/third_party/catch2/projects/SelfTest/UsageTests/Compilation.tests.cpp +0 -269
  1455. package/deps/couchbase-cxx-client/third_party/catch2/projects/SelfTest/UsageTests/Condition.tests.cpp +0 -347
  1456. package/deps/couchbase-cxx-client/third_party/catch2/projects/SelfTest/UsageTests/Decomposition.tests.cpp +0 -39
  1457. package/deps/couchbase-cxx-client/third_party/catch2/projects/SelfTest/UsageTests/EnumToString.tests.cpp +0 -99
  1458. package/deps/couchbase-cxx-client/third_party/catch2/projects/SelfTest/UsageTests/Exception.tests.cpp +0 -210
  1459. package/deps/couchbase-cxx-client/third_party/catch2/projects/SelfTest/UsageTests/Generators.tests.cpp +0 -271
  1460. package/deps/couchbase-cxx-client/third_party/catch2/projects/SelfTest/UsageTests/Matchers.tests.cpp +0 -676
  1461. package/deps/couchbase-cxx-client/third_party/catch2/projects/SelfTest/UsageTests/Message.tests.cpp +0 -269
  1462. package/deps/couchbase-cxx-client/third_party/catch2/projects/SelfTest/UsageTests/Misc.tests.cpp +0 -493
  1463. package/deps/couchbase-cxx-client/third_party/catch2/projects/SelfTest/UsageTests/ToStringByte.tests.cpp +0 -15
  1464. package/deps/couchbase-cxx-client/third_party/catch2/projects/SelfTest/UsageTests/ToStringChrono.tests.cpp +0 -44
  1465. package/deps/couchbase-cxx-client/third_party/catch2/projects/SelfTest/UsageTests/ToStringGeneral.tests.cpp +0 -210
  1466. package/deps/couchbase-cxx-client/third_party/catch2/projects/SelfTest/UsageTests/ToStringOptional.tests.cpp +0 -23
  1467. package/deps/couchbase-cxx-client/third_party/catch2/projects/SelfTest/UsageTests/ToStringPair.tests.cpp +0 -30
  1468. package/deps/couchbase-cxx-client/third_party/catch2/projects/SelfTest/UsageTests/ToStringTuple.tests.cpp +0 -47
  1469. package/deps/couchbase-cxx-client/third_party/catch2/projects/SelfTest/UsageTests/ToStringVariant.tests.cpp +0 -91
  1470. package/deps/couchbase-cxx-client/third_party/catch2/projects/SelfTest/UsageTests/ToStringVector.tests.cpp +0 -86
  1471. package/deps/couchbase-cxx-client/third_party/catch2/projects/SelfTest/UsageTests/ToStringWhich.tests.cpp +0 -193
  1472. package/deps/couchbase-cxx-client/third_party/catch2/projects/SelfTest/UsageTests/Tricky.tests.cpp +0 -429
  1473. package/deps/couchbase-cxx-client/third_party/catch2/projects/SelfTest/UsageTests/VariadicMacros.tests.cpp +0 -29
  1474. package/deps/couchbase-cxx-client/third_party/catch2/projects/SelfTest/WarnAboutNoTests.cmake +0 -19
  1475. package/deps/couchbase-cxx-client/third_party/catch2/projects/TestScripts/testRandomOrder.py +0 -59
  1476. package/deps/couchbase-cxx-client/third_party/catch2/projects/XCode/OCTest/OCTest/CatchOCTestCase.h +0 -25
  1477. package/deps/couchbase-cxx-client/third_party/catch2/projects/XCode/OCTest/OCTest/CatchOCTestCase.mm +0 -87
  1478. package/deps/couchbase-cxx-client/third_party/catch2/projects/XCode/OCTest/OCTest/Main.mm +0 -2
  1479. package/deps/couchbase-cxx-client/third_party/catch2/projects/XCode/OCTest/OCTest/OCTest.1 +0 -79
  1480. package/deps/couchbase-cxx-client/third_party/catch2/projects/XCode/OCTest/OCTest/OCTest.mm +0 -28
  1481. package/deps/couchbase-cxx-client/third_party/catch2/projects/XCode/OCTest/OCTest/TestObj.h +0 -28
  1482. package/deps/couchbase-cxx-client/third_party/catch2/projects/XCode/OCTest/OCTest/TestObj.m +0 -25
  1483. package/deps/couchbase-cxx-client/third_party/catch2/projects/XCode/OCTest/OCTest.xcodeproj/project.pbxproj +0 -294
  1484. package/deps/couchbase-cxx-client/third_party/catch2/projects/XCode/OCTest/OCTest.xcodeproj/project.xcworkspace/contents.xcworkspacedata +0 -7
  1485. package/deps/couchbase-cxx-client/third_party/catch2/projects/XCode/OCTest/OCTest.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist +0 -8
  1486. package/deps/couchbase-cxx-client/third_party/catch2/projects/XCode/OCTest/catch_objc_impl.mm +0 -69
  1487. package/deps/couchbase-cxx-client/third_party/catch2/scripts/approvalTests.py +0 -217
  1488. package/deps/couchbase-cxx-client/third_party/catch2/scripts/approve.py +0 -33
  1489. package/deps/couchbase-cxx-client/third_party/catch2/scripts/benchmarkCompile.py +0 -148
  1490. package/deps/couchbase-cxx-client/third_party/catch2/scripts/benchmarkRunner.py +0 -56
  1491. package/deps/couchbase-cxx-client/third_party/catch2/scripts/developBuild.py +0 -10
  1492. package/deps/couchbase-cxx-client/third_party/catch2/scripts/embed.py +0 -63
  1493. package/deps/couchbase-cxx-client/third_party/catch2/scripts/embedClara.py +0 -27
  1494. package/deps/couchbase-cxx-client/third_party/catch2/scripts/extractFeaturesFromReleaseNotes.py +0 -94
  1495. package/deps/couchbase-cxx-client/third_party/catch2/scripts/fixWhitespace.py +0 -52
  1496. package/deps/couchbase-cxx-client/third_party/catch2/scripts/generateSingleHeader.py +0 -151
  1497. package/deps/couchbase-cxx-client/third_party/catch2/scripts/majorRelease.py +0 -10
  1498. package/deps/couchbase-cxx-client/third_party/catch2/scripts/minorRelease.py +0 -10
  1499. package/deps/couchbase-cxx-client/third_party/catch2/scripts/patchRelease.py +0 -10
  1500. package/deps/couchbase-cxx-client/third_party/catch2/scripts/releaseCommon.py +0 -168
  1501. package/deps/couchbase-cxx-client/third_party/catch2/scripts/releaseNotes.py +0 -65
  1502. package/deps/couchbase-cxx-client/third_party/catch2/scripts/scriptCommon.py +0 -31
  1503. package/deps/couchbase-cxx-client/third_party/catch2/scripts/updateDocumentToC.py +0 -449
  1504. package/deps/couchbase-cxx-client/third_party/catch2/scripts/updateWandbox.py +0 -53
  1505. package/deps/couchbase-cxx-client/third_party/catch2/single_include/catch2/catch.hpp +0 -17959
  1506. package/deps/couchbase-cxx-client/third_party/catch2/single_include/catch2/catch_reporter_automake.hpp +0 -62
  1507. package/deps/couchbase-cxx-client/third_party/catch2/single_include/catch2/catch_reporter_sonarqube.hpp +0 -181
  1508. package/deps/couchbase-cxx-client/third_party/catch2/single_include/catch2/catch_reporter_tap.hpp +0 -254
  1509. package/deps/couchbase-cxx-client/third_party/catch2/single_include/catch2/catch_reporter_teamcity.hpp +0 -219
  1510. package/deps/couchbase-cxx-client/third_party/catch2/src/catch_with_main.cpp +0 -2
  1511. package/deps/couchbase-cxx-client/third_party/snappy/.appveyor.yml +0 -36
  1512. package/deps/couchbase-cxx-client/third_party/snappy/.travis.yml +0 -94
  1513. /package/deps/couchbase-cxx-client/third_party/catch2/{artwork → data/artwork}/catch2-c-logo.png +0 -0
  1514. /package/deps/couchbase-cxx-client/third_party/catch2/{artwork → data/artwork}/catch2-hand-logo.png +0 -0
  1515. /package/deps/couchbase-cxx-client/third_party/catch2/{artwork → data/artwork}/catch2-logo-small.png +0 -0
  1516. /package/deps/couchbase-cxx-client/third_party/catch2/{contrib → extras}/ParseAndAddCatchTests.cmake +0 -0
  1517. /package/deps/couchbase-cxx-client/third_party/catch2/{contrib → extras}/gdbinit +0 -0
  1518. /package/deps/couchbase-cxx-client/third_party/catch2/{contrib → extras}/lldbinit +0 -0
  1519. /package/deps/couchbase-cxx-client/third_party/catch2/{projects → tests}/SelfTest/Baselines/automake.std.approved.txt +0 -0
  1520. /package/deps/couchbase-cxx-client/third_party/catch2/{projects → tests}/SelfTest/Misc/invalid-test-names.input +0 -0
  1521. /package/deps/couchbase-cxx-client/third_party/catch2/{projects → tests}/SelfTest/Misc/plain-old-tests.input +0 -0
  1522. /package/deps/couchbase-cxx-client/third_party/catch2/{projects → tests}/SelfTest/Misc/special-characters-in-file.input +0 -0
  1523. /package/deps/couchbase-cxx-client/third_party/catch2/{misc → tools/misc}/CMakeLists.txt +0 -0
@@ -0,0 +1,1644 @@
1
+ // Copyright 2005, Google Inc.
2
+ // All rights reserved.
3
+ //
4
+ // Redistribution and use in source and binary forms, with or without
5
+ // modification, are permitted provided that the following conditions are
6
+ // met:
7
+ //
8
+ // * Redistributions of source code must retain the above copyright
9
+ // notice, this list of conditions and the following disclaimer.
10
+ // * Redistributions in binary form must reproduce the above
11
+ // copyright notice, this list of conditions and the following disclaimer
12
+ // in the documentation and/or other materials provided with the
13
+ // distribution.
14
+ // * Neither the name of Google Inc. nor the names of its
15
+ // contributors may be used to endorse or promote products derived from
16
+ // this software without specific prior written permission.
17
+ //
18
+ // THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
19
+ // "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
20
+ // LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
21
+ // A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
22
+ // OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
23
+ // SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
24
+ // LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25
+ // DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
26
+ // THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
27
+ // (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28
+ // OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29
+
30
+ //
31
+ // This file implements death tests.
32
+
33
+ #include "gtest/gtest-death-test.h"
34
+
35
+ #include <functional>
36
+ #include <utility>
37
+
38
+ #include "gtest/internal/gtest-port.h"
39
+ #include "gtest/internal/custom/gtest.h"
40
+
41
+ #if GTEST_HAS_DEATH_TEST
42
+
43
+ # if GTEST_OS_MAC
44
+ # include <crt_externs.h>
45
+ # endif // GTEST_OS_MAC
46
+
47
+ # include <errno.h>
48
+ # include <fcntl.h>
49
+ # include <limits.h>
50
+
51
+ # if GTEST_OS_LINUX
52
+ # include <signal.h>
53
+ # endif // GTEST_OS_LINUX
54
+
55
+ # include <stdarg.h>
56
+
57
+ # if GTEST_OS_WINDOWS
58
+ # include <windows.h>
59
+ # else
60
+ # include <sys/mman.h>
61
+ # include <sys/wait.h>
62
+ # endif // GTEST_OS_WINDOWS
63
+
64
+ # if GTEST_OS_QNX
65
+ # include <spawn.h>
66
+ # endif // GTEST_OS_QNX
67
+
68
+ # if GTEST_OS_FUCHSIA
69
+ # include <lib/fdio/fd.h>
70
+ # include <lib/fdio/io.h>
71
+ # include <lib/fdio/spawn.h>
72
+ # include <lib/zx/channel.h>
73
+ # include <lib/zx/port.h>
74
+ # include <lib/zx/process.h>
75
+ # include <lib/zx/socket.h>
76
+ # include <zircon/processargs.h>
77
+ # include <zircon/syscalls.h>
78
+ # include <zircon/syscalls/policy.h>
79
+ # include <zircon/syscalls/port.h>
80
+ # endif // GTEST_OS_FUCHSIA
81
+
82
+ #endif // GTEST_HAS_DEATH_TEST
83
+
84
+ #include "gtest/gtest-message.h"
85
+ #include "gtest/internal/gtest-string.h"
86
+ #include "src/gtest-internal-inl.h"
87
+
88
+ namespace testing {
89
+
90
+ // Constants.
91
+
92
+ // The default death test style.
93
+ //
94
+ // This is defined in internal/gtest-port.h as "fast", but can be overridden by
95
+ // a definition in internal/custom/gtest-port.h. The recommended value, which is
96
+ // used internally at Google, is "threadsafe".
97
+ static const char kDefaultDeathTestStyle[] = GTEST_DEFAULT_DEATH_TEST_STYLE;
98
+
99
+ GTEST_DEFINE_string_(
100
+ death_test_style,
101
+ internal::StringFromGTestEnv("death_test_style", kDefaultDeathTestStyle),
102
+ "Indicates how to run a death test in a forked child process: "
103
+ "\"threadsafe\" (child process re-executes the test binary "
104
+ "from the beginning, running only the specific death test) or "
105
+ "\"fast\" (child process runs the death test immediately "
106
+ "after forking).");
107
+
108
+ GTEST_DEFINE_bool_(
109
+ death_test_use_fork,
110
+ internal::BoolFromGTestEnv("death_test_use_fork", false),
111
+ "Instructs to use fork()/_exit() instead of clone() in death tests. "
112
+ "Ignored and always uses fork() on POSIX systems where clone() is not "
113
+ "implemented. Useful when running under valgrind or similar tools if "
114
+ "those do not support clone(). Valgrind 3.3.1 will just fail if "
115
+ "it sees an unsupported combination of clone() flags. "
116
+ "It is not recommended to use this flag w/o valgrind though it will "
117
+ "work in 99% of the cases. Once valgrind is fixed, this flag will "
118
+ "most likely be removed.");
119
+
120
+ namespace internal {
121
+ GTEST_DEFINE_string_(
122
+ internal_run_death_test, "",
123
+ "Indicates the file, line number, temporal index of "
124
+ "the single death test to run, and a file descriptor to "
125
+ "which a success code may be sent, all separated by "
126
+ "the '|' characters. This flag is specified if and only if the "
127
+ "current process is a sub-process launched for running a thread-safe "
128
+ "death test. FOR INTERNAL USE ONLY.");
129
+ } // namespace internal
130
+
131
+ #if GTEST_HAS_DEATH_TEST
132
+
133
+ namespace internal {
134
+
135
+ // Valid only for fast death tests. Indicates the code is running in the
136
+ // child process of a fast style death test.
137
+ # if !GTEST_OS_WINDOWS && !GTEST_OS_FUCHSIA
138
+ static bool g_in_fast_death_test_child = false;
139
+ # endif
140
+
141
+ // Returns a Boolean value indicating whether the caller is currently
142
+ // executing in the context of the death test child process. Tools such as
143
+ // Valgrind heap checkers may need this to modify their behavior in death
144
+ // tests. IMPORTANT: This is an internal utility. Using it may break the
145
+ // implementation of death tests. User code MUST NOT use it.
146
+ bool InDeathTestChild() {
147
+ # if GTEST_OS_WINDOWS || GTEST_OS_FUCHSIA
148
+
149
+ // On Windows and Fuchsia, death tests are thread-safe regardless of the value
150
+ // of the death_test_style flag.
151
+ return !GTEST_FLAG(internal_run_death_test).empty();
152
+
153
+ # else
154
+
155
+ if (GTEST_FLAG(death_test_style) == "threadsafe")
156
+ return !GTEST_FLAG(internal_run_death_test).empty();
157
+ else
158
+ return g_in_fast_death_test_child;
159
+ #endif
160
+ }
161
+
162
+ } // namespace internal
163
+
164
+ // ExitedWithCode constructor.
165
+ ExitedWithCode::ExitedWithCode(int exit_code) : exit_code_(exit_code) {
166
+ }
167
+
168
+ // ExitedWithCode function-call operator.
169
+ bool ExitedWithCode::operator()(int exit_status) const {
170
+ # if GTEST_OS_WINDOWS || GTEST_OS_FUCHSIA
171
+
172
+ return exit_status == exit_code_;
173
+
174
+ # else
175
+
176
+ return WIFEXITED(exit_status) && WEXITSTATUS(exit_status) == exit_code_;
177
+
178
+ # endif // GTEST_OS_WINDOWS || GTEST_OS_FUCHSIA
179
+ }
180
+
181
+ # if !GTEST_OS_WINDOWS && !GTEST_OS_FUCHSIA
182
+ // KilledBySignal constructor.
183
+ KilledBySignal::KilledBySignal(int signum) : signum_(signum) {
184
+ }
185
+
186
+ // KilledBySignal function-call operator.
187
+ bool KilledBySignal::operator()(int exit_status) const {
188
+ # if defined(GTEST_KILLED_BY_SIGNAL_OVERRIDE_)
189
+ {
190
+ bool result;
191
+ if (GTEST_KILLED_BY_SIGNAL_OVERRIDE_(signum_, exit_status, &result)) {
192
+ return result;
193
+ }
194
+ }
195
+ # endif // defined(GTEST_KILLED_BY_SIGNAL_OVERRIDE_)
196
+ return WIFSIGNALED(exit_status) && WTERMSIG(exit_status) == signum_;
197
+ }
198
+ # endif // !GTEST_OS_WINDOWS && !GTEST_OS_FUCHSIA
199
+
200
+ namespace internal {
201
+
202
+ // Utilities needed for death tests.
203
+
204
+ // Generates a textual description of a given exit code, in the format
205
+ // specified by wait(2).
206
+ static std::string ExitSummary(int exit_code) {
207
+ Message m;
208
+
209
+ # if GTEST_OS_WINDOWS || GTEST_OS_FUCHSIA
210
+
211
+ m << "Exited with exit status " << exit_code;
212
+
213
+ # else
214
+
215
+ if (WIFEXITED(exit_code)) {
216
+ m << "Exited with exit status " << WEXITSTATUS(exit_code);
217
+ } else if (WIFSIGNALED(exit_code)) {
218
+ m << "Terminated by signal " << WTERMSIG(exit_code);
219
+ }
220
+ # ifdef WCOREDUMP
221
+ if (WCOREDUMP(exit_code)) {
222
+ m << " (core dumped)";
223
+ }
224
+ # endif
225
+ # endif // GTEST_OS_WINDOWS || GTEST_OS_FUCHSIA
226
+
227
+ return m.GetString();
228
+ }
229
+
230
+ // Returns true if exit_status describes a process that was terminated
231
+ // by a signal, or exited normally with a nonzero exit code.
232
+ bool ExitedUnsuccessfully(int exit_status) {
233
+ return !ExitedWithCode(0)(exit_status);
234
+ }
235
+
236
+ # if !GTEST_OS_WINDOWS && !GTEST_OS_FUCHSIA
237
+ // Generates a textual failure message when a death test finds more than
238
+ // one thread running, or cannot determine the number of threads, prior
239
+ // to executing the given statement. It is the responsibility of the
240
+ // caller not to pass a thread_count of 1.
241
+ static std::string DeathTestThreadWarning(size_t thread_count) {
242
+ Message msg;
243
+ msg << "Death tests use fork(), which is unsafe particularly"
244
+ << " in a threaded context. For this test, " << GTEST_NAME_ << " ";
245
+ if (thread_count == 0) {
246
+ msg << "couldn't detect the number of threads.";
247
+ } else {
248
+ msg << "detected " << thread_count << " threads.";
249
+ }
250
+ msg << " See "
251
+ "https://github.com/google/googletest/blob/master/googletest/docs/"
252
+ "advanced.md#death-tests-and-threads"
253
+ << " for more explanation and suggested solutions, especially if"
254
+ << " this is the last message you see before your test times out.";
255
+ return msg.GetString();
256
+ }
257
+ # endif // !GTEST_OS_WINDOWS && !GTEST_OS_FUCHSIA
258
+
259
+ // Flag characters for reporting a death test that did not die.
260
+ static const char kDeathTestLived = 'L';
261
+ static const char kDeathTestReturned = 'R';
262
+ static const char kDeathTestThrew = 'T';
263
+ static const char kDeathTestInternalError = 'I';
264
+
265
+ #if GTEST_OS_FUCHSIA
266
+
267
+ // File descriptor used for the pipe in the child process.
268
+ static const int kFuchsiaReadPipeFd = 3;
269
+
270
+ #endif
271
+
272
+ // An enumeration describing all of the possible ways that a death test can
273
+ // conclude. DIED means that the process died while executing the test
274
+ // code; LIVED means that process lived beyond the end of the test code;
275
+ // RETURNED means that the test statement attempted to execute a return
276
+ // statement, which is not allowed; THREW means that the test statement
277
+ // returned control by throwing an exception. IN_PROGRESS means the test
278
+ // has not yet concluded.
279
+ enum DeathTestOutcome { IN_PROGRESS, DIED, LIVED, RETURNED, THREW };
280
+
281
+ // Routine for aborting the program which is safe to call from an
282
+ // exec-style death test child process, in which case the error
283
+ // message is propagated back to the parent process. Otherwise, the
284
+ // message is simply printed to stderr. In either case, the program
285
+ // then exits with status 1.
286
+ static void DeathTestAbort(const std::string& message) {
287
+ // On a POSIX system, this function may be called from a threadsafe-style
288
+ // death test child process, which operates on a very small stack. Use
289
+ // the heap for any additional non-minuscule memory requirements.
290
+ const InternalRunDeathTestFlag* const flag =
291
+ GetUnitTestImpl()->internal_run_death_test_flag();
292
+ if (flag != nullptr) {
293
+ FILE* parent = posix::FDOpen(flag->write_fd(), "w");
294
+ fputc(kDeathTestInternalError, parent);
295
+ fprintf(parent, "%s", message.c_str());
296
+ fflush(parent);
297
+ _exit(1);
298
+ } else {
299
+ fprintf(stderr, "%s", message.c_str());
300
+ fflush(stderr);
301
+ posix::Abort();
302
+ }
303
+ }
304
+
305
+ // A replacement for CHECK that calls DeathTestAbort if the assertion
306
+ // fails.
307
+ # define GTEST_DEATH_TEST_CHECK_(expression) \
308
+ do { \
309
+ if (!::testing::internal::IsTrue(expression)) { \
310
+ DeathTestAbort( \
311
+ ::std::string("CHECK failed: File ") + __FILE__ + ", line " \
312
+ + ::testing::internal::StreamableToString(__LINE__) + ": " \
313
+ + #expression); \
314
+ } \
315
+ } while (::testing::internal::AlwaysFalse())
316
+
317
+ // This macro is similar to GTEST_DEATH_TEST_CHECK_, but it is meant for
318
+ // evaluating any system call that fulfills two conditions: it must return
319
+ // -1 on failure, and set errno to EINTR when it is interrupted and
320
+ // should be tried again. The macro expands to a loop that repeatedly
321
+ // evaluates the expression as long as it evaluates to -1 and sets
322
+ // errno to EINTR. If the expression evaluates to -1 but errno is
323
+ // something other than EINTR, DeathTestAbort is called.
324
+ # define GTEST_DEATH_TEST_CHECK_SYSCALL_(expression) \
325
+ do { \
326
+ int gtest_retval; \
327
+ do { \
328
+ gtest_retval = (expression); \
329
+ } while (gtest_retval == -1 && errno == EINTR); \
330
+ if (gtest_retval == -1) { \
331
+ DeathTestAbort( \
332
+ ::std::string("CHECK failed: File ") + __FILE__ + ", line " \
333
+ + ::testing::internal::StreamableToString(__LINE__) + ": " \
334
+ + #expression + " != -1"); \
335
+ } \
336
+ } while (::testing::internal::AlwaysFalse())
337
+
338
+ // Returns the message describing the last system error in errno.
339
+ std::string GetLastErrnoDescription() {
340
+ return errno == 0 ? "" : posix::StrError(errno);
341
+ }
342
+
343
+ // This is called from a death test parent process to read a failure
344
+ // message from the death test child process and log it with the FATAL
345
+ // severity. On Windows, the message is read from a pipe handle. On other
346
+ // platforms, it is read from a file descriptor.
347
+ static void FailFromInternalError(int fd) {
348
+ Message error;
349
+ char buffer[256];
350
+ int num_read;
351
+
352
+ do {
353
+ while ((num_read = posix::Read(fd, buffer, 255)) > 0) {
354
+ buffer[num_read] = '\0';
355
+ error << buffer;
356
+ }
357
+ } while (num_read == -1 && errno == EINTR);
358
+
359
+ if (num_read == 0) {
360
+ GTEST_LOG_(FATAL) << error.GetString();
361
+ } else {
362
+ const int last_error = errno;
363
+ GTEST_LOG_(FATAL) << "Error while reading death test internal: "
364
+ << GetLastErrnoDescription() << " [" << last_error << "]";
365
+ }
366
+ }
367
+
368
+ // Death test constructor. Increments the running death test count
369
+ // for the current test.
370
+ DeathTest::DeathTest() {
371
+ TestInfo* const info = GetUnitTestImpl()->current_test_info();
372
+ if (info == nullptr) {
373
+ DeathTestAbort("Cannot run a death test outside of a TEST or "
374
+ "TEST_F construct");
375
+ }
376
+ }
377
+
378
+ // Creates and returns a death test by dispatching to the current
379
+ // death test factory.
380
+ bool DeathTest::Create(const char* statement,
381
+ Matcher<const std::string&> matcher, const char* file,
382
+ int line, DeathTest** test) {
383
+ return GetUnitTestImpl()->death_test_factory()->Create(
384
+ statement, std::move(matcher), file, line, test);
385
+ }
386
+
387
+ const char* DeathTest::LastMessage() {
388
+ return last_death_test_message_.c_str();
389
+ }
390
+
391
+ void DeathTest::set_last_death_test_message(const std::string& message) {
392
+ last_death_test_message_ = message;
393
+ }
394
+
395
+ std::string DeathTest::last_death_test_message_;
396
+
397
+ // Provides cross platform implementation for some death functionality.
398
+ class DeathTestImpl : public DeathTest {
399
+ protected:
400
+ DeathTestImpl(const char* a_statement, Matcher<const std::string&> matcher)
401
+ : statement_(a_statement),
402
+ matcher_(std::move(matcher)),
403
+ spawned_(false),
404
+ status_(-1),
405
+ outcome_(IN_PROGRESS),
406
+ read_fd_(-1),
407
+ write_fd_(-1) {}
408
+
409
+ // read_fd_ is expected to be closed and cleared by a derived class.
410
+ ~DeathTestImpl() override { GTEST_DEATH_TEST_CHECK_(read_fd_ == -1); }
411
+
412
+ void Abort(AbortReason reason) override;
413
+ bool Passed(bool status_ok) override;
414
+
415
+ const char* statement() const { return statement_; }
416
+ bool spawned() const { return spawned_; }
417
+ void set_spawned(bool is_spawned) { spawned_ = is_spawned; }
418
+ int status() const { return status_; }
419
+ void set_status(int a_status) { status_ = a_status; }
420
+ DeathTestOutcome outcome() const { return outcome_; }
421
+ void set_outcome(DeathTestOutcome an_outcome) { outcome_ = an_outcome; }
422
+ int read_fd() const { return read_fd_; }
423
+ void set_read_fd(int fd) { read_fd_ = fd; }
424
+ int write_fd() const { return write_fd_; }
425
+ void set_write_fd(int fd) { write_fd_ = fd; }
426
+
427
+ // Called in the parent process only. Reads the result code of the death
428
+ // test child process via a pipe, interprets it to set the outcome_
429
+ // member, and closes read_fd_. Outputs diagnostics and terminates in
430
+ // case of unexpected codes.
431
+ void ReadAndInterpretStatusByte();
432
+
433
+ // Returns stderr output from the child process.
434
+ virtual std::string GetErrorLogs();
435
+
436
+ private:
437
+ // The textual content of the code this object is testing. This class
438
+ // doesn't own this string and should not attempt to delete it.
439
+ const char* const statement_;
440
+ // A matcher that's expected to match the stderr output by the child process.
441
+ Matcher<const std::string&> matcher_;
442
+ // True if the death test child process has been successfully spawned.
443
+ bool spawned_;
444
+ // The exit status of the child process.
445
+ int status_;
446
+ // How the death test concluded.
447
+ DeathTestOutcome outcome_;
448
+ // Descriptor to the read end of the pipe to the child process. It is
449
+ // always -1 in the child process. The child keeps its write end of the
450
+ // pipe in write_fd_.
451
+ int read_fd_;
452
+ // Descriptor to the child's write end of the pipe to the parent process.
453
+ // It is always -1 in the parent process. The parent keeps its end of the
454
+ // pipe in read_fd_.
455
+ int write_fd_;
456
+ };
457
+
458
+ // Called in the parent process only. Reads the result code of the death
459
+ // test child process via a pipe, interprets it to set the outcome_
460
+ // member, and closes read_fd_. Outputs diagnostics and terminates in
461
+ // case of unexpected codes.
462
+ void DeathTestImpl::ReadAndInterpretStatusByte() {
463
+ char flag;
464
+ int bytes_read;
465
+
466
+ // The read() here blocks until data is available (signifying the
467
+ // failure of the death test) or until the pipe is closed (signifying
468
+ // its success), so it's okay to call this in the parent before
469
+ // the child process has exited.
470
+ do {
471
+ bytes_read = posix::Read(read_fd(), &flag, 1);
472
+ } while (bytes_read == -1 && errno == EINTR);
473
+
474
+ if (bytes_read == 0) {
475
+ set_outcome(DIED);
476
+ } else if (bytes_read == 1) {
477
+ switch (flag) {
478
+ case kDeathTestReturned:
479
+ set_outcome(RETURNED);
480
+ break;
481
+ case kDeathTestThrew:
482
+ set_outcome(THREW);
483
+ break;
484
+ case kDeathTestLived:
485
+ set_outcome(LIVED);
486
+ break;
487
+ case kDeathTestInternalError:
488
+ FailFromInternalError(read_fd()); // Does not return.
489
+ break;
490
+ default:
491
+ GTEST_LOG_(FATAL) << "Death test child process reported "
492
+ << "unexpected status byte ("
493
+ << static_cast<unsigned int>(flag) << ")";
494
+ }
495
+ } else {
496
+ GTEST_LOG_(FATAL) << "Read from death test child process failed: "
497
+ << GetLastErrnoDescription();
498
+ }
499
+ GTEST_DEATH_TEST_CHECK_SYSCALL_(posix::Close(read_fd()));
500
+ set_read_fd(-1);
501
+ }
502
+
503
+ std::string DeathTestImpl::GetErrorLogs() {
504
+ return GetCapturedStderr();
505
+ }
506
+
507
+ // Signals that the death test code which should have exited, didn't.
508
+ // Should be called only in a death test child process.
509
+ // Writes a status byte to the child's status file descriptor, then
510
+ // calls _exit(1).
511
+ void DeathTestImpl::Abort(AbortReason reason) {
512
+ // The parent process considers the death test to be a failure if
513
+ // it finds any data in our pipe. So, here we write a single flag byte
514
+ // to the pipe, then exit.
515
+ const char status_ch =
516
+ reason == TEST_DID_NOT_DIE ? kDeathTestLived :
517
+ reason == TEST_THREW_EXCEPTION ? kDeathTestThrew : kDeathTestReturned;
518
+
519
+ GTEST_DEATH_TEST_CHECK_SYSCALL_(posix::Write(write_fd(), &status_ch, 1));
520
+ // We are leaking the descriptor here because on some platforms (i.e.,
521
+ // when built as Windows DLL), destructors of global objects will still
522
+ // run after calling _exit(). On such systems, write_fd_ will be
523
+ // indirectly closed from the destructor of UnitTestImpl, causing double
524
+ // close if it is also closed here. On debug configurations, double close
525
+ // may assert. As there are no in-process buffers to flush here, we are
526
+ // relying on the OS to close the descriptor after the process terminates
527
+ // when the destructors are not run.
528
+ _exit(1); // Exits w/o any normal exit hooks (we were supposed to crash)
529
+ }
530
+
531
+ // Returns an indented copy of stderr output for a death test.
532
+ // This makes distinguishing death test output lines from regular log lines
533
+ // much easier.
534
+ static ::std::string FormatDeathTestOutput(const ::std::string& output) {
535
+ ::std::string ret;
536
+ for (size_t at = 0; ; ) {
537
+ const size_t line_end = output.find('\n', at);
538
+ ret += "[ DEATH ] ";
539
+ if (line_end == ::std::string::npos) {
540
+ ret += output.substr(at);
541
+ break;
542
+ }
543
+ ret += output.substr(at, line_end + 1 - at);
544
+ at = line_end + 1;
545
+ }
546
+ return ret;
547
+ }
548
+
549
+ // Assesses the success or failure of a death test, using both private
550
+ // members which have previously been set, and one argument:
551
+ //
552
+ // Private data members:
553
+ // outcome: An enumeration describing how the death test
554
+ // concluded: DIED, LIVED, THREW, or RETURNED. The death test
555
+ // fails in the latter three cases.
556
+ // status: The exit status of the child process. On *nix, it is in the
557
+ // in the format specified by wait(2). On Windows, this is the
558
+ // value supplied to the ExitProcess() API or a numeric code
559
+ // of the exception that terminated the program.
560
+ // matcher_: A matcher that's expected to match the stderr output by the child
561
+ // process.
562
+ //
563
+ // Argument:
564
+ // status_ok: true if exit_status is acceptable in the context of
565
+ // this particular death test, which fails if it is false
566
+ //
567
+ // Returns true if and only if all of the above conditions are met. Otherwise,
568
+ // the first failing condition, in the order given above, is the one that is
569
+ // reported. Also sets the last death test message string.
570
+ bool DeathTestImpl::Passed(bool status_ok) {
571
+ if (!spawned())
572
+ return false;
573
+
574
+ const std::string error_message = GetErrorLogs();
575
+
576
+ bool success = false;
577
+ Message buffer;
578
+
579
+ buffer << "Death test: " << statement() << "\n";
580
+ switch (outcome()) {
581
+ case LIVED:
582
+ buffer << " Result: failed to die.\n"
583
+ << " Error msg:\n" << FormatDeathTestOutput(error_message);
584
+ break;
585
+ case THREW:
586
+ buffer << " Result: threw an exception.\n"
587
+ << " Error msg:\n" << FormatDeathTestOutput(error_message);
588
+ break;
589
+ case RETURNED:
590
+ buffer << " Result: illegal return in test statement.\n"
591
+ << " Error msg:\n" << FormatDeathTestOutput(error_message);
592
+ break;
593
+ case DIED:
594
+ if (status_ok) {
595
+ if (matcher_.Matches(error_message)) {
596
+ success = true;
597
+ } else {
598
+ std::ostringstream stream;
599
+ matcher_.DescribeTo(&stream);
600
+ buffer << " Result: died but not with expected error.\n"
601
+ << " Expected: " << stream.str() << "\n"
602
+ << "Actual msg:\n"
603
+ << FormatDeathTestOutput(error_message);
604
+ }
605
+ } else {
606
+ buffer << " Result: died but not with expected exit code:\n"
607
+ << " " << ExitSummary(status()) << "\n"
608
+ << "Actual msg:\n" << FormatDeathTestOutput(error_message);
609
+ }
610
+ break;
611
+ case IN_PROGRESS:
612
+ default:
613
+ GTEST_LOG_(FATAL)
614
+ << "DeathTest::Passed somehow called before conclusion of test";
615
+ }
616
+
617
+ DeathTest::set_last_death_test_message(buffer.GetString());
618
+ return success;
619
+ }
620
+
621
+ # if GTEST_OS_WINDOWS
622
+ // WindowsDeathTest implements death tests on Windows. Due to the
623
+ // specifics of starting new processes on Windows, death tests there are
624
+ // always threadsafe, and Google Test considers the
625
+ // --gtest_death_test_style=fast setting to be equivalent to
626
+ // --gtest_death_test_style=threadsafe there.
627
+ //
628
+ // A few implementation notes: Like the Linux version, the Windows
629
+ // implementation uses pipes for child-to-parent communication. But due to
630
+ // the specifics of pipes on Windows, some extra steps are required:
631
+ //
632
+ // 1. The parent creates a communication pipe and stores handles to both
633
+ // ends of it.
634
+ // 2. The parent starts the child and provides it with the information
635
+ // necessary to acquire the handle to the write end of the pipe.
636
+ // 3. The child acquires the write end of the pipe and signals the parent
637
+ // using a Windows event.
638
+ // 4. Now the parent can release the write end of the pipe on its side. If
639
+ // this is done before step 3, the object's reference count goes down to
640
+ // 0 and it is destroyed, preventing the child from acquiring it. The
641
+ // parent now has to release it, or read operations on the read end of
642
+ // the pipe will not return when the child terminates.
643
+ // 5. The parent reads child's output through the pipe (outcome code and
644
+ // any possible error messages) from the pipe, and its stderr and then
645
+ // determines whether to fail the test.
646
+ //
647
+ // Note: to distinguish Win32 API calls from the local method and function
648
+ // calls, the former are explicitly resolved in the global namespace.
649
+ //
650
+ class WindowsDeathTest : public DeathTestImpl {
651
+ public:
652
+ WindowsDeathTest(const char* a_statement, Matcher<const std::string&> matcher,
653
+ const char* file, int line)
654
+ : DeathTestImpl(a_statement, std::move(matcher)),
655
+ file_(file),
656
+ line_(line) {}
657
+
658
+ // All of these virtual functions are inherited from DeathTest.
659
+ virtual int Wait();
660
+ virtual TestRole AssumeRole();
661
+
662
+ private:
663
+ // The name of the file in which the death test is located.
664
+ const char* const file_;
665
+ // The line number on which the death test is located.
666
+ const int line_;
667
+ // Handle to the write end of the pipe to the child process.
668
+ AutoHandle write_handle_;
669
+ // Child process handle.
670
+ AutoHandle child_handle_;
671
+ // Event the child process uses to signal the parent that it has
672
+ // acquired the handle to the write end of the pipe. After seeing this
673
+ // event the parent can release its own handles to make sure its
674
+ // ReadFile() calls return when the child terminates.
675
+ AutoHandle event_handle_;
676
+ };
677
+
678
+ // Waits for the child in a death test to exit, returning its exit
679
+ // status, or 0 if no child process exists. As a side effect, sets the
680
+ // outcome data member.
681
+ int WindowsDeathTest::Wait() {
682
+ if (!spawned())
683
+ return 0;
684
+
685
+ // Wait until the child either signals that it has acquired the write end
686
+ // of the pipe or it dies.
687
+ const HANDLE wait_handles[2] = { child_handle_.Get(), event_handle_.Get() };
688
+ switch (::WaitForMultipleObjects(2,
689
+ wait_handles,
690
+ FALSE, // Waits for any of the handles.
691
+ INFINITE)) {
692
+ case WAIT_OBJECT_0:
693
+ case WAIT_OBJECT_0 + 1:
694
+ break;
695
+ default:
696
+ GTEST_DEATH_TEST_CHECK_(false); // Should not get here.
697
+ }
698
+
699
+ // The child has acquired the write end of the pipe or exited.
700
+ // We release the handle on our side and continue.
701
+ write_handle_.Reset();
702
+ event_handle_.Reset();
703
+
704
+ ReadAndInterpretStatusByte();
705
+
706
+ // Waits for the child process to exit if it haven't already. This
707
+ // returns immediately if the child has already exited, regardless of
708
+ // whether previous calls to WaitForMultipleObjects synchronized on this
709
+ // handle or not.
710
+ GTEST_DEATH_TEST_CHECK_(
711
+ WAIT_OBJECT_0 == ::WaitForSingleObject(child_handle_.Get(),
712
+ INFINITE));
713
+ DWORD status_code;
714
+ GTEST_DEATH_TEST_CHECK_(
715
+ ::GetExitCodeProcess(child_handle_.Get(), &status_code) != FALSE);
716
+ child_handle_.Reset();
717
+ set_status(static_cast<int>(status_code));
718
+ return status();
719
+ }
720
+
721
+ // The AssumeRole process for a Windows death test. It creates a child
722
+ // process with the same executable as the current process to run the
723
+ // death test. The child process is given the --gtest_filter and
724
+ // --gtest_internal_run_death_test flags such that it knows to run the
725
+ // current death test only.
726
+ DeathTest::TestRole WindowsDeathTest::AssumeRole() {
727
+ const UnitTestImpl* const impl = GetUnitTestImpl();
728
+ const InternalRunDeathTestFlag* const flag =
729
+ impl->internal_run_death_test_flag();
730
+ const TestInfo* const info = impl->current_test_info();
731
+ const int death_test_index = info->result()->death_test_count();
732
+
733
+ if (flag != nullptr) {
734
+ // ParseInternalRunDeathTestFlag() has performed all the necessary
735
+ // processing.
736
+ set_write_fd(flag->write_fd());
737
+ return EXECUTE_TEST;
738
+ }
739
+
740
+ // WindowsDeathTest uses an anonymous pipe to communicate results of
741
+ // a death test.
742
+ SECURITY_ATTRIBUTES handles_are_inheritable = {sizeof(SECURITY_ATTRIBUTES),
743
+ nullptr, TRUE};
744
+ HANDLE read_handle, write_handle;
745
+ GTEST_DEATH_TEST_CHECK_(
746
+ ::CreatePipe(&read_handle, &write_handle, &handles_are_inheritable,
747
+ 0) // Default buffer size.
748
+ != FALSE);
749
+ set_read_fd(::_open_osfhandle(reinterpret_cast<intptr_t>(read_handle),
750
+ O_RDONLY));
751
+ write_handle_.Reset(write_handle);
752
+ event_handle_.Reset(::CreateEvent(
753
+ &handles_are_inheritable,
754
+ TRUE, // The event will automatically reset to non-signaled state.
755
+ FALSE, // The initial state is non-signalled.
756
+ nullptr)); // The even is unnamed.
757
+ GTEST_DEATH_TEST_CHECK_(event_handle_.Get() != nullptr);
758
+ const std::string filter_flag = std::string("--") + GTEST_FLAG_PREFIX_ +
759
+ kFilterFlag + "=" + info->test_suite_name() +
760
+ "." + info->name();
761
+ const std::string internal_flag =
762
+ std::string("--") + GTEST_FLAG_PREFIX_ + kInternalRunDeathTestFlag +
763
+ "=" + file_ + "|" + StreamableToString(line_) + "|" +
764
+ StreamableToString(death_test_index) + "|" +
765
+ StreamableToString(static_cast<unsigned int>(::GetCurrentProcessId())) +
766
+ // size_t has the same width as pointers on both 32-bit and 64-bit
767
+ // Windows platforms.
768
+ // See http://msdn.microsoft.com/en-us/library/tcxf1dw6.aspx.
769
+ "|" + StreamableToString(reinterpret_cast<size_t>(write_handle)) +
770
+ "|" + StreamableToString(reinterpret_cast<size_t>(event_handle_.Get()));
771
+
772
+ char executable_path[_MAX_PATH + 1]; // NOLINT
773
+ GTEST_DEATH_TEST_CHECK_(_MAX_PATH + 1 != ::GetModuleFileNameA(nullptr,
774
+ executable_path,
775
+ _MAX_PATH));
776
+
777
+ std::string command_line =
778
+ std::string(::GetCommandLineA()) + " " + filter_flag + " \"" +
779
+ internal_flag + "\"";
780
+
781
+ DeathTest::set_last_death_test_message("");
782
+
783
+ CaptureStderr();
784
+ // Flush the log buffers since the log streams are shared with the child.
785
+ FlushInfoLog();
786
+
787
+ // The child process will share the standard handles with the parent.
788
+ STARTUPINFOA startup_info;
789
+ memset(&startup_info, 0, sizeof(STARTUPINFO));
790
+ startup_info.dwFlags = STARTF_USESTDHANDLES;
791
+ startup_info.hStdInput = ::GetStdHandle(STD_INPUT_HANDLE);
792
+ startup_info.hStdOutput = ::GetStdHandle(STD_OUTPUT_HANDLE);
793
+ startup_info.hStdError = ::GetStdHandle(STD_ERROR_HANDLE);
794
+
795
+ PROCESS_INFORMATION process_info;
796
+ GTEST_DEATH_TEST_CHECK_(
797
+ ::CreateProcessA(
798
+ executable_path, const_cast<char*>(command_line.c_str()),
799
+ nullptr, // Retuned process handle is not inheritable.
800
+ nullptr, // Retuned thread handle is not inheritable.
801
+ TRUE, // Child inherits all inheritable handles (for write_handle_).
802
+ 0x0, // Default creation flags.
803
+ nullptr, // Inherit the parent's environment.
804
+ UnitTest::GetInstance()->original_working_dir(), &startup_info,
805
+ &process_info) != FALSE);
806
+ child_handle_.Reset(process_info.hProcess);
807
+ ::CloseHandle(process_info.hThread);
808
+ set_spawned(true);
809
+ return OVERSEE_TEST;
810
+ }
811
+
812
+ # elif GTEST_OS_FUCHSIA
813
+
814
+ class FuchsiaDeathTest : public DeathTestImpl {
815
+ public:
816
+ FuchsiaDeathTest(const char* a_statement, Matcher<const std::string&> matcher,
817
+ const char* file, int line)
818
+ : DeathTestImpl(a_statement, std::move(matcher)),
819
+ file_(file),
820
+ line_(line) {}
821
+
822
+ // All of these virtual functions are inherited from DeathTest.
823
+ int Wait() override;
824
+ TestRole AssumeRole() override;
825
+ std::string GetErrorLogs() override;
826
+
827
+ private:
828
+ // The name of the file in which the death test is located.
829
+ const char* const file_;
830
+ // The line number on which the death test is located.
831
+ const int line_;
832
+ // The stderr data captured by the child process.
833
+ std::string captured_stderr_;
834
+
835
+ zx::process child_process_;
836
+ zx::channel exception_channel_;
837
+ zx::socket stderr_socket_;
838
+ };
839
+
840
+ // Utility class for accumulating command-line arguments.
841
+ class Arguments {
842
+ public:
843
+ Arguments() { args_.push_back(nullptr); }
844
+
845
+ ~Arguments() {
846
+ for (std::vector<char*>::iterator i = args_.begin(); i != args_.end();
847
+ ++i) {
848
+ free(*i);
849
+ }
850
+ }
851
+ void AddArgument(const char* argument) {
852
+ args_.insert(args_.end() - 1, posix::StrDup(argument));
853
+ }
854
+
855
+ template <typename Str>
856
+ void AddArguments(const ::std::vector<Str>& arguments) {
857
+ for (typename ::std::vector<Str>::const_iterator i = arguments.begin();
858
+ i != arguments.end();
859
+ ++i) {
860
+ args_.insert(args_.end() - 1, posix::StrDup(i->c_str()));
861
+ }
862
+ }
863
+ char* const* Argv() {
864
+ return &args_[0];
865
+ }
866
+
867
+ int size() {
868
+ return args_.size() - 1;
869
+ }
870
+
871
+ private:
872
+ std::vector<char*> args_;
873
+ };
874
+
875
+ // Waits for the child in a death test to exit, returning its exit
876
+ // status, or 0 if no child process exists. As a side effect, sets the
877
+ // outcome data member.
878
+ int FuchsiaDeathTest::Wait() {
879
+ const int kProcessKey = 0;
880
+ const int kSocketKey = 1;
881
+ const int kExceptionKey = 2;
882
+
883
+ if (!spawned())
884
+ return 0;
885
+
886
+ // Create a port to wait for socket/task/exception events.
887
+ zx_status_t status_zx;
888
+ zx::port port;
889
+ status_zx = zx::port::create(0, &port);
890
+ GTEST_DEATH_TEST_CHECK_(status_zx == ZX_OK);
891
+
892
+ // Register to wait for the child process to terminate.
893
+ status_zx = child_process_.wait_async(
894
+ port, kProcessKey, ZX_PROCESS_TERMINATED, 0);
895
+ GTEST_DEATH_TEST_CHECK_(status_zx == ZX_OK);
896
+
897
+ // Register to wait for the socket to be readable or closed.
898
+ status_zx = stderr_socket_.wait_async(
899
+ port, kSocketKey, ZX_SOCKET_READABLE | ZX_SOCKET_PEER_CLOSED, 0);
900
+ GTEST_DEATH_TEST_CHECK_(status_zx == ZX_OK);
901
+
902
+ // Register to wait for an exception.
903
+ status_zx = exception_channel_.wait_async(
904
+ port, kExceptionKey, ZX_CHANNEL_READABLE, 0);
905
+ GTEST_DEATH_TEST_CHECK_(status_zx == ZX_OK);
906
+
907
+ bool process_terminated = false;
908
+ bool socket_closed = false;
909
+ do {
910
+ zx_port_packet_t packet = {};
911
+ status_zx = port.wait(zx::time::infinite(), &packet);
912
+ GTEST_DEATH_TEST_CHECK_(status_zx == ZX_OK);
913
+
914
+ if (packet.key == kExceptionKey) {
915
+ // Process encountered an exception. Kill it directly rather than
916
+ // letting other handlers process the event. We will get a kProcessKey
917
+ // event when the process actually terminates.
918
+ status_zx = child_process_.kill();
919
+ GTEST_DEATH_TEST_CHECK_(status_zx == ZX_OK);
920
+ } else if (packet.key == kProcessKey) {
921
+ // Process terminated.
922
+ GTEST_DEATH_TEST_CHECK_(ZX_PKT_IS_SIGNAL_ONE(packet.type));
923
+ GTEST_DEATH_TEST_CHECK_(packet.signal.observed & ZX_PROCESS_TERMINATED);
924
+ process_terminated = true;
925
+ } else if (packet.key == kSocketKey) {
926
+ GTEST_DEATH_TEST_CHECK_(ZX_PKT_IS_SIGNAL_ONE(packet.type));
927
+ if (packet.signal.observed & ZX_SOCKET_READABLE) {
928
+ // Read data from the socket.
929
+ constexpr size_t kBufferSize = 1024;
930
+ do {
931
+ size_t old_length = captured_stderr_.length();
932
+ size_t bytes_read = 0;
933
+ captured_stderr_.resize(old_length + kBufferSize);
934
+ status_zx = stderr_socket_.read(
935
+ 0, &captured_stderr_.front() + old_length, kBufferSize,
936
+ &bytes_read);
937
+ captured_stderr_.resize(old_length + bytes_read);
938
+ } while (status_zx == ZX_OK);
939
+ if (status_zx == ZX_ERR_PEER_CLOSED) {
940
+ socket_closed = true;
941
+ } else {
942
+ GTEST_DEATH_TEST_CHECK_(status_zx == ZX_ERR_SHOULD_WAIT);
943
+ status_zx = stderr_socket_.wait_async(
944
+ port, kSocketKey, ZX_SOCKET_READABLE | ZX_SOCKET_PEER_CLOSED, 0);
945
+ GTEST_DEATH_TEST_CHECK_(status_zx == ZX_OK);
946
+ }
947
+ } else {
948
+ GTEST_DEATH_TEST_CHECK_(packet.signal.observed & ZX_SOCKET_PEER_CLOSED);
949
+ socket_closed = true;
950
+ }
951
+ }
952
+ } while (!process_terminated && !socket_closed);
953
+
954
+ ReadAndInterpretStatusByte();
955
+
956
+ zx_info_process_t buffer;
957
+ status_zx = child_process_.get_info(
958
+ ZX_INFO_PROCESS, &buffer, sizeof(buffer), nullptr, nullptr);
959
+ GTEST_DEATH_TEST_CHECK_(status_zx == ZX_OK);
960
+
961
+ GTEST_DEATH_TEST_CHECK_(buffer.exited);
962
+ set_status(buffer.return_code);
963
+ return status();
964
+ }
965
+
966
+ // The AssumeRole process for a Fuchsia death test. It creates a child
967
+ // process with the same executable as the current process to run the
968
+ // death test. The child process is given the --gtest_filter and
969
+ // --gtest_internal_run_death_test flags such that it knows to run the
970
+ // current death test only.
971
+ DeathTest::TestRole FuchsiaDeathTest::AssumeRole() {
972
+ const UnitTestImpl* const impl = GetUnitTestImpl();
973
+ const InternalRunDeathTestFlag* const flag =
974
+ impl->internal_run_death_test_flag();
975
+ const TestInfo* const info = impl->current_test_info();
976
+ const int death_test_index = info->result()->death_test_count();
977
+
978
+ if (flag != nullptr) {
979
+ // ParseInternalRunDeathTestFlag() has performed all the necessary
980
+ // processing.
981
+ set_write_fd(kFuchsiaReadPipeFd);
982
+ return EXECUTE_TEST;
983
+ }
984
+
985
+ // Flush the log buffers since the log streams are shared with the child.
986
+ FlushInfoLog();
987
+
988
+ // Build the child process command line.
989
+ const std::string filter_flag = std::string("--") + GTEST_FLAG_PREFIX_ +
990
+ kFilterFlag + "=" + info->test_suite_name() +
991
+ "." + info->name();
992
+ const std::string internal_flag =
993
+ std::string("--") + GTEST_FLAG_PREFIX_ + kInternalRunDeathTestFlag + "="
994
+ + file_ + "|"
995
+ + StreamableToString(line_) + "|"
996
+ + StreamableToString(death_test_index);
997
+ Arguments args;
998
+ args.AddArguments(GetInjectableArgvs());
999
+ args.AddArgument(filter_flag.c_str());
1000
+ args.AddArgument(internal_flag.c_str());
1001
+
1002
+ // Build the pipe for communication with the child.
1003
+ zx_status_t status;
1004
+ zx_handle_t child_pipe_handle;
1005
+ int child_pipe_fd;
1006
+ status = fdio_pipe_half(&child_pipe_fd, &child_pipe_handle);
1007
+ GTEST_DEATH_TEST_CHECK_(status == ZX_OK);
1008
+ set_read_fd(child_pipe_fd);
1009
+
1010
+ // Set the pipe handle for the child.
1011
+ fdio_spawn_action_t spawn_actions[2] = {};
1012
+ fdio_spawn_action_t* add_handle_action = &spawn_actions[0];
1013
+ add_handle_action->action = FDIO_SPAWN_ACTION_ADD_HANDLE;
1014
+ add_handle_action->h.id = PA_HND(PA_FD, kFuchsiaReadPipeFd);
1015
+ add_handle_action->h.handle = child_pipe_handle;
1016
+
1017
+ // Create a socket pair will be used to receive the child process' stderr.
1018
+ zx::socket stderr_producer_socket;
1019
+ status =
1020
+ zx::socket::create(0, &stderr_producer_socket, &stderr_socket_);
1021
+ GTEST_DEATH_TEST_CHECK_(status >= 0);
1022
+ int stderr_producer_fd = -1;
1023
+ status =
1024
+ fdio_fd_create(stderr_producer_socket.release(), &stderr_producer_fd);
1025
+ GTEST_DEATH_TEST_CHECK_(status >= 0);
1026
+
1027
+ // Make the stderr socket nonblocking.
1028
+ GTEST_DEATH_TEST_CHECK_(fcntl(stderr_producer_fd, F_SETFL, 0) == 0);
1029
+
1030
+ fdio_spawn_action_t* add_stderr_action = &spawn_actions[1];
1031
+ add_stderr_action->action = FDIO_SPAWN_ACTION_CLONE_FD;
1032
+ add_stderr_action->fd.local_fd = stderr_producer_fd;
1033
+ add_stderr_action->fd.target_fd = STDERR_FILENO;
1034
+
1035
+ // Create a child job.
1036
+ zx_handle_t child_job = ZX_HANDLE_INVALID;
1037
+ status = zx_job_create(zx_job_default(), 0, & child_job);
1038
+ GTEST_DEATH_TEST_CHECK_(status == ZX_OK);
1039
+ zx_policy_basic_t policy;
1040
+ policy.condition = ZX_POL_NEW_ANY;
1041
+ policy.policy = ZX_POL_ACTION_ALLOW;
1042
+ status = zx_job_set_policy(
1043
+ child_job, ZX_JOB_POL_RELATIVE, ZX_JOB_POL_BASIC, &policy, 1);
1044
+ GTEST_DEATH_TEST_CHECK_(status == ZX_OK);
1045
+
1046
+ // Create an exception channel attached to the |child_job|, to allow
1047
+ // us to suppress the system default exception handler from firing.
1048
+ status =
1049
+ zx_task_create_exception_channel(
1050
+ child_job, 0, exception_channel_.reset_and_get_address());
1051
+ GTEST_DEATH_TEST_CHECK_(status == ZX_OK);
1052
+
1053
+ // Spawn the child process.
1054
+ status = fdio_spawn_etc(
1055
+ child_job, FDIO_SPAWN_CLONE_ALL, args.Argv()[0], args.Argv(), nullptr,
1056
+ 2, spawn_actions, child_process_.reset_and_get_address(), nullptr);
1057
+ GTEST_DEATH_TEST_CHECK_(status == ZX_OK);
1058
+
1059
+ set_spawned(true);
1060
+ return OVERSEE_TEST;
1061
+ }
1062
+
1063
+ std::string FuchsiaDeathTest::GetErrorLogs() {
1064
+ return captured_stderr_;
1065
+ }
1066
+
1067
+ #else // We are neither on Windows, nor on Fuchsia.
1068
+
1069
+ // ForkingDeathTest provides implementations for most of the abstract
1070
+ // methods of the DeathTest interface. Only the AssumeRole method is
1071
+ // left undefined.
1072
+ class ForkingDeathTest : public DeathTestImpl {
1073
+ public:
1074
+ ForkingDeathTest(const char* statement, Matcher<const std::string&> matcher);
1075
+
1076
+ // All of these virtual functions are inherited from DeathTest.
1077
+ int Wait() override;
1078
+
1079
+ protected:
1080
+ void set_child_pid(pid_t child_pid) { child_pid_ = child_pid; }
1081
+
1082
+ private:
1083
+ // PID of child process during death test; 0 in the child process itself.
1084
+ pid_t child_pid_;
1085
+ };
1086
+
1087
+ // Constructs a ForkingDeathTest.
1088
+ ForkingDeathTest::ForkingDeathTest(const char* a_statement,
1089
+ Matcher<const std::string&> matcher)
1090
+ : DeathTestImpl(a_statement, std::move(matcher)), child_pid_(-1) {}
1091
+
1092
+ // Waits for the child in a death test to exit, returning its exit
1093
+ // status, or 0 if no child process exists. As a side effect, sets the
1094
+ // outcome data member.
1095
+ int ForkingDeathTest::Wait() {
1096
+ if (!spawned())
1097
+ return 0;
1098
+
1099
+ ReadAndInterpretStatusByte();
1100
+
1101
+ int status_value;
1102
+ GTEST_DEATH_TEST_CHECK_SYSCALL_(waitpid(child_pid_, &status_value, 0));
1103
+ set_status(status_value);
1104
+ return status_value;
1105
+ }
1106
+
1107
+ // A concrete death test class that forks, then immediately runs the test
1108
+ // in the child process.
1109
+ class NoExecDeathTest : public ForkingDeathTest {
1110
+ public:
1111
+ NoExecDeathTest(const char* a_statement, Matcher<const std::string&> matcher)
1112
+ : ForkingDeathTest(a_statement, std::move(matcher)) {}
1113
+ TestRole AssumeRole() override;
1114
+ };
1115
+
1116
+ // The AssumeRole process for a fork-and-run death test. It implements a
1117
+ // straightforward fork, with a simple pipe to transmit the status byte.
1118
+ DeathTest::TestRole NoExecDeathTest::AssumeRole() {
1119
+ const size_t thread_count = GetThreadCount();
1120
+ if (thread_count != 1) {
1121
+ GTEST_LOG_(WARNING) << DeathTestThreadWarning(thread_count);
1122
+ }
1123
+
1124
+ int pipe_fd[2];
1125
+ GTEST_DEATH_TEST_CHECK_(pipe(pipe_fd) != -1);
1126
+
1127
+ DeathTest::set_last_death_test_message("");
1128
+ CaptureStderr();
1129
+ // When we fork the process below, the log file buffers are copied, but the
1130
+ // file descriptors are shared. We flush all log files here so that closing
1131
+ // the file descriptors in the child process doesn't throw off the
1132
+ // synchronization between descriptors and buffers in the parent process.
1133
+ // This is as close to the fork as possible to avoid a race condition in case
1134
+ // there are multiple threads running before the death test, and another
1135
+ // thread writes to the log file.
1136
+ FlushInfoLog();
1137
+
1138
+ const pid_t child_pid = fork();
1139
+ GTEST_DEATH_TEST_CHECK_(child_pid != -1);
1140
+ set_child_pid(child_pid);
1141
+ if (child_pid == 0) {
1142
+ GTEST_DEATH_TEST_CHECK_SYSCALL_(close(pipe_fd[0]));
1143
+ set_write_fd(pipe_fd[1]);
1144
+ // Redirects all logging to stderr in the child process to prevent
1145
+ // concurrent writes to the log files. We capture stderr in the parent
1146
+ // process and append the child process' output to a log.
1147
+ LogToStderr();
1148
+ // Event forwarding to the listeners of event listener API mush be shut
1149
+ // down in death test subprocesses.
1150
+ GetUnitTestImpl()->listeners()->SuppressEventForwarding();
1151
+ g_in_fast_death_test_child = true;
1152
+ return EXECUTE_TEST;
1153
+ } else {
1154
+ GTEST_DEATH_TEST_CHECK_SYSCALL_(close(pipe_fd[1]));
1155
+ set_read_fd(pipe_fd[0]);
1156
+ set_spawned(true);
1157
+ return OVERSEE_TEST;
1158
+ }
1159
+ }
1160
+
1161
+ // A concrete death test class that forks and re-executes the main
1162
+ // program from the beginning, with command-line flags set that cause
1163
+ // only this specific death test to be run.
1164
+ class ExecDeathTest : public ForkingDeathTest {
1165
+ public:
1166
+ ExecDeathTest(const char* a_statement, Matcher<const std::string&> matcher,
1167
+ const char* file, int line)
1168
+ : ForkingDeathTest(a_statement, std::move(matcher)),
1169
+ file_(file),
1170
+ line_(line) {}
1171
+ TestRole AssumeRole() override;
1172
+
1173
+ private:
1174
+ static ::std::vector<std::string> GetArgvsForDeathTestChildProcess() {
1175
+ ::std::vector<std::string> args = GetInjectableArgvs();
1176
+ # if defined(GTEST_EXTRA_DEATH_TEST_COMMAND_LINE_ARGS_)
1177
+ ::std::vector<std::string> extra_args =
1178
+ GTEST_EXTRA_DEATH_TEST_COMMAND_LINE_ARGS_();
1179
+ args.insert(args.end(), extra_args.begin(), extra_args.end());
1180
+ # endif // defined(GTEST_EXTRA_DEATH_TEST_COMMAND_LINE_ARGS_)
1181
+ return args;
1182
+ }
1183
+ // The name of the file in which the death test is located.
1184
+ const char* const file_;
1185
+ // The line number on which the death test is located.
1186
+ const int line_;
1187
+ };
1188
+
1189
+ // Utility class for accumulating command-line arguments.
1190
+ class Arguments {
1191
+ public:
1192
+ Arguments() { args_.push_back(nullptr); }
1193
+
1194
+ ~Arguments() {
1195
+ for (std::vector<char*>::iterator i = args_.begin(); i != args_.end();
1196
+ ++i) {
1197
+ free(*i);
1198
+ }
1199
+ }
1200
+ void AddArgument(const char* argument) {
1201
+ args_.insert(args_.end() - 1, posix::StrDup(argument));
1202
+ }
1203
+
1204
+ template <typename Str>
1205
+ void AddArguments(const ::std::vector<Str>& arguments) {
1206
+ for (typename ::std::vector<Str>::const_iterator i = arguments.begin();
1207
+ i != arguments.end();
1208
+ ++i) {
1209
+ args_.insert(args_.end() - 1, posix::StrDup(i->c_str()));
1210
+ }
1211
+ }
1212
+ char* const* Argv() {
1213
+ return &args_[0];
1214
+ }
1215
+
1216
+ private:
1217
+ std::vector<char*> args_;
1218
+ };
1219
+
1220
+ // A struct that encompasses the arguments to the child process of a
1221
+ // threadsafe-style death test process.
1222
+ struct ExecDeathTestArgs {
1223
+ char* const* argv; // Command-line arguments for the child's call to exec
1224
+ int close_fd; // File descriptor to close; the read end of a pipe
1225
+ };
1226
+
1227
+ # if GTEST_OS_QNX
1228
+ extern "C" char** environ;
1229
+ # else // GTEST_OS_QNX
1230
+ // The main function for a threadsafe-style death test child process.
1231
+ // This function is called in a clone()-ed process and thus must avoid
1232
+ // any potentially unsafe operations like malloc or libc functions.
1233
+ static int ExecDeathTestChildMain(void* child_arg) {
1234
+ ExecDeathTestArgs* const args = static_cast<ExecDeathTestArgs*>(child_arg);
1235
+ GTEST_DEATH_TEST_CHECK_SYSCALL_(close(args->close_fd));
1236
+
1237
+ // We need to execute the test program in the same environment where
1238
+ // it was originally invoked. Therefore we change to the original
1239
+ // working directory first.
1240
+ const char* const original_dir =
1241
+ UnitTest::GetInstance()->original_working_dir();
1242
+ // We can safely call chdir() as it's a direct system call.
1243
+ if (chdir(original_dir) != 0) {
1244
+ DeathTestAbort(std::string("chdir(\"") + original_dir + "\") failed: " +
1245
+ GetLastErrnoDescription());
1246
+ return EXIT_FAILURE;
1247
+ }
1248
+
1249
+ // We can safely call execv() as it's almost a direct system call. We
1250
+ // cannot use execvp() as it's a libc function and thus potentially
1251
+ // unsafe. Since execv() doesn't search the PATH, the user must
1252
+ // invoke the test program via a valid path that contains at least
1253
+ // one path separator.
1254
+ execv(args->argv[0], args->argv);
1255
+ DeathTestAbort(std::string("execv(") + args->argv[0] + ", ...) in " +
1256
+ original_dir + " failed: " +
1257
+ GetLastErrnoDescription());
1258
+ return EXIT_FAILURE;
1259
+ }
1260
+ # endif // GTEST_OS_QNX
1261
+
1262
+ # if GTEST_HAS_CLONE
1263
+ // Two utility routines that together determine the direction the stack
1264
+ // grows.
1265
+ // This could be accomplished more elegantly by a single recursive
1266
+ // function, but we want to guard against the unlikely possibility of
1267
+ // a smart compiler optimizing the recursion away.
1268
+ //
1269
+ // GTEST_NO_INLINE_ is required to prevent GCC 4.6 from inlining
1270
+ // StackLowerThanAddress into StackGrowsDown, which then doesn't give
1271
+ // correct answer.
1272
+ static void StackLowerThanAddress(const void* ptr,
1273
+ bool* result) GTEST_NO_INLINE_;
1274
+ // Make sure sanitizers do not tamper with the stack here.
1275
+ // Ideally, we want to use `__builtin_frame_address` instead of a local variable
1276
+ // address with sanitizer disabled, but it does not work when the
1277
+ // compiler optimizes the stack frame out, which happens on PowerPC targets.
1278
+ // HWAddressSanitizer add a random tag to the MSB of the local variable address,
1279
+ // making comparison result unpredictable.
1280
+ GTEST_ATTRIBUTE_NO_SANITIZE_ADDRESS_
1281
+ GTEST_ATTRIBUTE_NO_SANITIZE_HWADDRESS_
1282
+ static void StackLowerThanAddress(const void* ptr, bool* result) {
1283
+ int dummy = 0;
1284
+ *result = std::less<const void*>()(&dummy, ptr);
1285
+ }
1286
+
1287
+ // Make sure AddressSanitizer does not tamper with the stack here.
1288
+ GTEST_ATTRIBUTE_NO_SANITIZE_ADDRESS_
1289
+ GTEST_ATTRIBUTE_NO_SANITIZE_HWADDRESS_
1290
+ static bool StackGrowsDown() {
1291
+ int dummy = 0;
1292
+ bool result;
1293
+ StackLowerThanAddress(&dummy, &result);
1294
+ return result;
1295
+ }
1296
+ # endif // GTEST_HAS_CLONE
1297
+
1298
+ // Spawns a child process with the same executable as the current process in
1299
+ // a thread-safe manner and instructs it to run the death test. The
1300
+ // implementation uses fork(2) + exec. On systems where clone(2) is
1301
+ // available, it is used instead, being slightly more thread-safe. On QNX,
1302
+ // fork supports only single-threaded environments, so this function uses
1303
+ // spawn(2) there instead. The function dies with an error message if
1304
+ // anything goes wrong.
1305
+ static pid_t ExecDeathTestSpawnChild(char* const* argv, int close_fd) {
1306
+ ExecDeathTestArgs args = { argv, close_fd };
1307
+ pid_t child_pid = -1;
1308
+
1309
+ # if GTEST_OS_QNX
1310
+ // Obtains the current directory and sets it to be closed in the child
1311
+ // process.
1312
+ const int cwd_fd = open(".", O_RDONLY);
1313
+ GTEST_DEATH_TEST_CHECK_(cwd_fd != -1);
1314
+ GTEST_DEATH_TEST_CHECK_SYSCALL_(fcntl(cwd_fd, F_SETFD, FD_CLOEXEC));
1315
+ // We need to execute the test program in the same environment where
1316
+ // it was originally invoked. Therefore we change to the original
1317
+ // working directory first.
1318
+ const char* const original_dir =
1319
+ UnitTest::GetInstance()->original_working_dir();
1320
+ // We can safely call chdir() as it's a direct system call.
1321
+ if (chdir(original_dir) != 0) {
1322
+ DeathTestAbort(std::string("chdir(\"") + original_dir + "\") failed: " +
1323
+ GetLastErrnoDescription());
1324
+ return EXIT_FAILURE;
1325
+ }
1326
+
1327
+ int fd_flags;
1328
+ // Set close_fd to be closed after spawn.
1329
+ GTEST_DEATH_TEST_CHECK_SYSCALL_(fd_flags = fcntl(close_fd, F_GETFD));
1330
+ GTEST_DEATH_TEST_CHECK_SYSCALL_(fcntl(close_fd, F_SETFD,
1331
+ fd_flags | FD_CLOEXEC));
1332
+ struct inheritance inherit = {0};
1333
+ // spawn is a system call.
1334
+ child_pid = spawn(args.argv[0], 0, nullptr, &inherit, args.argv, environ);
1335
+ // Restores the current working directory.
1336
+ GTEST_DEATH_TEST_CHECK_(fchdir(cwd_fd) != -1);
1337
+ GTEST_DEATH_TEST_CHECK_SYSCALL_(close(cwd_fd));
1338
+
1339
+ # else // GTEST_OS_QNX
1340
+ # if GTEST_OS_LINUX
1341
+ // When a SIGPROF signal is received while fork() or clone() are executing,
1342
+ // the process may hang. To avoid this, we ignore SIGPROF here and re-enable
1343
+ // it after the call to fork()/clone() is complete.
1344
+ struct sigaction saved_sigprof_action;
1345
+ struct sigaction ignore_sigprof_action;
1346
+ memset(&ignore_sigprof_action, 0, sizeof(ignore_sigprof_action));
1347
+ sigemptyset(&ignore_sigprof_action.sa_mask);
1348
+ ignore_sigprof_action.sa_handler = SIG_IGN;
1349
+ GTEST_DEATH_TEST_CHECK_SYSCALL_(sigaction(
1350
+ SIGPROF, &ignore_sigprof_action, &saved_sigprof_action));
1351
+ # endif // GTEST_OS_LINUX
1352
+
1353
+ # if GTEST_HAS_CLONE
1354
+ const bool use_fork = GTEST_FLAG(death_test_use_fork);
1355
+
1356
+ if (!use_fork) {
1357
+ static const bool stack_grows_down = StackGrowsDown();
1358
+ const auto stack_size = static_cast<size_t>(getpagesize() * 2);
1359
+ // MMAP_ANONYMOUS is not defined on Mac, so we use MAP_ANON instead.
1360
+ void* const stack = mmap(nullptr, stack_size, PROT_READ | PROT_WRITE,
1361
+ MAP_ANON | MAP_PRIVATE, -1, 0);
1362
+ GTEST_DEATH_TEST_CHECK_(stack != MAP_FAILED);
1363
+
1364
+ // Maximum stack alignment in bytes: For a downward-growing stack, this
1365
+ // amount is subtracted from size of the stack space to get an address
1366
+ // that is within the stack space and is aligned on all systems we care
1367
+ // about. As far as I know there is no ABI with stack alignment greater
1368
+ // than 64. We assume stack and stack_size already have alignment of
1369
+ // kMaxStackAlignment.
1370
+ const size_t kMaxStackAlignment = 64;
1371
+ void* const stack_top =
1372
+ static_cast<char*>(stack) +
1373
+ (stack_grows_down ? stack_size - kMaxStackAlignment : 0);
1374
+ GTEST_DEATH_TEST_CHECK_(
1375
+ static_cast<size_t>(stack_size) > kMaxStackAlignment &&
1376
+ reinterpret_cast<uintptr_t>(stack_top) % kMaxStackAlignment == 0);
1377
+
1378
+ child_pid = clone(&ExecDeathTestChildMain, stack_top, SIGCHLD, &args);
1379
+
1380
+ GTEST_DEATH_TEST_CHECK_(munmap(stack, stack_size) != -1);
1381
+ }
1382
+ # else
1383
+ const bool use_fork = true;
1384
+ # endif // GTEST_HAS_CLONE
1385
+
1386
+ if (use_fork && (child_pid = fork()) == 0) {
1387
+ ExecDeathTestChildMain(&args);
1388
+ _exit(0);
1389
+ }
1390
+ # endif // GTEST_OS_QNX
1391
+ # if GTEST_OS_LINUX
1392
+ GTEST_DEATH_TEST_CHECK_SYSCALL_(
1393
+ sigaction(SIGPROF, &saved_sigprof_action, nullptr));
1394
+ # endif // GTEST_OS_LINUX
1395
+
1396
+ GTEST_DEATH_TEST_CHECK_(child_pid != -1);
1397
+ return child_pid;
1398
+ }
1399
+
1400
+ // The AssumeRole process for a fork-and-exec death test. It re-executes the
1401
+ // main program from the beginning, setting the --gtest_filter
1402
+ // and --gtest_internal_run_death_test flags to cause only the current
1403
+ // death test to be re-run.
1404
+ DeathTest::TestRole ExecDeathTest::AssumeRole() {
1405
+ const UnitTestImpl* const impl = GetUnitTestImpl();
1406
+ const InternalRunDeathTestFlag* const flag =
1407
+ impl->internal_run_death_test_flag();
1408
+ const TestInfo* const info = impl->current_test_info();
1409
+ const int death_test_index = info->result()->death_test_count();
1410
+
1411
+ if (flag != nullptr) {
1412
+ set_write_fd(flag->write_fd());
1413
+ return EXECUTE_TEST;
1414
+ }
1415
+
1416
+ int pipe_fd[2];
1417
+ GTEST_DEATH_TEST_CHECK_(pipe(pipe_fd) != -1);
1418
+ // Clear the close-on-exec flag on the write end of the pipe, lest
1419
+ // it be closed when the child process does an exec:
1420
+ GTEST_DEATH_TEST_CHECK_(fcntl(pipe_fd[1], F_SETFD, 0) != -1);
1421
+
1422
+ const std::string filter_flag = std::string("--") + GTEST_FLAG_PREFIX_ +
1423
+ kFilterFlag + "=" + info->test_suite_name() +
1424
+ "." + info->name();
1425
+ const std::string internal_flag =
1426
+ std::string("--") + GTEST_FLAG_PREFIX_ + kInternalRunDeathTestFlag + "="
1427
+ + file_ + "|" + StreamableToString(line_) + "|"
1428
+ + StreamableToString(death_test_index) + "|"
1429
+ + StreamableToString(pipe_fd[1]);
1430
+ Arguments args;
1431
+ args.AddArguments(GetArgvsForDeathTestChildProcess());
1432
+ args.AddArgument(filter_flag.c_str());
1433
+ args.AddArgument(internal_flag.c_str());
1434
+
1435
+ DeathTest::set_last_death_test_message("");
1436
+
1437
+ CaptureStderr();
1438
+ // See the comment in NoExecDeathTest::AssumeRole for why the next line
1439
+ // is necessary.
1440
+ FlushInfoLog();
1441
+
1442
+ const pid_t child_pid = ExecDeathTestSpawnChild(args.Argv(), pipe_fd[0]);
1443
+ GTEST_DEATH_TEST_CHECK_SYSCALL_(close(pipe_fd[1]));
1444
+ set_child_pid(child_pid);
1445
+ set_read_fd(pipe_fd[0]);
1446
+ set_spawned(true);
1447
+ return OVERSEE_TEST;
1448
+ }
1449
+
1450
+ # endif // !GTEST_OS_WINDOWS
1451
+
1452
+ // Creates a concrete DeathTest-derived class that depends on the
1453
+ // --gtest_death_test_style flag, and sets the pointer pointed to
1454
+ // by the "test" argument to its address. If the test should be
1455
+ // skipped, sets that pointer to NULL. Returns true, unless the
1456
+ // flag is set to an invalid value.
1457
+ bool DefaultDeathTestFactory::Create(const char* statement,
1458
+ Matcher<const std::string&> matcher,
1459
+ const char* file, int line,
1460
+ DeathTest** test) {
1461
+ UnitTestImpl* const impl = GetUnitTestImpl();
1462
+ const InternalRunDeathTestFlag* const flag =
1463
+ impl->internal_run_death_test_flag();
1464
+ const int death_test_index = impl->current_test_info()
1465
+ ->increment_death_test_count();
1466
+
1467
+ if (flag != nullptr) {
1468
+ if (death_test_index > flag->index()) {
1469
+ DeathTest::set_last_death_test_message(
1470
+ "Death test count (" + StreamableToString(death_test_index)
1471
+ + ") somehow exceeded expected maximum ("
1472
+ + StreamableToString(flag->index()) + ")");
1473
+ return false;
1474
+ }
1475
+
1476
+ if (!(flag->file() == file && flag->line() == line &&
1477
+ flag->index() == death_test_index)) {
1478
+ *test = nullptr;
1479
+ return true;
1480
+ }
1481
+ }
1482
+
1483
+ # if GTEST_OS_WINDOWS
1484
+
1485
+ if (GTEST_FLAG(death_test_style) == "threadsafe" ||
1486
+ GTEST_FLAG(death_test_style) == "fast") {
1487
+ *test = new WindowsDeathTest(statement, std::move(matcher), file, line);
1488
+ }
1489
+
1490
+ # elif GTEST_OS_FUCHSIA
1491
+
1492
+ if (GTEST_FLAG(death_test_style) == "threadsafe" ||
1493
+ GTEST_FLAG(death_test_style) == "fast") {
1494
+ *test = new FuchsiaDeathTest(statement, std::move(matcher), file, line);
1495
+ }
1496
+
1497
+ # else
1498
+
1499
+ if (GTEST_FLAG(death_test_style) == "threadsafe") {
1500
+ *test = new ExecDeathTest(statement, std::move(matcher), file, line);
1501
+ } else if (GTEST_FLAG(death_test_style) == "fast") {
1502
+ *test = new NoExecDeathTest(statement, std::move(matcher));
1503
+ }
1504
+
1505
+ # endif // GTEST_OS_WINDOWS
1506
+
1507
+ else { // NOLINT - this is more readable than unbalanced brackets inside #if.
1508
+ DeathTest::set_last_death_test_message(
1509
+ "Unknown death test style \"" + GTEST_FLAG(death_test_style)
1510
+ + "\" encountered");
1511
+ return false;
1512
+ }
1513
+
1514
+ return true;
1515
+ }
1516
+
1517
+ # if GTEST_OS_WINDOWS
1518
+ // Recreates the pipe and event handles from the provided parameters,
1519
+ // signals the event, and returns a file descriptor wrapped around the pipe
1520
+ // handle. This function is called in the child process only.
1521
+ static int GetStatusFileDescriptor(unsigned int parent_process_id,
1522
+ size_t write_handle_as_size_t,
1523
+ size_t event_handle_as_size_t) {
1524
+ AutoHandle parent_process_handle(::OpenProcess(PROCESS_DUP_HANDLE,
1525
+ FALSE, // Non-inheritable.
1526
+ parent_process_id));
1527
+ if (parent_process_handle.Get() == INVALID_HANDLE_VALUE) {
1528
+ DeathTestAbort("Unable to open parent process " +
1529
+ StreamableToString(parent_process_id));
1530
+ }
1531
+
1532
+ GTEST_CHECK_(sizeof(HANDLE) <= sizeof(size_t));
1533
+
1534
+ const HANDLE write_handle =
1535
+ reinterpret_cast<HANDLE>(write_handle_as_size_t);
1536
+ HANDLE dup_write_handle;
1537
+
1538
+ // The newly initialized handle is accessible only in the parent
1539
+ // process. To obtain one accessible within the child, we need to use
1540
+ // DuplicateHandle.
1541
+ if (!::DuplicateHandle(parent_process_handle.Get(), write_handle,
1542
+ ::GetCurrentProcess(), &dup_write_handle,
1543
+ 0x0, // Requested privileges ignored since
1544
+ // DUPLICATE_SAME_ACCESS is used.
1545
+ FALSE, // Request non-inheritable handler.
1546
+ DUPLICATE_SAME_ACCESS)) {
1547
+ DeathTestAbort("Unable to duplicate the pipe handle " +
1548
+ StreamableToString(write_handle_as_size_t) +
1549
+ " from the parent process " +
1550
+ StreamableToString(parent_process_id));
1551
+ }
1552
+
1553
+ const HANDLE event_handle = reinterpret_cast<HANDLE>(event_handle_as_size_t);
1554
+ HANDLE dup_event_handle;
1555
+
1556
+ if (!::DuplicateHandle(parent_process_handle.Get(), event_handle,
1557
+ ::GetCurrentProcess(), &dup_event_handle,
1558
+ 0x0,
1559
+ FALSE,
1560
+ DUPLICATE_SAME_ACCESS)) {
1561
+ DeathTestAbort("Unable to duplicate the event handle " +
1562
+ StreamableToString(event_handle_as_size_t) +
1563
+ " from the parent process " +
1564
+ StreamableToString(parent_process_id));
1565
+ }
1566
+
1567
+ const int write_fd =
1568
+ ::_open_osfhandle(reinterpret_cast<intptr_t>(dup_write_handle), O_APPEND);
1569
+ if (write_fd == -1) {
1570
+ DeathTestAbort("Unable to convert pipe handle " +
1571
+ StreamableToString(write_handle_as_size_t) +
1572
+ " to a file descriptor");
1573
+ }
1574
+
1575
+ // Signals the parent that the write end of the pipe has been acquired
1576
+ // so the parent can release its own write end.
1577
+ ::SetEvent(dup_event_handle);
1578
+
1579
+ return write_fd;
1580
+ }
1581
+ # endif // GTEST_OS_WINDOWS
1582
+
1583
+ // Returns a newly created InternalRunDeathTestFlag object with fields
1584
+ // initialized from the GTEST_FLAG(internal_run_death_test) flag if
1585
+ // the flag is specified; otherwise returns NULL.
1586
+ InternalRunDeathTestFlag* ParseInternalRunDeathTestFlag() {
1587
+ if (GTEST_FLAG(internal_run_death_test) == "") return nullptr;
1588
+
1589
+ // GTEST_HAS_DEATH_TEST implies that we have ::std::string, so we
1590
+ // can use it here.
1591
+ int line = -1;
1592
+ int index = -1;
1593
+ ::std::vector< ::std::string> fields;
1594
+ SplitString(GTEST_FLAG(internal_run_death_test).c_str(), '|', &fields);
1595
+ int write_fd = -1;
1596
+
1597
+ # if GTEST_OS_WINDOWS
1598
+
1599
+ unsigned int parent_process_id = 0;
1600
+ size_t write_handle_as_size_t = 0;
1601
+ size_t event_handle_as_size_t = 0;
1602
+
1603
+ if (fields.size() != 6
1604
+ || !ParseNaturalNumber(fields[1], &line)
1605
+ || !ParseNaturalNumber(fields[2], &index)
1606
+ || !ParseNaturalNumber(fields[3], &parent_process_id)
1607
+ || !ParseNaturalNumber(fields[4], &write_handle_as_size_t)
1608
+ || !ParseNaturalNumber(fields[5], &event_handle_as_size_t)) {
1609
+ DeathTestAbort("Bad --gtest_internal_run_death_test flag: " +
1610
+ GTEST_FLAG(internal_run_death_test));
1611
+ }
1612
+ write_fd = GetStatusFileDescriptor(parent_process_id,
1613
+ write_handle_as_size_t,
1614
+ event_handle_as_size_t);
1615
+
1616
+ # elif GTEST_OS_FUCHSIA
1617
+
1618
+ if (fields.size() != 3
1619
+ || !ParseNaturalNumber(fields[1], &line)
1620
+ || !ParseNaturalNumber(fields[2], &index)) {
1621
+ DeathTestAbort("Bad --gtest_internal_run_death_test flag: "
1622
+ + GTEST_FLAG(internal_run_death_test));
1623
+ }
1624
+
1625
+ # else
1626
+
1627
+ if (fields.size() != 4
1628
+ || !ParseNaturalNumber(fields[1], &line)
1629
+ || !ParseNaturalNumber(fields[2], &index)
1630
+ || !ParseNaturalNumber(fields[3], &write_fd)) {
1631
+ DeathTestAbort("Bad --gtest_internal_run_death_test flag: "
1632
+ + GTEST_FLAG(internal_run_death_test));
1633
+ }
1634
+
1635
+ # endif // GTEST_OS_WINDOWS
1636
+
1637
+ return new InternalRunDeathTestFlag(fields[0], line, index, write_fd);
1638
+ }
1639
+
1640
+ } // namespace internal
1641
+
1642
+ #endif // GTEST_HAS_DEATH_TEST
1643
+
1644
+ } // namespace testing