rn-leveldb 3.11.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (595) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +92 -0
  3. package/android/.project +34 -0
  4. package/android/.settings/org.eclipse.buildship.core.prefs +13 -0
  5. package/android/CMakeLists.txt +69 -0
  6. package/android/build.gradle +125 -0
  7. package/android/cpp-adapter.cpp +19 -0
  8. package/android/gradle.properties +6 -0
  9. package/android/src/main/AndroidManifest.xml +4 -0
  10. package/android/src/main/java/com/reactnativeleveldb/LeveldbModule.java +57 -0
  11. package/android/src/main/java/com/reactnativeleveldb/LeveldbPackage.java +28 -0
  12. package/cpp/leveldb/.appveyor.yml +36 -0
  13. package/cpp/leveldb/.clang-format +18 -0
  14. package/cpp/leveldb/.travis.yml +88 -0
  15. package/cpp/leveldb/AUTHORS +12 -0
  16. package/cpp/leveldb/CMakeLists.txt +495 -0
  17. package/cpp/leveldb/CONTRIBUTING.md +36 -0
  18. package/cpp/leveldb/LICENSE +27 -0
  19. package/cpp/leveldb/NEWS +17 -0
  20. package/cpp/leveldb/README.md +231 -0
  21. package/cpp/leveldb/TODO +14 -0
  22. package/cpp/leveldb/benchmarks/db_bench.cc +990 -0
  23. package/cpp/leveldb/benchmarks/db_bench_sqlite3.cc +726 -0
  24. package/cpp/leveldb/benchmarks/db_bench_tree_db.cc +531 -0
  25. package/cpp/leveldb/cmake/leveldbConfig.cmake.in +9 -0
  26. package/cpp/leveldb/db/autocompact_test.cc +115 -0
  27. package/cpp/leveldb/db/builder.cc +82 -0
  28. package/cpp/leveldb/db/builder.h +30 -0
  29. package/cpp/leveldb/db/c.cc +562 -0
  30. package/cpp/leveldb/db/c_test.c +384 -0
  31. package/cpp/leveldb/db/corruption_test.cc +367 -0
  32. package/cpp/leveldb/db/db_impl.cc +1554 -0
  33. package/cpp/leveldb/db/db_impl.h +217 -0
  34. package/cpp/leveldb/db/db_iter.cc +318 -0
  35. package/cpp/leveldb/db/db_iter.h +26 -0
  36. package/cpp/leveldb/db/db_test.cc +2305 -0
  37. package/cpp/leveldb/db/dbformat.cc +136 -0
  38. package/cpp/leveldb/db/dbformat.h +224 -0
  39. package/cpp/leveldb/db/dbformat_test.cc +133 -0
  40. package/cpp/leveldb/db/dumpfile.cc +232 -0
  41. package/cpp/leveldb/db/fault_injection_test.cc +555 -0
  42. package/cpp/leveldb/db/filename.cc +141 -0
  43. package/cpp/leveldb/db/filename.h +83 -0
  44. package/cpp/leveldb/db/filename_test.cc +132 -0
  45. package/cpp/leveldb/db/leveldbutil.cc +64 -0
  46. package/cpp/leveldb/db/log_format.h +35 -0
  47. package/cpp/leveldb/db/log_reader.cc +274 -0
  48. package/cpp/leveldb/db/log_reader.h +112 -0
  49. package/cpp/leveldb/db/log_test.cc +563 -0
  50. package/cpp/leveldb/db/log_writer.cc +111 -0
  51. package/cpp/leveldb/db/log_writer.h +54 -0
  52. package/cpp/leveldb/db/memtable.cc +137 -0
  53. package/cpp/leveldb/db/memtable.h +87 -0
  54. package/cpp/leveldb/db/recovery_test.cc +339 -0
  55. package/cpp/leveldb/db/repair.cc +451 -0
  56. package/cpp/leveldb/db/skiplist.h +382 -0
  57. package/cpp/leveldb/db/skiplist_test.cc +373 -0
  58. package/cpp/leveldb/db/snapshot.h +95 -0
  59. package/cpp/leveldb/db/table_cache.cc +120 -0
  60. package/cpp/leveldb/db/table_cache.h +57 -0
  61. package/cpp/leveldb/db/version_edit.cc +257 -0
  62. package/cpp/leveldb/db/version_edit.h +106 -0
  63. package/cpp/leveldb/db/version_edit_test.cc +46 -0
  64. package/cpp/leveldb/db/version_set.cc +1562 -0
  65. package/cpp/leveldb/db/version_set.h +393 -0
  66. package/cpp/leveldb/db/version_set_test.cc +336 -0
  67. package/cpp/leveldb/db/write_batch.cc +150 -0
  68. package/cpp/leveldb/db/write_batch_internal.h +45 -0
  69. package/cpp/leveldb/db/write_batch_test.cc +137 -0
  70. package/cpp/leveldb/doc/benchmark.html +459 -0
  71. package/cpp/leveldb/doc/impl.md +172 -0
  72. package/cpp/leveldb/doc/index.md +523 -0
  73. package/cpp/leveldb/doc/log_format.md +75 -0
  74. package/cpp/leveldb/doc/table_format.md +107 -0
  75. package/cpp/leveldb/helpers/memenv/memenv.cc +390 -0
  76. package/cpp/leveldb/helpers/memenv/memenv.h +22 -0
  77. package/cpp/leveldb/helpers/memenv/memenv_test.cc +264 -0
  78. package/cpp/leveldb/include/leveldb/c.h +270 -0
  79. package/cpp/leveldb/include/leveldb/cache.h +111 -0
  80. package/cpp/leveldb/include/leveldb/comparator.h +64 -0
  81. package/cpp/leveldb/include/leveldb/db.h +167 -0
  82. package/cpp/leveldb/include/leveldb/dumpfile.h +28 -0
  83. package/cpp/leveldb/include/leveldb/env.h +417 -0
  84. package/cpp/leveldb/include/leveldb/export.h +33 -0
  85. package/cpp/leveldb/include/leveldb/filter_policy.h +72 -0
  86. package/cpp/leveldb/include/leveldb/iterator.h +112 -0
  87. package/cpp/leveldb/include/leveldb/options.h +187 -0
  88. package/cpp/leveldb/include/leveldb/slice.h +114 -0
  89. package/cpp/leveldb/include/leveldb/status.h +122 -0
  90. package/cpp/leveldb/include/leveldb/table.h +84 -0
  91. package/cpp/leveldb/include/leveldb/table_builder.h +93 -0
  92. package/cpp/leveldb/include/leveldb/write_batch.h +83 -0
  93. package/cpp/leveldb/issues/issue178_test.cc +90 -0
  94. package/cpp/leveldb/issues/issue200_test.cc +59 -0
  95. package/cpp/leveldb/issues/issue320_test.cc +131 -0
  96. package/cpp/leveldb/port/README.md +10 -0
  97. package/cpp/leveldb/port/port.h +19 -0
  98. package/cpp/leveldb/port/port_config.h.in +33 -0
  99. package/cpp/leveldb/port/port_example.h +100 -0
  100. package/cpp/leveldb/port/port_stdcxx.h +151 -0
  101. package/cpp/leveldb/port/thread_annotations.h +108 -0
  102. package/cpp/leveldb/table/block.cc +267 -0
  103. package/cpp/leveldb/table/block.h +44 -0
  104. package/cpp/leveldb/table/block_builder.cc +107 -0
  105. package/cpp/leveldb/table/block_builder.h +54 -0
  106. package/cpp/leveldb/table/filter_block.cc +106 -0
  107. package/cpp/leveldb/table/filter_block.h +68 -0
  108. package/cpp/leveldb/table/filter_block_test.cc +127 -0
  109. package/cpp/leveldb/table/format.cc +141 -0
  110. package/cpp/leveldb/table/format.h +99 -0
  111. package/cpp/leveldb/table/iterator.cc +76 -0
  112. package/cpp/leveldb/table/iterator_wrapper.h +92 -0
  113. package/cpp/leveldb/table/merger.cc +191 -0
  114. package/cpp/leveldb/table/merger.h +26 -0
  115. package/cpp/leveldb/table/table.cc +271 -0
  116. package/cpp/leveldb/table/table_builder.cc +265 -0
  117. package/cpp/leveldb/table/table_test.cc +834 -0
  118. package/cpp/leveldb/table/two_level_iterator.cc +171 -0
  119. package/cpp/leveldb/table/two_level_iterator.h +31 -0
  120. package/cpp/leveldb/third_party/benchmark/.clang-format +5 -0
  121. package/cpp/leveldb/third_party/benchmark/.github/ISSUE_TEMPLATE/bug_report.md +32 -0
  122. package/cpp/leveldb/third_party/benchmark/.github/ISSUE_TEMPLATE/feature_request.md +20 -0
  123. package/cpp/leveldb/third_party/benchmark/.github/workflows/build-and-test.yml +38 -0
  124. package/cpp/leveldb/third_party/benchmark/.github/workflows/pylint.yml +26 -0
  125. package/cpp/leveldb/third_party/benchmark/.github/workflows/test_bindings.yml +24 -0
  126. package/cpp/leveldb/third_party/benchmark/.travis-libcxx-setup.sh +28 -0
  127. package/cpp/leveldb/third_party/benchmark/.travis.yml +231 -0
  128. package/cpp/leveldb/third_party/benchmark/.ycm_extra_conf.py +115 -0
  129. package/cpp/leveldb/third_party/benchmark/AUTHORS +58 -0
  130. package/cpp/leveldb/third_party/benchmark/BUILD.bazel +44 -0
  131. package/cpp/leveldb/third_party/benchmark/CMakeLists.txt +287 -0
  132. package/cpp/leveldb/third_party/benchmark/CONTRIBUTING.md +58 -0
  133. package/cpp/leveldb/third_party/benchmark/CONTRIBUTORS +83 -0
  134. package/cpp/leveldb/third_party/benchmark/LICENSE +202 -0
  135. package/cpp/leveldb/third_party/benchmark/README.md +1323 -0
  136. package/cpp/leveldb/third_party/benchmark/WORKSPACE +51 -0
  137. package/cpp/leveldb/third_party/benchmark/_config.yml +1 -0
  138. package/cpp/leveldb/third_party/benchmark/appveyor.yml +50 -0
  139. package/cpp/leveldb/third_party/benchmark/bindings/python/BUILD +3 -0
  140. package/cpp/leveldb/third_party/benchmark/bindings/python/build_defs.bzl +25 -0
  141. package/cpp/leveldb/third_party/benchmark/bindings/python/google_benchmark/BUILD +38 -0
  142. package/cpp/leveldb/third_party/benchmark/bindings/python/google_benchmark/__init__.py +156 -0
  143. package/cpp/leveldb/third_party/benchmark/bindings/python/google_benchmark/benchmark.cc +180 -0
  144. package/cpp/leveldb/third_party/benchmark/bindings/python/google_benchmark/example.py +136 -0
  145. package/cpp/leveldb/third_party/benchmark/bindings/python/pybind11.BUILD +20 -0
  146. package/cpp/leveldb/third_party/benchmark/bindings/python/python_headers.BUILD +6 -0
  147. package/cpp/leveldb/third_party/benchmark/bindings/python/requirements.txt +2 -0
  148. package/cpp/leveldb/third_party/benchmark/cmake/AddCXXCompilerFlag.cmake +74 -0
  149. package/cpp/leveldb/third_party/benchmark/cmake/CXXFeatureCheck.cmake +69 -0
  150. package/cpp/leveldb/third_party/benchmark/cmake/Config.cmake.in +1 -0
  151. package/cpp/leveldb/third_party/benchmark/cmake/GetGitVersion.cmake +54 -0
  152. package/cpp/leveldb/third_party/benchmark/cmake/GoogleTest.cmake +41 -0
  153. package/cpp/leveldb/third_party/benchmark/cmake/GoogleTest.cmake.in +58 -0
  154. package/cpp/leveldb/third_party/benchmark/cmake/benchmark.pc.in +12 -0
  155. package/cpp/leveldb/third_party/benchmark/cmake/gnu_posix_regex.cpp +12 -0
  156. package/cpp/leveldb/third_party/benchmark/cmake/llvm-toolchain.cmake +8 -0
  157. package/cpp/leveldb/third_party/benchmark/cmake/posix_regex.cpp +14 -0
  158. package/cpp/leveldb/third_party/benchmark/cmake/split_list.cmake +3 -0
  159. package/cpp/leveldb/third_party/benchmark/cmake/std_regex.cpp +10 -0
  160. package/cpp/leveldb/third_party/benchmark/cmake/steady_clock.cpp +7 -0
  161. package/cpp/leveldb/third_party/benchmark/cmake/thread_safety_attributes.cpp +4 -0
  162. package/cpp/leveldb/third_party/benchmark/conan/CMakeLists.txt +7 -0
  163. package/cpp/leveldb/third_party/benchmark/conan/test_package/CMakeLists.txt +10 -0
  164. package/cpp/leveldb/third_party/benchmark/conan/test_package/conanfile.py +19 -0
  165. package/cpp/leveldb/third_party/benchmark/conan/test_package/test_package.cpp +18 -0
  166. package/cpp/leveldb/third_party/benchmark/conanfile.py +79 -0
  167. package/cpp/leveldb/third_party/benchmark/dependencies.md +18 -0
  168. package/cpp/leveldb/third_party/benchmark/docs/AssemblyTests.md +147 -0
  169. package/cpp/leveldb/third_party/benchmark/docs/_config.yml +1 -0
  170. package/cpp/leveldb/third_party/benchmark/docs/releasing.md +16 -0
  171. package/cpp/leveldb/third_party/benchmark/docs/tools.md +203 -0
  172. package/cpp/leveldb/third_party/benchmark/include/benchmark/benchmark.h +1604 -0
  173. package/cpp/leveldb/third_party/benchmark/requirements.txt +2 -0
  174. package/cpp/leveldb/third_party/benchmark/setup.py +140 -0
  175. package/cpp/leveldb/third_party/benchmark/src/CMakeLists.txt +114 -0
  176. package/cpp/leveldb/third_party/benchmark/src/arraysize.h +33 -0
  177. package/cpp/leveldb/third_party/benchmark/src/benchmark.cc +499 -0
  178. package/cpp/leveldb/third_party/benchmark/src/benchmark_api_internal.cc +15 -0
  179. package/cpp/leveldb/third_party/benchmark/src/benchmark_api_internal.h +53 -0
  180. package/cpp/leveldb/third_party/benchmark/src/benchmark_main.cc +17 -0
  181. package/cpp/leveldb/third_party/benchmark/src/benchmark_name.cc +58 -0
  182. package/cpp/leveldb/third_party/benchmark/src/benchmark_register.cc +515 -0
  183. package/cpp/leveldb/third_party/benchmark/src/benchmark_register.h +108 -0
  184. package/cpp/leveldb/third_party/benchmark/src/benchmark_runner.cc +362 -0
  185. package/cpp/leveldb/third_party/benchmark/src/benchmark_runner.h +51 -0
  186. package/cpp/leveldb/third_party/benchmark/src/check.h +82 -0
  187. package/cpp/leveldb/third_party/benchmark/src/colorprint.cc +188 -0
  188. package/cpp/leveldb/third_party/benchmark/src/colorprint.h +33 -0
  189. package/cpp/leveldb/third_party/benchmark/src/commandlineflags.cc +228 -0
  190. package/cpp/leveldb/third_party/benchmark/src/commandlineflags.h +103 -0
  191. package/cpp/leveldb/third_party/benchmark/src/complexity.cc +238 -0
  192. package/cpp/leveldb/third_party/benchmark/src/complexity.h +55 -0
  193. package/cpp/leveldb/third_party/benchmark/src/console_reporter.cc +177 -0
  194. package/cpp/leveldb/third_party/benchmark/src/counter.cc +80 -0
  195. package/cpp/leveldb/third_party/benchmark/src/counter.h +32 -0
  196. package/cpp/leveldb/third_party/benchmark/src/csv_reporter.cc +154 -0
  197. package/cpp/leveldb/third_party/benchmark/src/cycleclock.h +211 -0
  198. package/cpp/leveldb/third_party/benchmark/src/internal_macros.h +102 -0
  199. package/cpp/leveldb/third_party/benchmark/src/json_reporter.cc +255 -0
  200. package/cpp/leveldb/third_party/benchmark/src/log.h +74 -0
  201. package/cpp/leveldb/third_party/benchmark/src/mutex.h +155 -0
  202. package/cpp/leveldb/third_party/benchmark/src/re.h +158 -0
  203. package/cpp/leveldb/third_party/benchmark/src/reporter.cc +105 -0
  204. package/cpp/leveldb/third_party/benchmark/src/sleep.cc +67 -0
  205. package/cpp/leveldb/third_party/benchmark/src/sleep.h +15 -0
  206. package/cpp/leveldb/third_party/benchmark/src/statistics.cc +193 -0
  207. package/cpp/leveldb/third_party/benchmark/src/statistics.h +37 -0
  208. package/cpp/leveldb/third_party/benchmark/src/string_util.cc +255 -0
  209. package/cpp/leveldb/third_party/benchmark/src/string_util.h +59 -0
  210. package/cpp/leveldb/third_party/benchmark/src/sysinfo.cc +716 -0
  211. package/cpp/leveldb/third_party/benchmark/src/thread_manager.h +64 -0
  212. package/cpp/leveldb/third_party/benchmark/src/thread_timer.h +86 -0
  213. package/cpp/leveldb/third_party/benchmark/src/timers.cc +245 -0
  214. package/cpp/leveldb/third_party/benchmark/src/timers.h +48 -0
  215. package/cpp/leveldb/third_party/benchmark/test/AssemblyTests.cmake +46 -0
  216. package/cpp/leveldb/third_party/benchmark/test/BUILD +73 -0
  217. package/cpp/leveldb/third_party/benchmark/test/CMakeLists.txt +263 -0
  218. package/cpp/leveldb/third_party/benchmark/test/args_product_test.cc +77 -0
  219. package/cpp/leveldb/third_party/benchmark/test/basic_test.cc +136 -0
  220. package/cpp/leveldb/third_party/benchmark/test/benchmark_gtest.cc +134 -0
  221. package/cpp/leveldb/third_party/benchmark/test/benchmark_name_gtest.cc +74 -0
  222. package/cpp/leveldb/third_party/benchmark/test/benchmark_test.cc +245 -0
  223. package/cpp/leveldb/third_party/benchmark/test/clobber_memory_assembly_test.cc +64 -0
  224. package/cpp/leveldb/third_party/benchmark/test/commandlineflags_gtest.cc +201 -0
  225. package/cpp/leveldb/third_party/benchmark/test/complexity_test.cc +213 -0
  226. package/cpp/leveldb/third_party/benchmark/test/cxx03_test.cc +63 -0
  227. package/cpp/leveldb/third_party/benchmark/test/diagnostics_test.cc +80 -0
  228. package/cpp/leveldb/third_party/benchmark/test/display_aggregates_only_test.cc +43 -0
  229. package/cpp/leveldb/third_party/benchmark/test/donotoptimize_assembly_test.cc +163 -0
  230. package/cpp/leveldb/third_party/benchmark/test/donotoptimize_test.cc +52 -0
  231. package/cpp/leveldb/third_party/benchmark/test/filter_test.cc +104 -0
  232. package/cpp/leveldb/third_party/benchmark/test/fixture_test.cc +51 -0
  233. package/cpp/leveldb/third_party/benchmark/test/internal_threading_test.cc +184 -0
  234. package/cpp/leveldb/third_party/benchmark/test/link_main_test.cc +8 -0
  235. package/cpp/leveldb/third_party/benchmark/test/map_test.cc +57 -0
  236. package/cpp/leveldb/third_party/benchmark/test/memory_manager_test.cc +44 -0
  237. package/cpp/leveldb/third_party/benchmark/test/multiple_ranges_test.cc +96 -0
  238. package/cpp/leveldb/third_party/benchmark/test/options_test.cc +75 -0
  239. package/cpp/leveldb/third_party/benchmark/test/output_test.h +213 -0
  240. package/cpp/leveldb/third_party/benchmark/test/output_test_helper.cc +515 -0
  241. package/cpp/leveldb/third_party/benchmark/test/register_benchmark_test.cc +184 -0
  242. package/cpp/leveldb/third_party/benchmark/test/report_aggregates_only_test.cc +39 -0
  243. package/cpp/leveldb/third_party/benchmark/test/reporter_output_test.cc +747 -0
  244. package/cpp/leveldb/third_party/benchmark/test/skip_with_error_test.cc +195 -0
  245. package/cpp/leveldb/third_party/benchmark/test/state_assembly_test.cc +68 -0
  246. package/cpp/leveldb/third_party/benchmark/test/statistics_gtest.cc +28 -0
  247. package/cpp/leveldb/third_party/benchmark/test/string_util_gtest.cc +153 -0
  248. package/cpp/leveldb/third_party/benchmark/test/templated_fixture_test.cc +28 -0
  249. package/cpp/leveldb/third_party/benchmark/test/user_counters_tabular_test.cc +285 -0
  250. package/cpp/leveldb/third_party/benchmark/test/user_counters_test.cc +531 -0
  251. package/cpp/leveldb/third_party/benchmark/test/user_counters_thousands_test.cc +173 -0
  252. package/cpp/leveldb/third_party/benchmark/tools/BUILD.bazel +19 -0
  253. package/cpp/leveldb/third_party/benchmark/tools/compare.py +429 -0
  254. package/cpp/leveldb/third_party/benchmark/tools/gbench/Inputs/test1_run1.json +119 -0
  255. package/cpp/leveldb/third_party/benchmark/tools/gbench/Inputs/test1_run2.json +119 -0
  256. package/cpp/leveldb/third_party/benchmark/tools/gbench/Inputs/test2_run.json +81 -0
  257. package/cpp/leveldb/third_party/benchmark/tools/gbench/Inputs/test3_run0.json +65 -0
  258. package/cpp/leveldb/third_party/benchmark/tools/gbench/Inputs/test3_run1.json +65 -0
  259. package/cpp/leveldb/third_party/benchmark/tools/gbench/__init__.py +8 -0
  260. package/cpp/leveldb/third_party/benchmark/tools/gbench/report.py +903 -0
  261. package/cpp/leveldb/third_party/benchmark/tools/gbench/util.py +163 -0
  262. package/cpp/leveldb/third_party/benchmark/tools/requirements.txt +1 -0
  263. package/cpp/leveldb/third_party/benchmark/tools/strip_asm.py +151 -0
  264. package/cpp/leveldb/third_party/googletest/.clang-format +4 -0
  265. package/cpp/leveldb/third_party/googletest/.travis.yml +73 -0
  266. package/cpp/leveldb/third_party/googletest/BUILD.bazel +179 -0
  267. package/cpp/leveldb/third_party/googletest/CMakeLists.txt +36 -0
  268. package/cpp/leveldb/third_party/googletest/CONTRIBUTING.md +142 -0
  269. package/cpp/leveldb/third_party/googletest/LICENSE +28 -0
  270. package/cpp/leveldb/third_party/googletest/README.md +132 -0
  271. package/cpp/leveldb/third_party/googletest/WORKSPACE +23 -0
  272. package/cpp/leveldb/third_party/googletest/appveyor.yml +154 -0
  273. package/cpp/leveldb/third_party/googletest/ci/build-linux-bazel.sh +37 -0
  274. package/cpp/leveldb/third_party/googletest/ci/build-platformio.sh +2 -0
  275. package/cpp/leveldb/third_party/googletest/ci/env-linux.sh +41 -0
  276. package/cpp/leveldb/third_party/googletest/ci/env-osx.sh +47 -0
  277. package/cpp/leveldb/third_party/googletest/ci/get-nprocessors.sh +48 -0
  278. package/cpp/leveldb/third_party/googletest/ci/install-linux.sh +49 -0
  279. package/cpp/leveldb/third_party/googletest/ci/install-osx.sh +40 -0
  280. package/cpp/leveldb/third_party/googletest/ci/install-platformio.sh +5 -0
  281. package/cpp/leveldb/third_party/googletest/ci/log-config.sh +51 -0
  282. package/cpp/leveldb/third_party/googletest/ci/travis.sh +44 -0
  283. package/cpp/leveldb/third_party/googletest/googlemock/CMakeLists.txt +233 -0
  284. package/cpp/leveldb/third_party/googletest/googlemock/CONTRIBUTORS +40 -0
  285. package/cpp/leveldb/third_party/googletest/googlemock/LICENSE +28 -0
  286. package/cpp/leveldb/third_party/googletest/googlemock/README.md +44 -0
  287. package/cpp/leveldb/third_party/googletest/googlemock/cmake/gmock.pc.in +10 -0
  288. package/cpp/leveldb/third_party/googletest/googlemock/cmake/gmock_main.pc.in +10 -0
  289. package/cpp/leveldb/third_party/googletest/googlemock/docs/cheat_sheet.md +770 -0
  290. package/cpp/leveldb/third_party/googletest/googlemock/docs/cook_book.md +4270 -0
  291. package/cpp/leveldb/third_party/googletest/googlemock/docs/for_dummies.md +700 -0
  292. package/cpp/leveldb/third_party/googletest/googlemock/docs/gmock_faq.md +396 -0
  293. package/cpp/leveldb/third_party/googletest/googlemock/docs/pump_manual.md +187 -0
  294. package/cpp/leveldb/third_party/googletest/googlemock/include/gmock/gmock-actions.h +1193 -0
  295. package/cpp/leveldb/third_party/googletest/googlemock/include/gmock/gmock-cardinalities.h +157 -0
  296. package/cpp/leveldb/third_party/googletest/googlemock/include/gmock/gmock-function-mocker.h +276 -0
  297. package/cpp/leveldb/third_party/googletest/googlemock/include/gmock/gmock-generated-actions.h +1884 -0
  298. package/cpp/leveldb/third_party/googletest/googlemock/include/gmock/gmock-generated-actions.h.pump +627 -0
  299. package/cpp/leveldb/third_party/googletest/googlemock/include/gmock/gmock-generated-function-mockers.h +752 -0
  300. package/cpp/leveldb/third_party/googletest/googlemock/include/gmock/gmock-generated-function-mockers.h.pump +227 -0
  301. package/cpp/leveldb/third_party/googletest/googlemock/include/gmock/gmock-generated-matchers.h +1097 -0
  302. package/cpp/leveldb/third_party/googletest/googlemock/include/gmock/gmock-generated-matchers.h.pump +346 -0
  303. package/cpp/leveldb/third_party/googletest/googlemock/include/gmock/gmock-matchers.h +4591 -0
  304. package/cpp/leveldb/third_party/googletest/googlemock/include/gmock/gmock-more-actions.h +162 -0
  305. package/cpp/leveldb/third_party/googletest/googlemock/include/gmock/gmock-more-matchers.h +92 -0
  306. package/cpp/leveldb/third_party/googletest/googlemock/include/gmock/gmock-nice-strict.h +215 -0
  307. package/cpp/leveldb/third_party/googletest/googlemock/include/gmock/gmock-spec-builders.h +1985 -0
  308. package/cpp/leveldb/third_party/googletest/googlemock/include/gmock/gmock.h +101 -0
  309. package/cpp/leveldb/third_party/googletest/googlemock/include/gmock/internal/custom/README.md +16 -0
  310. package/cpp/leveldb/third_party/googletest/googlemock/include/gmock/internal/custom/gmock-generated-actions.h +10 -0
  311. package/cpp/leveldb/third_party/googletest/googlemock/include/gmock/internal/custom/gmock-generated-actions.h.pump +12 -0
  312. package/cpp/leveldb/third_party/googletest/googlemock/include/gmock/internal/custom/gmock-matchers.h +36 -0
  313. package/cpp/leveldb/third_party/googletest/googlemock/include/gmock/internal/custom/gmock-port.h +39 -0
  314. package/cpp/leveldb/third_party/googletest/googlemock/include/gmock/internal/gmock-internal-utils.h +472 -0
  315. package/cpp/leveldb/third_party/googletest/googlemock/include/gmock/internal/gmock-port.h +87 -0
  316. package/cpp/leveldb/third_party/googletest/googlemock/include/gmock/internal/gmock-pp.h +271 -0
  317. package/cpp/leveldb/third_party/googletest/googlemock/scripts/README.md +5 -0
  318. package/cpp/leveldb/third_party/googletest/googlemock/scripts/fuse_gmock_files.py +240 -0
  319. package/cpp/leveldb/third_party/googletest/googlemock/scripts/generator/LICENSE +203 -0
  320. package/cpp/leveldb/third_party/googletest/googlemock/scripts/generator/README +34 -0
  321. package/cpp/leveldb/third_party/googletest/googlemock/scripts/generator/README.cppclean +115 -0
  322. package/cpp/leveldb/third_party/googletest/googlemock/scripts/generator/cpp/__init__.py +0 -0
  323. package/cpp/leveldb/third_party/googletest/googlemock/scripts/generator/cpp/ast.py +1761 -0
  324. package/cpp/leveldb/third_party/googletest/googlemock/scripts/generator/cpp/gmock_class.py +248 -0
  325. package/cpp/leveldb/third_party/googletest/googlemock/scripts/generator/cpp/gmock_class_test.py +540 -0
  326. package/cpp/leveldb/third_party/googletest/googlemock/scripts/generator/cpp/keywords.py +56 -0
  327. package/cpp/leveldb/third_party/googletest/googlemock/scripts/generator/cpp/tokenize.py +284 -0
  328. package/cpp/leveldb/third_party/googletest/googlemock/scripts/generator/cpp/utils.py +37 -0
  329. package/cpp/leveldb/third_party/googletest/googlemock/scripts/generator/gmock_gen.py +30 -0
  330. package/cpp/leveldb/third_party/googletest/googlemock/scripts/pump.py +856 -0
  331. package/cpp/leveldb/third_party/googletest/googlemock/src/gmock-all.cc +46 -0
  332. package/cpp/leveldb/third_party/googletest/googlemock/src/gmock-cardinalities.cc +155 -0
  333. package/cpp/leveldb/third_party/googletest/googlemock/src/gmock-internal-utils.cc +200 -0
  334. package/cpp/leveldb/third_party/googletest/googlemock/src/gmock-matchers.cc +462 -0
  335. package/cpp/leveldb/third_party/googletest/googlemock/src/gmock-spec-builders.cc +892 -0
  336. package/cpp/leveldb/third_party/googletest/googlemock/src/gmock.cc +213 -0
  337. package/cpp/leveldb/third_party/googletest/googlemock/src/gmock_main.cc +72 -0
  338. package/cpp/leveldb/third_party/googletest/googlemock/test/BUILD.bazel +110 -0
  339. package/cpp/leveldb/third_party/googletest/googlemock/test/gmock-actions_test.cc +1507 -0
  340. package/cpp/leveldb/third_party/googletest/googlemock/test/gmock-cardinalities_test.cc +429 -0
  341. package/cpp/leveldb/third_party/googletest/googlemock/test/gmock-function-mocker_nc.cc +16 -0
  342. package/cpp/leveldb/third_party/googletest/googlemock/test/gmock-function-mocker_nc_test.py +43 -0
  343. package/cpp/leveldb/third_party/googletest/googlemock/test/gmock-function-mocker_test.cc +696 -0
  344. package/cpp/leveldb/third_party/googletest/googlemock/test/gmock-generated-actions_test.cc +1064 -0
  345. package/cpp/leveldb/third_party/googletest/googlemock/test/gmock-generated-function-mockers_test.cc +659 -0
  346. package/cpp/leveldb/third_party/googletest/googlemock/test/gmock-generated-matchers_test.cc +1323 -0
  347. package/cpp/leveldb/third_party/googletest/googlemock/test/gmock-internal-utils_test.cc +732 -0
  348. package/cpp/leveldb/third_party/googletest/googlemock/test/gmock-matchers_test.cc +6913 -0
  349. package/cpp/leveldb/third_party/googletest/googlemock/test/gmock-more-actions_test.cc +698 -0
  350. package/cpp/leveldb/third_party/googletest/googlemock/test/gmock-nice-strict_test.cc +500 -0
  351. package/cpp/leveldb/third_party/googletest/googlemock/test/gmock-port_test.cc +42 -0
  352. package/cpp/leveldb/third_party/googletest/googlemock/test/gmock-pp-string_test.cc +206 -0
  353. package/cpp/leveldb/third_party/googletest/googlemock/test/gmock-pp_test.cc +83 -0
  354. package/cpp/leveldb/third_party/googletest/googlemock/test/gmock-spec-builders_test.cc +2775 -0
  355. package/cpp/leveldb/third_party/googletest/googlemock/test/gmock_all_test.cc +49 -0
  356. package/cpp/leveldb/third_party/googletest/googlemock/test/gmock_ex_test.cc +80 -0
  357. package/cpp/leveldb/third_party/googletest/googlemock/test/gmock_leak_test.py +104 -0
  358. package/cpp/leveldb/third_party/googletest/googlemock/test/gmock_leak_test_.cc +99 -0
  359. package/cpp/leveldb/third_party/googletest/googlemock/test/gmock_link2_test.cc +39 -0
  360. package/cpp/leveldb/third_party/googletest/googlemock/test/gmock_link_test.cc +39 -0
  361. package/cpp/leveldb/third_party/googletest/googlemock/test/gmock_link_test.h +690 -0
  362. package/cpp/leveldb/third_party/googletest/googlemock/test/gmock_output_test.py +183 -0
  363. package/cpp/leveldb/third_party/googletest/googlemock/test/gmock_output_test_.cc +309 -0
  364. package/cpp/leveldb/third_party/googletest/googlemock/test/gmock_output_test_golden.txt +317 -0
  365. package/cpp/leveldb/third_party/googletest/googlemock/test/gmock_stress_test.cc +240 -0
  366. package/cpp/leveldb/third_party/googletest/googlemock/test/gmock_test.cc +181 -0
  367. package/cpp/leveldb/third_party/googletest/googlemock/test/gmock_test_utils.py +108 -0
  368. package/cpp/leveldb/third_party/googletest/googlemock/test/pump_test.py +182 -0
  369. package/cpp/leveldb/third_party/googletest/googletest/CMakeLists.txt +329 -0
  370. package/cpp/leveldb/third_party/googletest/googletest/CONTRIBUTORS +38 -0
  371. package/cpp/leveldb/third_party/googletest/googletest/LICENSE +28 -0
  372. package/cpp/leveldb/third_party/googletest/googletest/README.md +244 -0
  373. package/cpp/leveldb/third_party/googletest/googletest/cmake/Config.cmake.in +9 -0
  374. package/cpp/leveldb/third_party/googletest/googletest/cmake/gtest.pc.in +9 -0
  375. package/cpp/leveldb/third_party/googletest/googletest/cmake/gtest_main.pc.in +10 -0
  376. package/cpp/leveldb/third_party/googletest/googletest/cmake/internal_utils.cmake +358 -0
  377. package/cpp/leveldb/third_party/googletest/googletest/cmake/libgtest.la.in +21 -0
  378. package/cpp/leveldb/third_party/googletest/googletest/docs/advanced.md +2567 -0
  379. package/cpp/leveldb/third_party/googletest/googletest/docs/faq.md +753 -0
  380. package/cpp/leveldb/third_party/googletest/googletest/docs/pkgconfig.md +219 -0
  381. package/cpp/leveldb/third_party/googletest/googletest/docs/primer.md +579 -0
  382. package/cpp/leveldb/third_party/googletest/googletest/docs/samples.md +22 -0
  383. package/cpp/leveldb/third_party/googletest/googletest/include/gtest/gtest-death-test.h +343 -0
  384. package/cpp/leveldb/third_party/googletest/googletest/include/gtest/gtest-matchers.h +750 -0
  385. package/cpp/leveldb/third_party/googletest/googletest/include/gtest/gtest-message.h +219 -0
  386. package/cpp/leveldb/third_party/googletest/googletest/include/gtest/gtest-param-test.h +514 -0
  387. package/cpp/leveldb/third_party/googletest/googletest/include/gtest/gtest-printers.h +928 -0
  388. package/cpp/leveldb/third_party/googletest/googletest/include/gtest/gtest-spi.h +238 -0
  389. package/cpp/leveldb/third_party/googletest/googletest/include/gtest/gtest-test-part.h +184 -0
  390. package/cpp/leveldb/third_party/googletest/googletest/include/gtest/gtest-typed-test.h +337 -0
  391. package/cpp/leveldb/third_party/googletest/googletest/include/gtest/gtest.h +2477 -0
  392. package/cpp/leveldb/third_party/googletest/googletest/include/gtest/gtest_pred_impl.h +359 -0
  393. package/cpp/leveldb/third_party/googletest/googletest/include/gtest/gtest_prod.h +61 -0
  394. package/cpp/leveldb/third_party/googletest/googletest/include/gtest/internal/custom/README.md +56 -0
  395. package/cpp/leveldb/third_party/googletest/googletest/include/gtest/internal/custom/gtest-port.h +37 -0
  396. package/cpp/leveldb/third_party/googletest/googletest/include/gtest/internal/custom/gtest-printers.h +42 -0
  397. package/cpp/leveldb/third_party/googletest/googletest/include/gtest/internal/custom/gtest.h +37 -0
  398. package/cpp/leveldb/third_party/googletest/googletest/include/gtest/internal/gtest-death-test-internal.h +304 -0
  399. package/cpp/leveldb/third_party/googletest/googletest/include/gtest/internal/gtest-filepath.h +211 -0
  400. package/cpp/leveldb/third_party/googletest/googletest/include/gtest/internal/gtest-internal.h +1411 -0
  401. package/cpp/leveldb/third_party/googletest/googletest/include/gtest/internal/gtest-param-util.h +880 -0
  402. package/cpp/leveldb/third_party/googletest/googletest/include/gtest/internal/gtest-port-arch.h +111 -0
  403. package/cpp/leveldb/third_party/googletest/googletest/include/gtest/internal/gtest-port.h +2227 -0
  404. package/cpp/leveldb/third_party/googletest/googletest/include/gtest/internal/gtest-string.h +171 -0
  405. package/cpp/leveldb/third_party/googletest/googletest/include/gtest/internal/gtest-type-util.h +183 -0
  406. package/cpp/leveldb/third_party/googletest/googletest/samples/prime_tables.h +126 -0
  407. package/cpp/leveldb/third_party/googletest/googletest/samples/sample1.cc +66 -0
  408. package/cpp/leveldb/third_party/googletest/googletest/samples/sample1.h +41 -0
  409. package/cpp/leveldb/third_party/googletest/googletest/samples/sample10_unittest.cc +139 -0
  410. package/cpp/leveldb/third_party/googletest/googletest/samples/sample1_unittest.cc +151 -0
  411. package/cpp/leveldb/third_party/googletest/googletest/samples/sample2.cc +54 -0
  412. package/cpp/leveldb/third_party/googletest/googletest/samples/sample2.h +81 -0
  413. package/cpp/leveldb/third_party/googletest/googletest/samples/sample2_unittest.cc +107 -0
  414. package/cpp/leveldb/third_party/googletest/googletest/samples/sample3-inl.h +172 -0
  415. package/cpp/leveldb/third_party/googletest/googletest/samples/sample3_unittest.cc +149 -0
  416. package/cpp/leveldb/third_party/googletest/googletest/samples/sample4.cc +54 -0
  417. package/cpp/leveldb/third_party/googletest/googletest/samples/sample4.h +53 -0
  418. package/cpp/leveldb/third_party/googletest/googletest/samples/sample4_unittest.cc +53 -0
  419. package/cpp/leveldb/third_party/googletest/googletest/samples/sample5_unittest.cc +196 -0
  420. package/cpp/leveldb/third_party/googletest/googletest/samples/sample6_unittest.cc +224 -0
  421. package/cpp/leveldb/third_party/googletest/googletest/samples/sample7_unittest.cc +117 -0
  422. package/cpp/leveldb/third_party/googletest/googletest/samples/sample8_unittest.cc +154 -0
  423. package/cpp/leveldb/third_party/googletest/googletest/samples/sample9_unittest.cc +156 -0
  424. package/cpp/leveldb/third_party/googletest/googletest/scripts/README.md +5 -0
  425. package/cpp/leveldb/third_party/googletest/googletest/scripts/common.py +83 -0
  426. package/cpp/leveldb/third_party/googletest/googletest/scripts/fuse_gtest_files.py +253 -0
  427. package/cpp/leveldb/third_party/googletest/googletest/scripts/gen_gtest_pred_impl.py +734 -0
  428. package/cpp/leveldb/third_party/googletest/googletest/scripts/gtest-config.in +274 -0
  429. package/cpp/leveldb/third_party/googletest/googletest/scripts/release_docs.py +158 -0
  430. package/cpp/leveldb/third_party/googletest/googletest/scripts/run_with_path.py +32 -0
  431. package/cpp/leveldb/third_party/googletest/googletest/scripts/upload.py +1402 -0
  432. package/cpp/leveldb/third_party/googletest/googletest/scripts/upload_gtest.py +78 -0
  433. package/cpp/leveldb/third_party/googletest/googletest/src/gtest-all.cc +48 -0
  434. package/cpp/leveldb/third_party/googletest/googletest/src/gtest-death-test.cc +1653 -0
  435. package/cpp/leveldb/third_party/googletest/googletest/src/gtest-filepath.cc +382 -0
  436. package/cpp/leveldb/third_party/googletest/googletest/src/gtest-internal-inl.h +1211 -0
  437. package/cpp/leveldb/third_party/googletest/googletest/src/gtest-matchers.cc +97 -0
  438. package/cpp/leveldb/third_party/googletest/googletest/src/gtest-port.cc +1399 -0
  439. package/cpp/leveldb/third_party/googletest/googletest/src/gtest-printers.cc +442 -0
  440. package/cpp/leveldb/third_party/googletest/googletest/src/gtest-test-part.cc +108 -0
  441. package/cpp/leveldb/third_party/googletest/googletest/src/gtest-typed-test.cc +118 -0
  442. package/cpp/leveldb/third_party/googletest/googletest/src/gtest.cc +6180 -0
  443. package/cpp/leveldb/third_party/googletest/googletest/src/gtest_main.cc +54 -0
  444. package/cpp/leveldb/third_party/googletest/googletest/test/BUILD.bazel +529 -0
  445. package/cpp/leveldb/third_party/googletest/googletest/test/googletest-break-on-failure-unittest.py +208 -0
  446. package/cpp/leveldb/third_party/googletest/googletest/test/googletest-break-on-failure-unittest_.cc +86 -0
  447. package/cpp/leveldb/third_party/googletest/googletest/test/googletest-catch-exceptions-test.py +236 -0
  448. package/cpp/leveldb/third_party/googletest/googletest/test/googletest-catch-exceptions-test_.cc +293 -0
  449. package/cpp/leveldb/third_party/googletest/googletest/test/googletest-color-test.py +127 -0
  450. package/cpp/leveldb/third_party/googletest/googletest/test/googletest-color-test_.cc +62 -0
  451. package/cpp/leveldb/third_party/googletest/googletest/test/googletest-death-test-test.cc +1516 -0
  452. package/cpp/leveldb/third_party/googletest/googletest/test/googletest-death-test_ex_test.cc +92 -0
  453. package/cpp/leveldb/third_party/googletest/googletest/test/googletest-env-var-test.py +117 -0
  454. package/cpp/leveldb/third_party/googletest/googletest/test/googletest-env-var-test_.cc +122 -0
  455. package/cpp/leveldb/third_party/googletest/googletest/test/googletest-filepath-test.cc +649 -0
  456. package/cpp/leveldb/third_party/googletest/googletest/test/googletest-filter-unittest.py +639 -0
  457. package/cpp/leveldb/third_party/googletest/googletest/test/googletest-filter-unittest_.cc +137 -0
  458. package/cpp/leveldb/third_party/googletest/googletest/test/googletest-json-outfiles-test.py +191 -0
  459. package/cpp/leveldb/third_party/googletest/googletest/test/googletest-json-output-unittest.py +778 -0
  460. package/cpp/leveldb/third_party/googletest/googletest/test/googletest-list-tests-unittest.py +205 -0
  461. package/cpp/leveldb/third_party/googletest/googletest/test/googletest-list-tests-unittest_.cc +156 -0
  462. package/cpp/leveldb/third_party/googletest/googletest/test/googletest-listener-test.cc +518 -0
  463. package/cpp/leveldb/third_party/googletest/googletest/test/googletest-message-test.cc +158 -0
  464. package/cpp/leveldb/third_party/googletest/googletest/test/googletest-options-test.cc +216 -0
  465. package/cpp/leveldb/third_party/googletest/googletest/test/googletest-output-test-golden-lin.txt +1137 -0
  466. package/cpp/leveldb/third_party/googletest/googletest/test/googletest-output-test.py +346 -0
  467. package/cpp/leveldb/third_party/googletest/googletest/test/googletest-output-test_.cc +1149 -0
  468. package/cpp/leveldb/third_party/googletest/googletest/test/googletest-param-test-invalid-name1-test.py +63 -0
  469. package/cpp/leveldb/third_party/googletest/googletest/test/googletest-param-test-invalid-name1-test_.cc +50 -0
  470. package/cpp/leveldb/third_party/googletest/googletest/test/googletest-param-test-invalid-name2-test.py +62 -0
  471. package/cpp/leveldb/third_party/googletest/googletest/test/googletest-param-test-invalid-name2-test_.cc +55 -0
  472. package/cpp/leveldb/third_party/googletest/googletest/test/googletest-param-test-test.cc +1086 -0
  473. package/cpp/leveldb/third_party/googletest/googletest/test/googletest-param-test-test.h +51 -0
  474. package/cpp/leveldb/third_party/googletest/googletest/test/googletest-param-test2-test.cc +61 -0
  475. package/cpp/leveldb/third_party/googletest/googletest/test/googletest-port-test.cc +1272 -0
  476. package/cpp/leveldb/third_party/googletest/googletest/test/googletest-printers-test.cc +1619 -0
  477. package/cpp/leveldb/third_party/googletest/googletest/test/googletest-shuffle-test.py +323 -0
  478. package/cpp/leveldb/third_party/googletest/googletest/test/googletest-shuffle-test_.cc +101 -0
  479. package/cpp/leveldb/third_party/googletest/googletest/test/googletest-test-part-test.cc +230 -0
  480. package/cpp/leveldb/third_party/googletest/googletest/test/googletest-test2_test.cc +61 -0
  481. package/cpp/leveldb/third_party/googletest/googletest/test/googletest-throw-on-failure-test.py +168 -0
  482. package/cpp/leveldb/third_party/googletest/googletest/test/googletest-throw-on-failure-test_.cc +71 -0
  483. package/cpp/leveldb/third_party/googletest/googletest/test/googletest-uninitialized-test.py +67 -0
  484. package/cpp/leveldb/third_party/googletest/googletest/test/googletest-uninitialized-test_.cc +42 -0
  485. package/cpp/leveldb/third_party/googletest/googletest/test/gtest-typed-test2_test.cc +44 -0
  486. package/cpp/leveldb/third_party/googletest/googletest/test/gtest-typed-test_test.cc +462 -0
  487. package/cpp/leveldb/third_party/googletest/googletest/test/gtest-typed-test_test.h +65 -0
  488. package/cpp/leveldb/third_party/googletest/googletest/test/gtest-unittest-api_test.cc +341 -0
  489. package/cpp/leveldb/third_party/googletest/googletest/test/gtest_all_test.cc +46 -0
  490. package/cpp/leveldb/third_party/googletest/googletest/test/gtest_assert_by_exception_test.cc +116 -0
  491. package/cpp/leveldb/third_party/googletest/googletest/test/gtest_environment_test.cc +188 -0
  492. package/cpp/leveldb/third_party/googletest/googletest/test/gtest_help_test.py +170 -0
  493. package/cpp/leveldb/third_party/googletest/googletest/test/gtest_help_test_.cc +45 -0
  494. package/cpp/leveldb/third_party/googletest/googletest/test/gtest_json_test_utils.py +60 -0
  495. package/cpp/leveldb/third_party/googletest/googletest/test/gtest_list_output_unittest.py +141 -0
  496. package/cpp/leveldb/third_party/googletest/googletest/test/gtest_list_output_unittest_.cc +51 -0
  497. package/cpp/leveldb/third_party/googletest/googletest/test/gtest_main_unittest.cc +44 -0
  498. package/cpp/leveldb/third_party/googletest/googletest/test/gtest_no_test_unittest.cc +54 -0
  499. package/cpp/leveldb/third_party/googletest/googletest/test/gtest_pred_impl_unittest.cc +2427 -0
  500. package/cpp/leveldb/third_party/googletest/googletest/test/gtest_premature_exit_test.cc +126 -0
  501. package/cpp/leveldb/third_party/googletest/googletest/test/gtest_prod_test.cc +56 -0
  502. package/cpp/leveldb/third_party/googletest/googletest/test/gtest_repeat_test.cc +233 -0
  503. package/cpp/leveldb/third_party/googletest/googletest/test/gtest_skip_check_output_test.py +59 -0
  504. package/cpp/leveldb/third_party/googletest/googletest/test/gtest_skip_environment_check_output_test.py +54 -0
  505. package/cpp/leveldb/third_party/googletest/googletest/test/gtest_skip_in_environment_setup_test.cc +49 -0
  506. package/cpp/leveldb/third_party/googletest/googletest/test/gtest_skip_test.cc +55 -0
  507. package/cpp/leveldb/third_party/googletest/googletest/test/gtest_sole_header_test.cc +56 -0
  508. package/cpp/leveldb/third_party/googletest/googletest/test/gtest_stress_test.cc +248 -0
  509. package/cpp/leveldb/third_party/googletest/googletest/test/gtest_test_macro_stack_footprint_test.cc +89 -0
  510. package/cpp/leveldb/third_party/googletest/googletest/test/gtest_test_utils.py +314 -0
  511. package/cpp/leveldb/third_party/googletest/googletest/test/gtest_testbridge_test.py +63 -0
  512. package/cpp/leveldb/third_party/googletest/googletest/test/gtest_testbridge_test_.cc +43 -0
  513. package/cpp/leveldb/third_party/googletest/googletest/test/gtest_throw_on_failure_ex_test.cc +90 -0
  514. package/cpp/leveldb/third_party/googletest/googletest/test/gtest_unittest.cc +7496 -0
  515. package/cpp/leveldb/third_party/googletest/googletest/test/gtest_xml_outfile1_test_.cc +43 -0
  516. package/cpp/leveldb/third_party/googletest/googletest/test/gtest_xml_outfile2_test_.cc +43 -0
  517. package/cpp/leveldb/third_party/googletest/googletest/test/gtest_xml_outfiles_test.py +135 -0
  518. package/cpp/leveldb/third_party/googletest/googletest/test/gtest_xml_output_unittest.py +389 -0
  519. package/cpp/leveldb/third_party/googletest/googletest/test/gtest_xml_output_unittest_.cc +188 -0
  520. package/cpp/leveldb/third_party/googletest/googletest/test/gtest_xml_test_utils.py +196 -0
  521. package/cpp/leveldb/third_party/googletest/googletest/test/production.cc +35 -0
  522. package/cpp/leveldb/third_party/googletest/googletest/test/production.h +54 -0
  523. package/cpp/leveldb/third_party/googletest/library.json +66 -0
  524. package/cpp/leveldb/third_party/googletest/platformio.ini +47 -0
  525. package/cpp/leveldb/util/arena.cc +66 -0
  526. package/cpp/leveldb/util/arena.h +71 -0
  527. package/cpp/leveldb/util/arena_test.cc +66 -0
  528. package/cpp/leveldb/util/bloom.cc +92 -0
  529. package/cpp/leveldb/util/bloom_test.cc +159 -0
  530. package/cpp/leveldb/util/cache.cc +401 -0
  531. package/cpp/leveldb/util/cache_test.cc +229 -0
  532. package/cpp/leveldb/util/coding.cc +166 -0
  533. package/cpp/leveldb/util/coding.h +122 -0
  534. package/cpp/leveldb/util/coding_test.cc +198 -0
  535. package/cpp/leveldb/util/comparator.cc +75 -0
  536. package/cpp/leveldb/util/crc32c.cc +380 -0
  537. package/cpp/leveldb/util/crc32c.h +43 -0
  538. package/cpp/leveldb/util/crc32c_test.cc +61 -0
  539. package/cpp/leveldb/util/env.cc +108 -0
  540. package/cpp/leveldb/util/env_posix.cc +893 -0
  541. package/cpp/leveldb/util/env_posix_test.cc +353 -0
  542. package/cpp/leveldb/util/env_posix_test_helper.h +28 -0
  543. package/cpp/leveldb/util/env_test.cc +240 -0
  544. package/cpp/leveldb/util/env_windows.cc +796 -0
  545. package/cpp/leveldb/util/env_windows_test.cc +65 -0
  546. package/cpp/leveldb/util/env_windows_test_helper.h +25 -0
  547. package/cpp/leveldb/util/filter_policy.cc +11 -0
  548. package/cpp/leveldb/util/hash.cc +55 -0
  549. package/cpp/leveldb/util/hash.h +19 -0
  550. package/cpp/leveldb/util/hash_test.cc +46 -0
  551. package/cpp/leveldb/util/histogram.cc +272 -0
  552. package/cpp/leveldb/util/histogram.h +44 -0
  553. package/cpp/leveldb/util/logging.cc +82 -0
  554. package/cpp/leveldb/util/logging.h +44 -0
  555. package/cpp/leveldb/util/logging_test.cc +145 -0
  556. package/cpp/leveldb/util/mutexlock.h +39 -0
  557. package/cpp/leveldb/util/no_destructor.h +46 -0
  558. package/cpp/leveldb/util/no_destructor_test.cc +49 -0
  559. package/cpp/leveldb/util/options.cc +14 -0
  560. package/cpp/leveldb/util/posix_logger.h +130 -0
  561. package/cpp/leveldb/util/random.h +63 -0
  562. package/cpp/leveldb/util/status.cc +77 -0
  563. package/cpp/leveldb/util/status_test.cc +44 -0
  564. package/cpp/leveldb/util/testutil.cc +51 -0
  565. package/cpp/leveldb/util/testutil.h +82 -0
  566. package/cpp/leveldb/util/windows_logger.h +124 -0
  567. package/cpp/react-native-leveldb.cpp +694 -0
  568. package/cpp/react-native-leveldb.h +4 -0
  569. package/ios/Leveldb.h +9 -0
  570. package/ios/Leveldb.mm +35 -0
  571. package/ios/Leveldb.xcodeproj/project.pbxproj +288 -0
  572. package/lib/commonjs/fake.js +181 -0
  573. package/lib/commonjs/fake.js.map +1 -0
  574. package/lib/commonjs/fake.test.js +30 -0
  575. package/lib/commonjs/fake.test.js.map +1 -0
  576. package/lib/commonjs/index.js +172 -0
  577. package/lib/commonjs/index.js.map +1 -0
  578. package/lib/commonjs/package.json +1 -0
  579. package/lib/module/fake.js +171 -0
  580. package/lib/module/fake.js.map +1 -0
  581. package/lib/module/fake.test.js +30 -0
  582. package/lib/module/fake.test.js.map +1 -0
  583. package/lib/module/index.js +165 -0
  584. package/lib/module/index.js.map +1 -0
  585. package/lib/typescript/fake.d.ts +34 -0
  586. package/lib/typescript/fake.d.ts.map +1 -0
  587. package/lib/typescript/fake.test.d.ts +2 -0
  588. package/lib/typescript/fake.test.d.ts.map +1 -0
  589. package/lib/typescript/index.d.ts +72 -0
  590. package/lib/typescript/index.d.ts.map +1 -0
  591. package/package.json +157 -0
  592. package/rn-leveldb.podspec +30 -0
  593. package/src/fake.test.ts +37 -0
  594. package/src/fake.ts +203 -0
  595. package/src/index.ts +291 -0
@@ -0,0 +1,750 @@
1
+ // Copyright 2007, 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
+ // The Google C++ Testing and Mocking Framework (Google Test)
31
+ //
32
+ // This file implements just enough of the matcher interface to allow
33
+ // EXPECT_DEATH and friends to accept a matcher argument.
34
+
35
+ // IWYU pragma: private, include "testing/base/public/gunit.h"
36
+ // IWYU pragma: friend third_party/googletest/googlemock/.*
37
+ // IWYU pragma: friend third_party/googletest/googletest/.*
38
+
39
+ #ifndef GTEST_INCLUDE_GTEST_GTEST_MATCHERS_H_
40
+ #define GTEST_INCLUDE_GTEST_GTEST_MATCHERS_H_
41
+
42
+ #include <memory>
43
+ #include <ostream>
44
+ #include <string>
45
+ #include <type_traits>
46
+
47
+ #include "gtest/gtest-printers.h"
48
+ #include "gtest/internal/gtest-internal.h"
49
+ #include "gtest/internal/gtest-port.h"
50
+
51
+ // MSVC warning C5046 is new as of VS2017 version 15.8.
52
+ #if defined(_MSC_VER) && _MSC_VER >= 1915
53
+ #define GTEST_MAYBE_5046_ 5046
54
+ #else
55
+ #define GTEST_MAYBE_5046_
56
+ #endif
57
+
58
+ GTEST_DISABLE_MSC_WARNINGS_PUSH_(
59
+ 4251 GTEST_MAYBE_5046_ /* class A needs to have dll-interface to be used by
60
+ clients of class B */
61
+ /* Symbol involving type with internal linkage not defined */)
62
+
63
+ namespace testing {
64
+
65
+ // To implement a matcher Foo for type T, define:
66
+ // 1. a class FooMatcherImpl that implements the
67
+ // MatcherInterface<T> interface, and
68
+ // 2. a factory function that creates a Matcher<T> object from a
69
+ // FooMatcherImpl*.
70
+ //
71
+ // The two-level delegation design makes it possible to allow a user
72
+ // to write "v" instead of "Eq(v)" where a Matcher is expected, which
73
+ // is impossible if we pass matchers by pointers. It also eases
74
+ // ownership management as Matcher objects can now be copied like
75
+ // plain values.
76
+
77
+ // MatchResultListener is an abstract class. Its << operator can be
78
+ // used by a matcher to explain why a value matches or doesn't match.
79
+ //
80
+ class MatchResultListener {
81
+ public:
82
+ // Creates a listener object with the given underlying ostream. The
83
+ // listener does not own the ostream, and does not dereference it
84
+ // in the constructor or destructor.
85
+ explicit MatchResultListener(::std::ostream* os) : stream_(os) {}
86
+ virtual ~MatchResultListener() = 0; // Makes this class abstract.
87
+
88
+ // Streams x to the underlying ostream; does nothing if the ostream
89
+ // is NULL.
90
+ template <typename T>
91
+ MatchResultListener& operator<<(const T& x) {
92
+ if (stream_ != nullptr) *stream_ << x;
93
+ return *this;
94
+ }
95
+
96
+ // Returns the underlying ostream.
97
+ ::std::ostream* stream() { return stream_; }
98
+
99
+ // Returns true if and only if the listener is interested in an explanation
100
+ // of the match result. A matcher's MatchAndExplain() method can use
101
+ // this information to avoid generating the explanation when no one
102
+ // intends to hear it.
103
+ bool IsInterested() const { return stream_ != nullptr; }
104
+
105
+ private:
106
+ ::std::ostream* const stream_;
107
+
108
+ GTEST_DISALLOW_COPY_AND_ASSIGN_(MatchResultListener);
109
+ };
110
+
111
+ inline MatchResultListener::~MatchResultListener() {
112
+ }
113
+
114
+ // An instance of a subclass of this knows how to describe itself as a
115
+ // matcher.
116
+ class MatcherDescriberInterface {
117
+ public:
118
+ virtual ~MatcherDescriberInterface() {}
119
+
120
+ // Describes this matcher to an ostream. The function should print
121
+ // a verb phrase that describes the property a value matching this
122
+ // matcher should have. The subject of the verb phrase is the value
123
+ // being matched. For example, the DescribeTo() method of the Gt(7)
124
+ // matcher prints "is greater than 7".
125
+ virtual void DescribeTo(::std::ostream* os) const = 0;
126
+
127
+ // Describes the negation of this matcher to an ostream. For
128
+ // example, if the description of this matcher is "is greater than
129
+ // 7", the negated description could be "is not greater than 7".
130
+ // You are not required to override this when implementing
131
+ // MatcherInterface, but it is highly advised so that your matcher
132
+ // can produce good error messages.
133
+ virtual void DescribeNegationTo(::std::ostream* os) const {
134
+ *os << "not (";
135
+ DescribeTo(os);
136
+ *os << ")";
137
+ }
138
+ };
139
+
140
+ // The implementation of a matcher.
141
+ template <typename T>
142
+ class MatcherInterface : public MatcherDescriberInterface {
143
+ public:
144
+ // Returns true if and only if the matcher matches x; also explains the
145
+ // match result to 'listener' if necessary (see the next paragraph), in
146
+ // the form of a non-restrictive relative clause ("which ...",
147
+ // "whose ...", etc) that describes x. For example, the
148
+ // MatchAndExplain() method of the Pointee(...) matcher should
149
+ // generate an explanation like "which points to ...".
150
+ //
151
+ // Implementations of MatchAndExplain() should add an explanation of
152
+ // the match result *if and only if* they can provide additional
153
+ // information that's not already present (or not obvious) in the
154
+ // print-out of x and the matcher's description. Whether the match
155
+ // succeeds is not a factor in deciding whether an explanation is
156
+ // needed, as sometimes the caller needs to print a failure message
157
+ // when the match succeeds (e.g. when the matcher is used inside
158
+ // Not()).
159
+ //
160
+ // For example, a "has at least 10 elements" matcher should explain
161
+ // what the actual element count is, regardless of the match result,
162
+ // as it is useful information to the reader; on the other hand, an
163
+ // "is empty" matcher probably only needs to explain what the actual
164
+ // size is when the match fails, as it's redundant to say that the
165
+ // size is 0 when the value is already known to be empty.
166
+ //
167
+ // You should override this method when defining a new matcher.
168
+ //
169
+ // It's the responsibility of the caller (Google Test) to guarantee
170
+ // that 'listener' is not NULL. This helps to simplify a matcher's
171
+ // implementation when it doesn't care about the performance, as it
172
+ // can talk to 'listener' without checking its validity first.
173
+ // However, in order to implement dummy listeners efficiently,
174
+ // listener->stream() may be NULL.
175
+ virtual bool MatchAndExplain(T x, MatchResultListener* listener) const = 0;
176
+
177
+ // Inherits these methods from MatcherDescriberInterface:
178
+ // virtual void DescribeTo(::std::ostream* os) const = 0;
179
+ // virtual void DescribeNegationTo(::std::ostream* os) const;
180
+ };
181
+
182
+ namespace internal {
183
+
184
+ // Converts a MatcherInterface<T> to a MatcherInterface<const T&>.
185
+ template <typename T>
186
+ class MatcherInterfaceAdapter : public MatcherInterface<const T&> {
187
+ public:
188
+ explicit MatcherInterfaceAdapter(const MatcherInterface<T>* impl)
189
+ : impl_(impl) {}
190
+ ~MatcherInterfaceAdapter() override { delete impl_; }
191
+
192
+ void DescribeTo(::std::ostream* os) const override { impl_->DescribeTo(os); }
193
+
194
+ void DescribeNegationTo(::std::ostream* os) const override {
195
+ impl_->DescribeNegationTo(os);
196
+ }
197
+
198
+ bool MatchAndExplain(const T& x,
199
+ MatchResultListener* listener) const override {
200
+ return impl_->MatchAndExplain(x, listener);
201
+ }
202
+
203
+ private:
204
+ const MatcherInterface<T>* const impl_;
205
+
206
+ GTEST_DISALLOW_COPY_AND_ASSIGN_(MatcherInterfaceAdapter);
207
+ };
208
+
209
+ struct AnyEq {
210
+ template <typename A, typename B>
211
+ bool operator()(const A& a, const B& b) const { return a == b; }
212
+ };
213
+ struct AnyNe {
214
+ template <typename A, typename B>
215
+ bool operator()(const A& a, const B& b) const { return a != b; }
216
+ };
217
+ struct AnyLt {
218
+ template <typename A, typename B>
219
+ bool operator()(const A& a, const B& b) const { return a < b; }
220
+ };
221
+ struct AnyGt {
222
+ template <typename A, typename B>
223
+ bool operator()(const A& a, const B& b) const { return a > b; }
224
+ };
225
+ struct AnyLe {
226
+ template <typename A, typename B>
227
+ bool operator()(const A& a, const B& b) const { return a <= b; }
228
+ };
229
+ struct AnyGe {
230
+ template <typename A, typename B>
231
+ bool operator()(const A& a, const B& b) const { return a >= b; }
232
+ };
233
+
234
+ // A match result listener that ignores the explanation.
235
+ class DummyMatchResultListener : public MatchResultListener {
236
+ public:
237
+ DummyMatchResultListener() : MatchResultListener(nullptr) {}
238
+
239
+ private:
240
+ GTEST_DISALLOW_COPY_AND_ASSIGN_(DummyMatchResultListener);
241
+ };
242
+
243
+ // A match result listener that forwards the explanation to a given
244
+ // ostream. The difference between this and MatchResultListener is
245
+ // that the former is concrete.
246
+ class StreamMatchResultListener : public MatchResultListener {
247
+ public:
248
+ explicit StreamMatchResultListener(::std::ostream* os)
249
+ : MatchResultListener(os) {}
250
+
251
+ private:
252
+ GTEST_DISALLOW_COPY_AND_ASSIGN_(StreamMatchResultListener);
253
+ };
254
+
255
+ // An internal class for implementing Matcher<T>, which will derive
256
+ // from it. We put functionalities common to all Matcher<T>
257
+ // specializations here to avoid code duplication.
258
+ template <typename T>
259
+ class MatcherBase {
260
+ public:
261
+ // Returns true if and only if the matcher matches x; also explains the
262
+ // match result to 'listener'.
263
+ bool MatchAndExplain(const T& x, MatchResultListener* listener) const {
264
+ return impl_->MatchAndExplain(x, listener);
265
+ }
266
+
267
+ // Returns true if and only if this matcher matches x.
268
+ bool Matches(const T& x) const {
269
+ DummyMatchResultListener dummy;
270
+ return MatchAndExplain(x, &dummy);
271
+ }
272
+
273
+ // Describes this matcher to an ostream.
274
+ void DescribeTo(::std::ostream* os) const { impl_->DescribeTo(os); }
275
+
276
+ // Describes the negation of this matcher to an ostream.
277
+ void DescribeNegationTo(::std::ostream* os) const {
278
+ impl_->DescribeNegationTo(os);
279
+ }
280
+
281
+ // Explains why x matches, or doesn't match, the matcher.
282
+ void ExplainMatchResultTo(const T& x, ::std::ostream* os) const {
283
+ StreamMatchResultListener listener(os);
284
+ MatchAndExplain(x, &listener);
285
+ }
286
+
287
+ // Returns the describer for this matcher object; retains ownership
288
+ // of the describer, which is only guaranteed to be alive when
289
+ // this matcher object is alive.
290
+ const MatcherDescriberInterface* GetDescriber() const {
291
+ return impl_.get();
292
+ }
293
+
294
+ protected:
295
+ MatcherBase() {}
296
+
297
+ // Constructs a matcher from its implementation.
298
+ explicit MatcherBase(const MatcherInterface<const T&>* impl) : impl_(impl) {}
299
+
300
+ template <typename U>
301
+ explicit MatcherBase(
302
+ const MatcherInterface<U>* impl,
303
+ typename std::enable_if<!std::is_same<U, const U&>::value>::type* =
304
+ nullptr)
305
+ : impl_(new internal::MatcherInterfaceAdapter<U>(impl)) {}
306
+
307
+ MatcherBase(const MatcherBase&) = default;
308
+ MatcherBase& operator=(const MatcherBase&) = default;
309
+ MatcherBase(MatcherBase&&) = default;
310
+ MatcherBase& operator=(MatcherBase&&) = default;
311
+
312
+ virtual ~MatcherBase() {}
313
+
314
+ private:
315
+ std::shared_ptr<const MatcherInterface<const T&>> impl_;
316
+ };
317
+
318
+ } // namespace internal
319
+
320
+ // A Matcher<T> is a copyable and IMMUTABLE (except by assignment)
321
+ // object that can check whether a value of type T matches. The
322
+ // implementation of Matcher<T> is just a std::shared_ptr to const
323
+ // MatcherInterface<T>. Don't inherit from Matcher!
324
+ template <typename T>
325
+ class Matcher : public internal::MatcherBase<T> {
326
+ public:
327
+ // Constructs a null matcher. Needed for storing Matcher objects in STL
328
+ // containers. A default-constructed matcher is not yet initialized. You
329
+ // cannot use it until a valid value has been assigned to it.
330
+ explicit Matcher() {} // NOLINT
331
+
332
+ // Constructs a matcher from its implementation.
333
+ explicit Matcher(const MatcherInterface<const T&>* impl)
334
+ : internal::MatcherBase<T>(impl) {}
335
+
336
+ template <typename U>
337
+ explicit Matcher(
338
+ const MatcherInterface<U>* impl,
339
+ typename std::enable_if<!std::is_same<U, const U&>::value>::type* =
340
+ nullptr)
341
+ : internal::MatcherBase<T>(impl) {}
342
+
343
+ // Implicit constructor here allows people to write
344
+ // EXPECT_CALL(foo, Bar(5)) instead of EXPECT_CALL(foo, Bar(Eq(5))) sometimes
345
+ Matcher(T value); // NOLINT
346
+ };
347
+
348
+ // The following two specializations allow the user to write str
349
+ // instead of Eq(str) and "foo" instead of Eq("foo") when a std::string
350
+ // matcher is expected.
351
+ template <>
352
+ class GTEST_API_ Matcher<const std::string&>
353
+ : public internal::MatcherBase<const std::string&> {
354
+ public:
355
+ Matcher() {}
356
+
357
+ explicit Matcher(const MatcherInterface<const std::string&>* impl)
358
+ : internal::MatcherBase<const std::string&>(impl) {}
359
+
360
+ // Allows the user to write str instead of Eq(str) sometimes, where
361
+ // str is a std::string object.
362
+ Matcher(const std::string& s); // NOLINT
363
+
364
+ // Allows the user to write "foo" instead of Eq("foo") sometimes.
365
+ Matcher(const char* s); // NOLINT
366
+ };
367
+
368
+ template <>
369
+ class GTEST_API_ Matcher<std::string>
370
+ : public internal::MatcherBase<std::string> {
371
+ public:
372
+ Matcher() {}
373
+
374
+ explicit Matcher(const MatcherInterface<const std::string&>* impl)
375
+ : internal::MatcherBase<std::string>(impl) {}
376
+ explicit Matcher(const MatcherInterface<std::string>* impl)
377
+ : internal::MatcherBase<std::string>(impl) {}
378
+
379
+ // Allows the user to write str instead of Eq(str) sometimes, where
380
+ // str is a string object.
381
+ Matcher(const std::string& s); // NOLINT
382
+
383
+ // Allows the user to write "foo" instead of Eq("foo") sometimes.
384
+ Matcher(const char* s); // NOLINT
385
+ };
386
+
387
+ #if GTEST_HAS_ABSL
388
+ // The following two specializations allow the user to write str
389
+ // instead of Eq(str) and "foo" instead of Eq("foo") when a absl::string_view
390
+ // matcher is expected.
391
+ template <>
392
+ class GTEST_API_ Matcher<const absl::string_view&>
393
+ : public internal::MatcherBase<const absl::string_view&> {
394
+ public:
395
+ Matcher() {}
396
+
397
+ explicit Matcher(const MatcherInterface<const absl::string_view&>* impl)
398
+ : internal::MatcherBase<const absl::string_view&>(impl) {}
399
+
400
+ // Allows the user to write str instead of Eq(str) sometimes, where
401
+ // str is a std::string object.
402
+ Matcher(const std::string& s); // NOLINT
403
+
404
+ // Allows the user to write "foo" instead of Eq("foo") sometimes.
405
+ Matcher(const char* s); // NOLINT
406
+
407
+ // Allows the user to pass absl::string_views directly.
408
+ Matcher(absl::string_view s); // NOLINT
409
+ };
410
+
411
+ template <>
412
+ class GTEST_API_ Matcher<absl::string_view>
413
+ : public internal::MatcherBase<absl::string_view> {
414
+ public:
415
+ Matcher() {}
416
+
417
+ explicit Matcher(const MatcherInterface<const absl::string_view&>* impl)
418
+ : internal::MatcherBase<absl::string_view>(impl) {}
419
+ explicit Matcher(const MatcherInterface<absl::string_view>* impl)
420
+ : internal::MatcherBase<absl::string_view>(impl) {}
421
+
422
+ // Allows the user to write str instead of Eq(str) sometimes, where
423
+ // str is a std::string object.
424
+ Matcher(const std::string& s); // NOLINT
425
+
426
+ // Allows the user to write "foo" instead of Eq("foo") sometimes.
427
+ Matcher(const char* s); // NOLINT
428
+
429
+ // Allows the user to pass absl::string_views directly.
430
+ Matcher(absl::string_view s); // NOLINT
431
+ };
432
+ #endif // GTEST_HAS_ABSL
433
+
434
+ // Prints a matcher in a human-readable format.
435
+ template <typename T>
436
+ std::ostream& operator<<(std::ostream& os, const Matcher<T>& matcher) {
437
+ matcher.DescribeTo(&os);
438
+ return os;
439
+ }
440
+
441
+ // The PolymorphicMatcher class template makes it easy to implement a
442
+ // polymorphic matcher (i.e. a matcher that can match values of more
443
+ // than one type, e.g. Eq(n) and NotNull()).
444
+ //
445
+ // To define a polymorphic matcher, a user should provide an Impl
446
+ // class that has a DescribeTo() method and a DescribeNegationTo()
447
+ // method, and define a member function (or member function template)
448
+ //
449
+ // bool MatchAndExplain(const Value& value,
450
+ // MatchResultListener* listener) const;
451
+ //
452
+ // See the definition of NotNull() for a complete example.
453
+ template <class Impl>
454
+ class PolymorphicMatcher {
455
+ public:
456
+ explicit PolymorphicMatcher(const Impl& an_impl) : impl_(an_impl) {}
457
+
458
+ // Returns a mutable reference to the underlying matcher
459
+ // implementation object.
460
+ Impl& mutable_impl() { return impl_; }
461
+
462
+ // Returns an immutable reference to the underlying matcher
463
+ // implementation object.
464
+ const Impl& impl() const { return impl_; }
465
+
466
+ template <typename T>
467
+ operator Matcher<T>() const {
468
+ return Matcher<T>(new MonomorphicImpl<const T&>(impl_));
469
+ }
470
+
471
+ private:
472
+ template <typename T>
473
+ class MonomorphicImpl : public MatcherInterface<T> {
474
+ public:
475
+ explicit MonomorphicImpl(const Impl& impl) : impl_(impl) {}
476
+
477
+ void DescribeTo(::std::ostream* os) const override { impl_.DescribeTo(os); }
478
+
479
+ void DescribeNegationTo(::std::ostream* os) const override {
480
+ impl_.DescribeNegationTo(os);
481
+ }
482
+
483
+ bool MatchAndExplain(T x, MatchResultListener* listener) const override {
484
+ return impl_.MatchAndExplain(x, listener);
485
+ }
486
+
487
+ private:
488
+ const Impl impl_;
489
+ };
490
+
491
+ Impl impl_;
492
+ };
493
+
494
+ // Creates a matcher from its implementation.
495
+ // DEPRECATED: Especially in the generic code, prefer:
496
+ // Matcher<T>(new MyMatcherImpl<const T&>(...));
497
+ //
498
+ // MakeMatcher may create a Matcher that accepts its argument by value, which
499
+ // leads to unnecessary copies & lack of support for non-copyable types.
500
+ template <typename T>
501
+ inline Matcher<T> MakeMatcher(const MatcherInterface<T>* impl) {
502
+ return Matcher<T>(impl);
503
+ }
504
+
505
+ // Creates a polymorphic matcher from its implementation. This is
506
+ // easier to use than the PolymorphicMatcher<Impl> constructor as it
507
+ // doesn't require you to explicitly write the template argument, e.g.
508
+ //
509
+ // MakePolymorphicMatcher(foo);
510
+ // vs
511
+ // PolymorphicMatcher<TypeOfFoo>(foo);
512
+ template <class Impl>
513
+ inline PolymorphicMatcher<Impl> MakePolymorphicMatcher(const Impl& impl) {
514
+ return PolymorphicMatcher<Impl>(impl);
515
+ }
516
+
517
+ namespace internal {
518
+ // Implements a matcher that compares a given value with a
519
+ // pre-supplied value using one of the ==, <=, <, etc, operators. The
520
+ // two values being compared don't have to have the same type.
521
+ //
522
+ // The matcher defined here is polymorphic (for example, Eq(5) can be
523
+ // used to match an int, a short, a double, etc). Therefore we use
524
+ // a template type conversion operator in the implementation.
525
+ //
526
+ // The following template definition assumes that the Rhs parameter is
527
+ // a "bare" type (i.e. neither 'const T' nor 'T&').
528
+ template <typename D, typename Rhs, typename Op>
529
+ class ComparisonBase {
530
+ public:
531
+ explicit ComparisonBase(const Rhs& rhs) : rhs_(rhs) {}
532
+ template <typename Lhs>
533
+ operator Matcher<Lhs>() const {
534
+ return Matcher<Lhs>(new Impl<const Lhs&>(rhs_));
535
+ }
536
+
537
+ private:
538
+ template <typename T>
539
+ static const T& Unwrap(const T& v) { return v; }
540
+ template <typename T>
541
+ static const T& Unwrap(std::reference_wrapper<T> v) { return v; }
542
+
543
+ template <typename Lhs, typename = Rhs>
544
+ class Impl : public MatcherInterface<Lhs> {
545
+ public:
546
+ explicit Impl(const Rhs& rhs) : rhs_(rhs) {}
547
+ bool MatchAndExplain(Lhs lhs,
548
+ MatchResultListener* /* listener */) const override {
549
+ return Op()(lhs, Unwrap(rhs_));
550
+ }
551
+ void DescribeTo(::std::ostream* os) const override {
552
+ *os << D::Desc() << " ";
553
+ UniversalPrint(Unwrap(rhs_), os);
554
+ }
555
+ void DescribeNegationTo(::std::ostream* os) const override {
556
+ *os << D::NegatedDesc() << " ";
557
+ UniversalPrint(Unwrap(rhs_), os);
558
+ }
559
+
560
+ private:
561
+ Rhs rhs_;
562
+ };
563
+ Rhs rhs_;
564
+ };
565
+
566
+ template <typename Rhs>
567
+ class EqMatcher : public ComparisonBase<EqMatcher<Rhs>, Rhs, AnyEq> {
568
+ public:
569
+ explicit EqMatcher(const Rhs& rhs)
570
+ : ComparisonBase<EqMatcher<Rhs>, Rhs, AnyEq>(rhs) { }
571
+ static const char* Desc() { return "is equal to"; }
572
+ static const char* NegatedDesc() { return "isn't equal to"; }
573
+ };
574
+ template <typename Rhs>
575
+ class NeMatcher : public ComparisonBase<NeMatcher<Rhs>, Rhs, AnyNe> {
576
+ public:
577
+ explicit NeMatcher(const Rhs& rhs)
578
+ : ComparisonBase<NeMatcher<Rhs>, Rhs, AnyNe>(rhs) { }
579
+ static const char* Desc() { return "isn't equal to"; }
580
+ static const char* NegatedDesc() { return "is equal to"; }
581
+ };
582
+ template <typename Rhs>
583
+ class LtMatcher : public ComparisonBase<LtMatcher<Rhs>, Rhs, AnyLt> {
584
+ public:
585
+ explicit LtMatcher(const Rhs& rhs)
586
+ : ComparisonBase<LtMatcher<Rhs>, Rhs, AnyLt>(rhs) { }
587
+ static const char* Desc() { return "is <"; }
588
+ static const char* NegatedDesc() { return "isn't <"; }
589
+ };
590
+ template <typename Rhs>
591
+ class GtMatcher : public ComparisonBase<GtMatcher<Rhs>, Rhs, AnyGt> {
592
+ public:
593
+ explicit GtMatcher(const Rhs& rhs)
594
+ : ComparisonBase<GtMatcher<Rhs>, Rhs, AnyGt>(rhs) { }
595
+ static const char* Desc() { return "is >"; }
596
+ static const char* NegatedDesc() { return "isn't >"; }
597
+ };
598
+ template <typename Rhs>
599
+ class LeMatcher : public ComparisonBase<LeMatcher<Rhs>, Rhs, AnyLe> {
600
+ public:
601
+ explicit LeMatcher(const Rhs& rhs)
602
+ : ComparisonBase<LeMatcher<Rhs>, Rhs, AnyLe>(rhs) { }
603
+ static const char* Desc() { return "is <="; }
604
+ static const char* NegatedDesc() { return "isn't <="; }
605
+ };
606
+ template <typename Rhs>
607
+ class GeMatcher : public ComparisonBase<GeMatcher<Rhs>, Rhs, AnyGe> {
608
+ public:
609
+ explicit GeMatcher(const Rhs& rhs)
610
+ : ComparisonBase<GeMatcher<Rhs>, Rhs, AnyGe>(rhs) { }
611
+ static const char* Desc() { return "is >="; }
612
+ static const char* NegatedDesc() { return "isn't >="; }
613
+ };
614
+
615
+ // Implements polymorphic matchers MatchesRegex(regex) and
616
+ // ContainsRegex(regex), which can be used as a Matcher<T> as long as
617
+ // T can be converted to a string.
618
+ class MatchesRegexMatcher {
619
+ public:
620
+ MatchesRegexMatcher(const RE* regex, bool full_match)
621
+ : regex_(regex), full_match_(full_match) {}
622
+
623
+ #if GTEST_HAS_ABSL
624
+ bool MatchAndExplain(const absl::string_view& s,
625
+ MatchResultListener* listener) const {
626
+ return MatchAndExplain(std::string(s), listener);
627
+ }
628
+ #endif // GTEST_HAS_ABSL
629
+
630
+ // Accepts pointer types, particularly:
631
+ // const char*
632
+ // char*
633
+ // const wchar_t*
634
+ // wchar_t*
635
+ template <typename CharType>
636
+ bool MatchAndExplain(CharType* s, MatchResultListener* listener) const {
637
+ return s != nullptr && MatchAndExplain(std::string(s), listener);
638
+ }
639
+
640
+ // Matches anything that can convert to std::string.
641
+ //
642
+ // This is a template, not just a plain function with const std::string&,
643
+ // because absl::string_view has some interfering non-explicit constructors.
644
+ template <class MatcheeStringType>
645
+ bool MatchAndExplain(const MatcheeStringType& s,
646
+ MatchResultListener* /* listener */) const {
647
+ const std::string& s2(s);
648
+ return full_match_ ? RE::FullMatch(s2, *regex_)
649
+ : RE::PartialMatch(s2, *regex_);
650
+ }
651
+
652
+ void DescribeTo(::std::ostream* os) const {
653
+ *os << (full_match_ ? "matches" : "contains") << " regular expression ";
654
+ UniversalPrinter<std::string>::Print(regex_->pattern(), os);
655
+ }
656
+
657
+ void DescribeNegationTo(::std::ostream* os) const {
658
+ *os << "doesn't " << (full_match_ ? "match" : "contain")
659
+ << " regular expression ";
660
+ UniversalPrinter<std::string>::Print(regex_->pattern(), os);
661
+ }
662
+
663
+ private:
664
+ const std::shared_ptr<const RE> regex_;
665
+ const bool full_match_;
666
+ };
667
+ } // namespace internal
668
+
669
+ // Matches a string that fully matches regular expression 'regex'.
670
+ // The matcher takes ownership of 'regex'.
671
+ inline PolymorphicMatcher<internal::MatchesRegexMatcher> MatchesRegex(
672
+ const internal::RE* regex) {
673
+ return MakePolymorphicMatcher(internal::MatchesRegexMatcher(regex, true));
674
+ }
675
+ inline PolymorphicMatcher<internal::MatchesRegexMatcher> MatchesRegex(
676
+ const std::string& regex) {
677
+ return MatchesRegex(new internal::RE(regex));
678
+ }
679
+
680
+ // Matches a string that contains regular expression 'regex'.
681
+ // The matcher takes ownership of 'regex'.
682
+ inline PolymorphicMatcher<internal::MatchesRegexMatcher> ContainsRegex(
683
+ const internal::RE* regex) {
684
+ return MakePolymorphicMatcher(internal::MatchesRegexMatcher(regex, false));
685
+ }
686
+ inline PolymorphicMatcher<internal::MatchesRegexMatcher> ContainsRegex(
687
+ const std::string& regex) {
688
+ return ContainsRegex(new internal::RE(regex));
689
+ }
690
+
691
+ // Creates a polymorphic matcher that matches anything equal to x.
692
+ // Note: if the parameter of Eq() were declared as const T&, Eq("foo")
693
+ // wouldn't compile.
694
+ template <typename T>
695
+ inline internal::EqMatcher<T> Eq(T x) { return internal::EqMatcher<T>(x); }
696
+
697
+ // Constructs a Matcher<T> from a 'value' of type T. The constructed
698
+ // matcher matches any value that's equal to 'value'.
699
+ template <typename T>
700
+ Matcher<T>::Matcher(T value) { *this = Eq(value); }
701
+
702
+ // Creates a monomorphic matcher that matches anything with type Lhs
703
+ // and equal to rhs. A user may need to use this instead of Eq(...)
704
+ // in order to resolve an overloading ambiguity.
705
+ //
706
+ // TypedEq<T>(x) is just a convenient short-hand for Matcher<T>(Eq(x))
707
+ // or Matcher<T>(x), but more readable than the latter.
708
+ //
709
+ // We could define similar monomorphic matchers for other comparison
710
+ // operations (e.g. TypedLt, TypedGe, and etc), but decided not to do
711
+ // it yet as those are used much less than Eq() in practice. A user
712
+ // can always write Matcher<T>(Lt(5)) to be explicit about the type,
713
+ // for example.
714
+ template <typename Lhs, typename Rhs>
715
+ inline Matcher<Lhs> TypedEq(const Rhs& rhs) { return Eq(rhs); }
716
+
717
+ // Creates a polymorphic matcher that matches anything >= x.
718
+ template <typename Rhs>
719
+ inline internal::GeMatcher<Rhs> Ge(Rhs x) {
720
+ return internal::GeMatcher<Rhs>(x);
721
+ }
722
+
723
+ // Creates a polymorphic matcher that matches anything > x.
724
+ template <typename Rhs>
725
+ inline internal::GtMatcher<Rhs> Gt(Rhs x) {
726
+ return internal::GtMatcher<Rhs>(x);
727
+ }
728
+
729
+ // Creates a polymorphic matcher that matches anything <= x.
730
+ template <typename Rhs>
731
+ inline internal::LeMatcher<Rhs> Le(Rhs x) {
732
+ return internal::LeMatcher<Rhs>(x);
733
+ }
734
+
735
+ // Creates a polymorphic matcher that matches anything < x.
736
+ template <typename Rhs>
737
+ inline internal::LtMatcher<Rhs> Lt(Rhs x) {
738
+ return internal::LtMatcher<Rhs>(x);
739
+ }
740
+
741
+ // Creates a polymorphic matcher that matches anything != x.
742
+ template <typename Rhs>
743
+ inline internal::NeMatcher<Rhs> Ne(Rhs x) {
744
+ return internal::NeMatcher<Rhs>(x);
745
+ }
746
+ } // namespace testing
747
+
748
+ GTEST_DISABLE_MSC_WARNINGS_POP_() // 4251 5046
749
+
750
+ #endif // GTEST_INCLUDE_GTEST_GTEST_MATCHERS_H_