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,1149 @@
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
+ // The purpose of this file is to generate Google Test output under
31
+ // various conditions. The output will then be verified by
32
+ // googletest-output-test.py to ensure that Google Test generates the
33
+ // desired messages. Therefore, most tests in this file are MEANT TO
34
+ // FAIL.
35
+
36
+ #include "gtest/gtest-spi.h"
37
+ #include "gtest/gtest.h"
38
+ #include "src/gtest-internal-inl.h"
39
+
40
+ #include <stdlib.h>
41
+
42
+ #if _MSC_VER
43
+ GTEST_DISABLE_MSC_WARNINGS_PUSH_(4127 /* conditional expression is constant */)
44
+ #endif // _MSC_VER
45
+
46
+ #if GTEST_IS_THREADSAFE
47
+ using testing::ScopedFakeTestPartResultReporter;
48
+ using testing::TestPartResultArray;
49
+
50
+ using testing::internal::Notification;
51
+ using testing::internal::ThreadWithParam;
52
+ #endif
53
+
54
+ namespace posix = ::testing::internal::posix;
55
+
56
+ // Tests catching fatal failures.
57
+
58
+ // A subroutine used by the following test.
59
+ void TestEq1(int x) {
60
+ ASSERT_EQ(1, x);
61
+ }
62
+
63
+ // This function calls a test subroutine, catches the fatal failure it
64
+ // generates, and then returns early.
65
+ void TryTestSubroutine() {
66
+ // Calls a subrountine that yields a fatal failure.
67
+ TestEq1(2);
68
+
69
+ // Catches the fatal failure and aborts the test.
70
+ //
71
+ // The testing::Test:: prefix is necessary when calling
72
+ // HasFatalFailure() outside of a TEST, TEST_F, or test fixture.
73
+ if (testing::Test::HasFatalFailure()) return;
74
+
75
+ // If we get here, something is wrong.
76
+ FAIL() << "This should never be reached.";
77
+ }
78
+
79
+ TEST(PassingTest, PassingTest1) {
80
+ }
81
+
82
+ TEST(PassingTest, PassingTest2) {
83
+ }
84
+
85
+ // Tests that parameters of failing parameterized tests are printed in the
86
+ // failing test summary.
87
+ class FailingParamTest : public testing::TestWithParam<int> {};
88
+
89
+ TEST_P(FailingParamTest, Fails) {
90
+ EXPECT_EQ(1, GetParam());
91
+ }
92
+
93
+ // This generates a test which will fail. Google Test is expected to print
94
+ // its parameter when it outputs the list of all failed tests.
95
+ INSTANTIATE_TEST_SUITE_P(PrintingFailingParams,
96
+ FailingParamTest,
97
+ testing::Values(2));
98
+
99
+ static const char kGoldenString[] = "\"Line\0 1\"\nLine 2";
100
+
101
+ TEST(NonfatalFailureTest, EscapesStringOperands) {
102
+ std::string actual = "actual \"string\"";
103
+ EXPECT_EQ(kGoldenString, actual);
104
+
105
+ const char* golden = kGoldenString;
106
+ EXPECT_EQ(golden, actual);
107
+ }
108
+
109
+ TEST(NonfatalFailureTest, DiffForLongStrings) {
110
+ std::string golden_str(kGoldenString, sizeof(kGoldenString) - 1);
111
+ EXPECT_EQ(golden_str, "Line 2");
112
+ }
113
+
114
+ // Tests catching a fatal failure in a subroutine.
115
+ TEST(FatalFailureTest, FatalFailureInSubroutine) {
116
+ printf("(expecting a failure that x should be 1)\n");
117
+
118
+ TryTestSubroutine();
119
+ }
120
+
121
+ // Tests catching a fatal failure in a nested subroutine.
122
+ TEST(FatalFailureTest, FatalFailureInNestedSubroutine) {
123
+ printf("(expecting a failure that x should be 1)\n");
124
+
125
+ // Calls a subrountine that yields a fatal failure.
126
+ TryTestSubroutine();
127
+
128
+ // Catches the fatal failure and aborts the test.
129
+ //
130
+ // When calling HasFatalFailure() inside a TEST, TEST_F, or test
131
+ // fixture, the testing::Test:: prefix is not needed.
132
+ if (HasFatalFailure()) return;
133
+
134
+ // If we get here, something is wrong.
135
+ FAIL() << "This should never be reached.";
136
+ }
137
+
138
+ // Tests HasFatalFailure() after a failed EXPECT check.
139
+ TEST(FatalFailureTest, NonfatalFailureInSubroutine) {
140
+ printf("(expecting a failure on false)\n");
141
+ EXPECT_TRUE(false); // Generates a nonfatal failure
142
+ ASSERT_FALSE(HasFatalFailure()); // This should succeed.
143
+ }
144
+
145
+ // Tests interleaving user logging and Google Test assertions.
146
+ TEST(LoggingTest, InterleavingLoggingAndAssertions) {
147
+ static const int a[4] = {
148
+ 3, 9, 2, 6
149
+ };
150
+
151
+ printf("(expecting 2 failures on (3) >= (a[i]))\n");
152
+ for (int i = 0; i < static_cast<int>(sizeof(a)/sizeof(*a)); i++) {
153
+ printf("i == %d\n", i);
154
+ EXPECT_GE(3, a[i]);
155
+ }
156
+ }
157
+
158
+ // Tests the SCOPED_TRACE macro.
159
+
160
+ // A helper function for testing SCOPED_TRACE.
161
+ void SubWithoutTrace(int n) {
162
+ EXPECT_EQ(1, n);
163
+ ASSERT_EQ(2, n);
164
+ }
165
+
166
+ // Another helper function for testing SCOPED_TRACE.
167
+ void SubWithTrace(int n) {
168
+ SCOPED_TRACE(testing::Message() << "n = " << n);
169
+
170
+ SubWithoutTrace(n);
171
+ }
172
+
173
+ TEST(SCOPED_TRACETest, AcceptedValues) {
174
+ SCOPED_TRACE("literal string");
175
+ SCOPED_TRACE(std::string("std::string"));
176
+ SCOPED_TRACE(1337); // streamable type
177
+ const char* null_value = nullptr;
178
+ SCOPED_TRACE(null_value);
179
+
180
+ ADD_FAILURE() << "Just checking that all these values work fine.";
181
+ }
182
+
183
+ // Tests that SCOPED_TRACE() obeys lexical scopes.
184
+ TEST(SCOPED_TRACETest, ObeysScopes) {
185
+ printf("(expected to fail)\n");
186
+
187
+ // There should be no trace before SCOPED_TRACE() is invoked.
188
+ ADD_FAILURE() << "This failure is expected, and shouldn't have a trace.";
189
+
190
+ {
191
+ SCOPED_TRACE("Expected trace");
192
+ // After SCOPED_TRACE(), a failure in the current scope should contain
193
+ // the trace.
194
+ ADD_FAILURE() << "This failure is expected, and should have a trace.";
195
+ }
196
+
197
+ // Once the control leaves the scope of the SCOPED_TRACE(), there
198
+ // should be no trace again.
199
+ ADD_FAILURE() << "This failure is expected, and shouldn't have a trace.";
200
+ }
201
+
202
+ // Tests that SCOPED_TRACE works inside a loop.
203
+ TEST(SCOPED_TRACETest, WorksInLoop) {
204
+ printf("(expected to fail)\n");
205
+
206
+ for (int i = 1; i <= 2; i++) {
207
+ SCOPED_TRACE(testing::Message() << "i = " << i);
208
+
209
+ SubWithoutTrace(i);
210
+ }
211
+ }
212
+
213
+ // Tests that SCOPED_TRACE works in a subroutine.
214
+ TEST(SCOPED_TRACETest, WorksInSubroutine) {
215
+ printf("(expected to fail)\n");
216
+
217
+ SubWithTrace(1);
218
+ SubWithTrace(2);
219
+ }
220
+
221
+ // Tests that SCOPED_TRACE can be nested.
222
+ TEST(SCOPED_TRACETest, CanBeNested) {
223
+ printf("(expected to fail)\n");
224
+
225
+ SCOPED_TRACE(""); // A trace without a message.
226
+
227
+ SubWithTrace(2);
228
+ }
229
+
230
+ // Tests that multiple SCOPED_TRACEs can be used in the same scope.
231
+ TEST(SCOPED_TRACETest, CanBeRepeated) {
232
+ printf("(expected to fail)\n");
233
+
234
+ SCOPED_TRACE("A");
235
+ ADD_FAILURE()
236
+ << "This failure is expected, and should contain trace point A.";
237
+
238
+ SCOPED_TRACE("B");
239
+ ADD_FAILURE()
240
+ << "This failure is expected, and should contain trace point A and B.";
241
+
242
+ {
243
+ SCOPED_TRACE("C");
244
+ ADD_FAILURE() << "This failure is expected, and should "
245
+ << "contain trace point A, B, and C.";
246
+ }
247
+
248
+ SCOPED_TRACE("D");
249
+ ADD_FAILURE() << "This failure is expected, and should "
250
+ << "contain trace point A, B, and D.";
251
+ }
252
+
253
+ #if GTEST_IS_THREADSAFE
254
+ // Tests that SCOPED_TRACE()s can be used concurrently from multiple
255
+ // threads. Namely, an assertion should be affected by
256
+ // SCOPED_TRACE()s in its own thread only.
257
+
258
+ // Here's the sequence of actions that happen in the test:
259
+ //
260
+ // Thread A (main) | Thread B (spawned)
261
+ // ===============================|================================
262
+ // spawns thread B |
263
+ // -------------------------------+--------------------------------
264
+ // waits for n1 | SCOPED_TRACE("Trace B");
265
+ // | generates failure #1
266
+ // | notifies n1
267
+ // -------------------------------+--------------------------------
268
+ // SCOPED_TRACE("Trace A"); | waits for n2
269
+ // generates failure #2 |
270
+ // notifies n2 |
271
+ // -------------------------------|--------------------------------
272
+ // waits for n3 | generates failure #3
273
+ // | trace B dies
274
+ // | generates failure #4
275
+ // | notifies n3
276
+ // -------------------------------|--------------------------------
277
+ // generates failure #5 | finishes
278
+ // trace A dies |
279
+ // generates failure #6 |
280
+ // -------------------------------|--------------------------------
281
+ // waits for thread B to finish |
282
+
283
+ struct CheckPoints {
284
+ Notification n1;
285
+ Notification n2;
286
+ Notification n3;
287
+ };
288
+
289
+ static void ThreadWithScopedTrace(CheckPoints* check_points) {
290
+ {
291
+ SCOPED_TRACE("Trace B");
292
+ ADD_FAILURE()
293
+ << "Expected failure #1 (in thread B, only trace B alive).";
294
+ check_points->n1.Notify();
295
+ check_points->n2.WaitForNotification();
296
+
297
+ ADD_FAILURE()
298
+ << "Expected failure #3 (in thread B, trace A & B both alive).";
299
+ } // Trace B dies here.
300
+ ADD_FAILURE()
301
+ << "Expected failure #4 (in thread B, only trace A alive).";
302
+ check_points->n3.Notify();
303
+ }
304
+
305
+ TEST(SCOPED_TRACETest, WorksConcurrently) {
306
+ printf("(expecting 6 failures)\n");
307
+
308
+ CheckPoints check_points;
309
+ ThreadWithParam<CheckPoints*> thread(&ThreadWithScopedTrace, &check_points,
310
+ nullptr);
311
+ check_points.n1.WaitForNotification();
312
+
313
+ {
314
+ SCOPED_TRACE("Trace A");
315
+ ADD_FAILURE()
316
+ << "Expected failure #2 (in thread A, trace A & B both alive).";
317
+ check_points.n2.Notify();
318
+ check_points.n3.WaitForNotification();
319
+
320
+ ADD_FAILURE()
321
+ << "Expected failure #5 (in thread A, only trace A alive).";
322
+ } // Trace A dies here.
323
+ ADD_FAILURE()
324
+ << "Expected failure #6 (in thread A, no trace alive).";
325
+ thread.Join();
326
+ }
327
+ #endif // GTEST_IS_THREADSAFE
328
+
329
+ // Tests basic functionality of the ScopedTrace utility (most of its features
330
+ // are already tested in SCOPED_TRACETest).
331
+ TEST(ScopedTraceTest, WithExplicitFileAndLine) {
332
+ testing::ScopedTrace trace("explicit_file.cc", 123, "expected trace message");
333
+ ADD_FAILURE() << "Check that the trace is attached to a particular location.";
334
+ }
335
+
336
+ TEST(DisabledTestsWarningTest,
337
+ DISABLED_AlsoRunDisabledTestsFlagSuppressesWarning) {
338
+ // This test body is intentionally empty. Its sole purpose is for
339
+ // verifying that the --gtest_also_run_disabled_tests flag
340
+ // suppresses the "YOU HAVE 12 DISABLED TESTS" warning at the end of
341
+ // the test output.
342
+ }
343
+
344
+ // Tests using assertions outside of TEST and TEST_F.
345
+ //
346
+ // This function creates two failures intentionally.
347
+ void AdHocTest() {
348
+ printf("The non-test part of the code is expected to have 2 failures.\n\n");
349
+ EXPECT_TRUE(false);
350
+ EXPECT_EQ(2, 3);
351
+ }
352
+
353
+ // Runs all TESTs, all TEST_Fs, and the ad hoc test.
354
+ int RunAllTests() {
355
+ AdHocTest();
356
+ return RUN_ALL_TESTS();
357
+ }
358
+
359
+ // Tests non-fatal failures in the fixture constructor.
360
+ class NonFatalFailureInFixtureConstructorTest : public testing::Test {
361
+ protected:
362
+ NonFatalFailureInFixtureConstructorTest() {
363
+ printf("(expecting 5 failures)\n");
364
+ ADD_FAILURE() << "Expected failure #1, in the test fixture c'tor.";
365
+ }
366
+
367
+ ~NonFatalFailureInFixtureConstructorTest() override {
368
+ ADD_FAILURE() << "Expected failure #5, in the test fixture d'tor.";
369
+ }
370
+
371
+ void SetUp() override { ADD_FAILURE() << "Expected failure #2, in SetUp()."; }
372
+
373
+ void TearDown() override {
374
+ ADD_FAILURE() << "Expected failure #4, in TearDown.";
375
+ }
376
+ };
377
+
378
+ TEST_F(NonFatalFailureInFixtureConstructorTest, FailureInConstructor) {
379
+ ADD_FAILURE() << "Expected failure #3, in the test body.";
380
+ }
381
+
382
+ // Tests fatal failures in the fixture constructor.
383
+ class FatalFailureInFixtureConstructorTest : public testing::Test {
384
+ protected:
385
+ FatalFailureInFixtureConstructorTest() {
386
+ printf("(expecting 2 failures)\n");
387
+ Init();
388
+ }
389
+
390
+ ~FatalFailureInFixtureConstructorTest() override {
391
+ ADD_FAILURE() << "Expected failure #2, in the test fixture d'tor.";
392
+ }
393
+
394
+ void SetUp() override {
395
+ ADD_FAILURE() << "UNEXPECTED failure in SetUp(). "
396
+ << "We should never get here, as the test fixture c'tor "
397
+ << "had a fatal failure.";
398
+ }
399
+
400
+ void TearDown() override {
401
+ ADD_FAILURE() << "UNEXPECTED failure in TearDown(). "
402
+ << "We should never get here, as the test fixture c'tor "
403
+ << "had a fatal failure.";
404
+ }
405
+
406
+ private:
407
+ void Init() {
408
+ FAIL() << "Expected failure #1, in the test fixture c'tor.";
409
+ }
410
+ };
411
+
412
+ TEST_F(FatalFailureInFixtureConstructorTest, FailureInConstructor) {
413
+ ADD_FAILURE() << "UNEXPECTED failure in the test body. "
414
+ << "We should never get here, as the test fixture c'tor "
415
+ << "had a fatal failure.";
416
+ }
417
+
418
+ // Tests non-fatal failures in SetUp().
419
+ class NonFatalFailureInSetUpTest : public testing::Test {
420
+ protected:
421
+ ~NonFatalFailureInSetUpTest() override { Deinit(); }
422
+
423
+ void SetUp() override {
424
+ printf("(expecting 4 failures)\n");
425
+ ADD_FAILURE() << "Expected failure #1, in SetUp().";
426
+ }
427
+
428
+ void TearDown() override { FAIL() << "Expected failure #3, in TearDown()."; }
429
+
430
+ private:
431
+ void Deinit() {
432
+ FAIL() << "Expected failure #4, in the test fixture d'tor.";
433
+ }
434
+ };
435
+
436
+ TEST_F(NonFatalFailureInSetUpTest, FailureInSetUp) {
437
+ FAIL() << "Expected failure #2, in the test function.";
438
+ }
439
+
440
+ // Tests fatal failures in SetUp().
441
+ class FatalFailureInSetUpTest : public testing::Test {
442
+ protected:
443
+ ~FatalFailureInSetUpTest() override { Deinit(); }
444
+
445
+ void SetUp() override {
446
+ printf("(expecting 3 failures)\n");
447
+ FAIL() << "Expected failure #1, in SetUp().";
448
+ }
449
+
450
+ void TearDown() override { FAIL() << "Expected failure #2, in TearDown()."; }
451
+
452
+ private:
453
+ void Deinit() {
454
+ FAIL() << "Expected failure #3, in the test fixture d'tor.";
455
+ }
456
+ };
457
+
458
+ TEST_F(FatalFailureInSetUpTest, FailureInSetUp) {
459
+ FAIL() << "UNEXPECTED failure in the test function. "
460
+ << "We should never get here, as SetUp() failed.";
461
+ }
462
+
463
+ TEST(AddFailureAtTest, MessageContainsSpecifiedFileAndLineNumber) {
464
+ ADD_FAILURE_AT("foo.cc", 42) << "Expected nonfatal failure in foo.cc";
465
+ }
466
+
467
+ TEST(GtestFailAtTest, MessageContainsSpecifiedFileAndLineNumber) {
468
+ GTEST_FAIL_AT("foo.cc", 42) << "Expected fatal failure in foo.cc";
469
+ }
470
+
471
+ #if GTEST_IS_THREADSAFE
472
+
473
+ // A unary function that may die.
474
+ void DieIf(bool should_die) {
475
+ GTEST_CHECK_(!should_die) << " - death inside DieIf().";
476
+ }
477
+
478
+ // Tests running death tests in a multi-threaded context.
479
+
480
+ // Used for coordination between the main and the spawn thread.
481
+ struct SpawnThreadNotifications {
482
+ SpawnThreadNotifications() {}
483
+
484
+ Notification spawn_thread_started;
485
+ Notification spawn_thread_ok_to_terminate;
486
+
487
+ private:
488
+ GTEST_DISALLOW_COPY_AND_ASSIGN_(SpawnThreadNotifications);
489
+ };
490
+
491
+ // The function to be executed in the thread spawn by the
492
+ // MultipleThreads test (below).
493
+ static void ThreadRoutine(SpawnThreadNotifications* notifications) {
494
+ // Signals the main thread that this thread has started.
495
+ notifications->spawn_thread_started.Notify();
496
+
497
+ // Waits for permission to finish from the main thread.
498
+ notifications->spawn_thread_ok_to_terminate.WaitForNotification();
499
+ }
500
+
501
+ // This is a death-test test, but it's not named with a DeathTest
502
+ // suffix. It starts threads which might interfere with later
503
+ // death tests, so it must run after all other death tests.
504
+ class DeathTestAndMultiThreadsTest : public testing::Test {
505
+ protected:
506
+ // Starts a thread and waits for it to begin.
507
+ void SetUp() override {
508
+ thread_.reset(new ThreadWithParam<SpawnThreadNotifications*>(
509
+ &ThreadRoutine, &notifications_, nullptr));
510
+ notifications_.spawn_thread_started.WaitForNotification();
511
+ }
512
+ // Tells the thread to finish, and reaps it.
513
+ // Depending on the version of the thread library in use,
514
+ // a manager thread might still be left running that will interfere
515
+ // with later death tests. This is unfortunate, but this class
516
+ // cleans up after itself as best it can.
517
+ void TearDown() override {
518
+ notifications_.spawn_thread_ok_to_terminate.Notify();
519
+ }
520
+
521
+ private:
522
+ SpawnThreadNotifications notifications_;
523
+ std::unique_ptr<ThreadWithParam<SpawnThreadNotifications*> > thread_;
524
+ };
525
+
526
+ #endif // GTEST_IS_THREADSAFE
527
+
528
+ // The MixedUpTestSuiteTest test case verifies that Google Test will fail a
529
+ // test if it uses a different fixture class than what other tests in
530
+ // the same test case use. It deliberately contains two fixture
531
+ // classes with the same name but defined in different namespaces.
532
+
533
+ // The MixedUpTestSuiteWithSameTestNameTest test case verifies that
534
+ // when the user defines two tests with the same test case name AND
535
+ // same test name (but in different namespaces), the second test will
536
+ // fail.
537
+
538
+ namespace foo {
539
+
540
+ class MixedUpTestSuiteTest : public testing::Test {
541
+ };
542
+
543
+ TEST_F(MixedUpTestSuiteTest, FirstTestFromNamespaceFoo) {}
544
+ TEST_F(MixedUpTestSuiteTest, SecondTestFromNamespaceFoo) {}
545
+
546
+ class MixedUpTestSuiteWithSameTestNameTest : public testing::Test {
547
+ };
548
+
549
+ TEST_F(MixedUpTestSuiteWithSameTestNameTest,
550
+ TheSecondTestWithThisNameShouldFail) {}
551
+
552
+ } // namespace foo
553
+
554
+ namespace bar {
555
+
556
+ class MixedUpTestSuiteTest : public testing::Test {
557
+ };
558
+
559
+ // The following two tests are expected to fail. We rely on the
560
+ // golden file to check that Google Test generates the right error message.
561
+ TEST_F(MixedUpTestSuiteTest, ThisShouldFail) {}
562
+ TEST_F(MixedUpTestSuiteTest, ThisShouldFailToo) {}
563
+
564
+ class MixedUpTestSuiteWithSameTestNameTest : public testing::Test {
565
+ };
566
+
567
+ // Expected to fail. We rely on the golden file to check that Google Test
568
+ // generates the right error message.
569
+ TEST_F(MixedUpTestSuiteWithSameTestNameTest,
570
+ TheSecondTestWithThisNameShouldFail) {}
571
+
572
+ } // namespace bar
573
+
574
+ // The following two test cases verify that Google Test catches the user
575
+ // error of mixing TEST and TEST_F in the same test case. The first
576
+ // test case checks the scenario where TEST_F appears before TEST, and
577
+ // the second one checks where TEST appears before TEST_F.
578
+
579
+ class TEST_F_before_TEST_in_same_test_case : public testing::Test {
580
+ };
581
+
582
+ TEST_F(TEST_F_before_TEST_in_same_test_case, DefinedUsingTEST_F) {}
583
+
584
+ // Expected to fail. We rely on the golden file to check that Google Test
585
+ // generates the right error message.
586
+ TEST(TEST_F_before_TEST_in_same_test_case, DefinedUsingTESTAndShouldFail) {}
587
+
588
+ class TEST_before_TEST_F_in_same_test_case : public testing::Test {
589
+ };
590
+
591
+ TEST(TEST_before_TEST_F_in_same_test_case, DefinedUsingTEST) {}
592
+
593
+ // Expected to fail. We rely on the golden file to check that Google Test
594
+ // generates the right error message.
595
+ TEST_F(TEST_before_TEST_F_in_same_test_case, DefinedUsingTEST_FAndShouldFail) {
596
+ }
597
+
598
+ // Used for testing EXPECT_NONFATAL_FAILURE() and EXPECT_FATAL_FAILURE().
599
+ int global_integer = 0;
600
+
601
+ // Tests that EXPECT_NONFATAL_FAILURE() can reference global variables.
602
+ TEST(ExpectNonfatalFailureTest, CanReferenceGlobalVariables) {
603
+ global_integer = 0;
604
+ EXPECT_NONFATAL_FAILURE({
605
+ EXPECT_EQ(1, global_integer) << "Expected non-fatal failure.";
606
+ }, "Expected non-fatal failure.");
607
+ }
608
+
609
+ // Tests that EXPECT_NONFATAL_FAILURE() can reference local variables
610
+ // (static or not).
611
+ TEST(ExpectNonfatalFailureTest, CanReferenceLocalVariables) {
612
+ int m = 0;
613
+ static int n;
614
+ n = 1;
615
+ EXPECT_NONFATAL_FAILURE({
616
+ EXPECT_EQ(m, n) << "Expected non-fatal failure.";
617
+ }, "Expected non-fatal failure.");
618
+ }
619
+
620
+ // Tests that EXPECT_NONFATAL_FAILURE() succeeds when there is exactly
621
+ // one non-fatal failure and no fatal failure.
622
+ TEST(ExpectNonfatalFailureTest, SucceedsWhenThereIsOneNonfatalFailure) {
623
+ EXPECT_NONFATAL_FAILURE({
624
+ ADD_FAILURE() << "Expected non-fatal failure.";
625
+ }, "Expected non-fatal failure.");
626
+ }
627
+
628
+ // Tests that EXPECT_NONFATAL_FAILURE() fails when there is no
629
+ // non-fatal failure.
630
+ TEST(ExpectNonfatalFailureTest, FailsWhenThereIsNoNonfatalFailure) {
631
+ printf("(expecting a failure)\n");
632
+ EXPECT_NONFATAL_FAILURE({
633
+ }, "");
634
+ }
635
+
636
+ // Tests that EXPECT_NONFATAL_FAILURE() fails when there are two
637
+ // non-fatal failures.
638
+ TEST(ExpectNonfatalFailureTest, FailsWhenThereAreTwoNonfatalFailures) {
639
+ printf("(expecting a failure)\n");
640
+ EXPECT_NONFATAL_FAILURE({
641
+ ADD_FAILURE() << "Expected non-fatal failure 1.";
642
+ ADD_FAILURE() << "Expected non-fatal failure 2.";
643
+ }, "");
644
+ }
645
+
646
+ // Tests that EXPECT_NONFATAL_FAILURE() fails when there is one fatal
647
+ // failure.
648
+ TEST(ExpectNonfatalFailureTest, FailsWhenThereIsOneFatalFailure) {
649
+ printf("(expecting a failure)\n");
650
+ EXPECT_NONFATAL_FAILURE({
651
+ FAIL() << "Expected fatal failure.";
652
+ }, "");
653
+ }
654
+
655
+ // Tests that EXPECT_NONFATAL_FAILURE() fails when the statement being
656
+ // tested returns.
657
+ TEST(ExpectNonfatalFailureTest, FailsWhenStatementReturns) {
658
+ printf("(expecting a failure)\n");
659
+ EXPECT_NONFATAL_FAILURE({
660
+ return;
661
+ }, "");
662
+ }
663
+
664
+ #if GTEST_HAS_EXCEPTIONS
665
+
666
+ // Tests that EXPECT_NONFATAL_FAILURE() fails when the statement being
667
+ // tested throws.
668
+ TEST(ExpectNonfatalFailureTest, FailsWhenStatementThrows) {
669
+ printf("(expecting a failure)\n");
670
+ try {
671
+ EXPECT_NONFATAL_FAILURE({
672
+ throw 0;
673
+ }, "");
674
+ } catch(int) { // NOLINT
675
+ }
676
+ }
677
+
678
+ #endif // GTEST_HAS_EXCEPTIONS
679
+
680
+ // Tests that EXPECT_FATAL_FAILURE() can reference global variables.
681
+ TEST(ExpectFatalFailureTest, CanReferenceGlobalVariables) {
682
+ global_integer = 0;
683
+ EXPECT_FATAL_FAILURE({
684
+ ASSERT_EQ(1, global_integer) << "Expected fatal failure.";
685
+ }, "Expected fatal failure.");
686
+ }
687
+
688
+ // Tests that EXPECT_FATAL_FAILURE() can reference local static
689
+ // variables.
690
+ TEST(ExpectFatalFailureTest, CanReferenceLocalStaticVariables) {
691
+ static int n;
692
+ n = 1;
693
+ EXPECT_FATAL_FAILURE({
694
+ ASSERT_EQ(0, n) << "Expected fatal failure.";
695
+ }, "Expected fatal failure.");
696
+ }
697
+
698
+ // Tests that EXPECT_FATAL_FAILURE() succeeds when there is exactly
699
+ // one fatal failure and no non-fatal failure.
700
+ TEST(ExpectFatalFailureTest, SucceedsWhenThereIsOneFatalFailure) {
701
+ EXPECT_FATAL_FAILURE({
702
+ FAIL() << "Expected fatal failure.";
703
+ }, "Expected fatal failure.");
704
+ }
705
+
706
+ // Tests that EXPECT_FATAL_FAILURE() fails when there is no fatal
707
+ // failure.
708
+ TEST(ExpectFatalFailureTest, FailsWhenThereIsNoFatalFailure) {
709
+ printf("(expecting a failure)\n");
710
+ EXPECT_FATAL_FAILURE({
711
+ }, "");
712
+ }
713
+
714
+ // A helper for generating a fatal failure.
715
+ void FatalFailure() {
716
+ FAIL() << "Expected fatal failure.";
717
+ }
718
+
719
+ // Tests that EXPECT_FATAL_FAILURE() fails when there are two
720
+ // fatal failures.
721
+ TEST(ExpectFatalFailureTest, FailsWhenThereAreTwoFatalFailures) {
722
+ printf("(expecting a failure)\n");
723
+ EXPECT_FATAL_FAILURE({
724
+ FatalFailure();
725
+ FatalFailure();
726
+ }, "");
727
+ }
728
+
729
+ // Tests that EXPECT_FATAL_FAILURE() fails when there is one non-fatal
730
+ // failure.
731
+ TEST(ExpectFatalFailureTest, FailsWhenThereIsOneNonfatalFailure) {
732
+ printf("(expecting a failure)\n");
733
+ EXPECT_FATAL_FAILURE({
734
+ ADD_FAILURE() << "Expected non-fatal failure.";
735
+ }, "");
736
+ }
737
+
738
+ // Tests that EXPECT_FATAL_FAILURE() fails when the statement being
739
+ // tested returns.
740
+ TEST(ExpectFatalFailureTest, FailsWhenStatementReturns) {
741
+ printf("(expecting a failure)\n");
742
+ EXPECT_FATAL_FAILURE({
743
+ return;
744
+ }, "");
745
+ }
746
+
747
+ #if GTEST_HAS_EXCEPTIONS
748
+
749
+ // Tests that EXPECT_FATAL_FAILURE() fails when the statement being
750
+ // tested throws.
751
+ TEST(ExpectFatalFailureTest, FailsWhenStatementThrows) {
752
+ printf("(expecting a failure)\n");
753
+ try {
754
+ EXPECT_FATAL_FAILURE({
755
+ throw 0;
756
+ }, "");
757
+ } catch(int) { // NOLINT
758
+ }
759
+ }
760
+
761
+ #endif // GTEST_HAS_EXCEPTIONS
762
+
763
+ // This #ifdef block tests the output of value-parameterized tests.
764
+
765
+ std::string ParamNameFunc(const testing::TestParamInfo<std::string>& info) {
766
+ return info.param;
767
+ }
768
+
769
+ class ParamTest : public testing::TestWithParam<std::string> {
770
+ };
771
+
772
+ TEST_P(ParamTest, Success) {
773
+ EXPECT_EQ("a", GetParam());
774
+ }
775
+
776
+ TEST_P(ParamTest, Failure) {
777
+ EXPECT_EQ("b", GetParam()) << "Expected failure";
778
+ }
779
+
780
+ INSTANTIATE_TEST_SUITE_P(PrintingStrings,
781
+ ParamTest,
782
+ testing::Values(std::string("a")),
783
+ ParamNameFunc);
784
+
785
+ // This #ifdef block tests the output of typed tests.
786
+ #if GTEST_HAS_TYPED_TEST
787
+
788
+ template <typename T>
789
+ class TypedTest : public testing::Test {
790
+ };
791
+
792
+ TYPED_TEST_SUITE(TypedTest, testing::Types<int>);
793
+
794
+ TYPED_TEST(TypedTest, Success) {
795
+ EXPECT_EQ(0, TypeParam());
796
+ }
797
+
798
+ TYPED_TEST(TypedTest, Failure) {
799
+ EXPECT_EQ(1, TypeParam()) << "Expected failure";
800
+ }
801
+
802
+ typedef testing::Types<char, int> TypesForTestWithNames;
803
+
804
+ template <typename T>
805
+ class TypedTestWithNames : public testing::Test {};
806
+
807
+ class TypedTestNames {
808
+ public:
809
+ template <typename T>
810
+ static std::string GetName(int i) {
811
+ if (std::is_same<T, char>::value)
812
+ return std::string("char") + ::testing::PrintToString(i);
813
+ if (std::is_same<T, int>::value)
814
+ return std::string("int") + ::testing::PrintToString(i);
815
+ }
816
+ };
817
+
818
+ TYPED_TEST_SUITE(TypedTestWithNames, TypesForTestWithNames, TypedTestNames);
819
+
820
+ TYPED_TEST(TypedTestWithNames, Success) {}
821
+
822
+ TYPED_TEST(TypedTestWithNames, Failure) { FAIL(); }
823
+
824
+ #endif // GTEST_HAS_TYPED_TEST
825
+
826
+ // This #ifdef block tests the output of type-parameterized tests.
827
+ #if GTEST_HAS_TYPED_TEST_P
828
+
829
+ template <typename T>
830
+ class TypedTestP : public testing::Test {
831
+ };
832
+
833
+ TYPED_TEST_SUITE_P(TypedTestP);
834
+
835
+ TYPED_TEST_P(TypedTestP, Success) {
836
+ EXPECT_EQ(0U, TypeParam());
837
+ }
838
+
839
+ TYPED_TEST_P(TypedTestP, Failure) {
840
+ EXPECT_EQ(1U, TypeParam()) << "Expected failure";
841
+ }
842
+
843
+ REGISTER_TYPED_TEST_SUITE_P(TypedTestP, Success, Failure);
844
+
845
+ typedef testing::Types<unsigned char, unsigned int> UnsignedTypes;
846
+ INSTANTIATE_TYPED_TEST_SUITE_P(Unsigned, TypedTestP, UnsignedTypes);
847
+
848
+ class TypedTestPNames {
849
+ public:
850
+ template <typename T>
851
+ static std::string GetName(int i) {
852
+ if (std::is_same<T, unsigned char>::value) {
853
+ return std::string("unsignedChar") + ::testing::PrintToString(i);
854
+ }
855
+ if (std::is_same<T, unsigned int>::value) {
856
+ return std::string("unsignedInt") + ::testing::PrintToString(i);
857
+ }
858
+ }
859
+ };
860
+
861
+ INSTANTIATE_TYPED_TEST_SUITE_P(UnsignedCustomName, TypedTestP, UnsignedTypes,
862
+ TypedTestPNames);
863
+
864
+ #endif // GTEST_HAS_TYPED_TEST_P
865
+
866
+ #if GTEST_HAS_DEATH_TEST
867
+
868
+ // We rely on the golden file to verify that tests whose test case
869
+ // name ends with DeathTest are run first.
870
+
871
+ TEST(ADeathTest, ShouldRunFirst) {
872
+ }
873
+
874
+ # if GTEST_HAS_TYPED_TEST
875
+
876
+ // We rely on the golden file to verify that typed tests whose test
877
+ // case name ends with DeathTest are run first.
878
+
879
+ template <typename T>
880
+ class ATypedDeathTest : public testing::Test {
881
+ };
882
+
883
+ typedef testing::Types<int, double> NumericTypes;
884
+ TYPED_TEST_SUITE(ATypedDeathTest, NumericTypes);
885
+
886
+ TYPED_TEST(ATypedDeathTest, ShouldRunFirst) {
887
+ }
888
+
889
+ # endif // GTEST_HAS_TYPED_TEST
890
+
891
+ # if GTEST_HAS_TYPED_TEST_P
892
+
893
+
894
+ // We rely on the golden file to verify that type-parameterized tests
895
+ // whose test case name ends with DeathTest are run first.
896
+
897
+ template <typename T>
898
+ class ATypeParamDeathTest : public testing::Test {
899
+ };
900
+
901
+ TYPED_TEST_SUITE_P(ATypeParamDeathTest);
902
+
903
+ TYPED_TEST_P(ATypeParamDeathTest, ShouldRunFirst) {
904
+ }
905
+
906
+ REGISTER_TYPED_TEST_SUITE_P(ATypeParamDeathTest, ShouldRunFirst);
907
+
908
+ INSTANTIATE_TYPED_TEST_SUITE_P(My, ATypeParamDeathTest, NumericTypes);
909
+
910
+ # endif // GTEST_HAS_TYPED_TEST_P
911
+
912
+ #endif // GTEST_HAS_DEATH_TEST
913
+
914
+ // Tests various failure conditions of
915
+ // EXPECT_{,NON}FATAL_FAILURE{,_ON_ALL_THREADS}.
916
+ class ExpectFailureTest : public testing::Test {
917
+ public: // Must be public and not protected due to a bug in g++ 3.4.2.
918
+ enum FailureMode {
919
+ FATAL_FAILURE,
920
+ NONFATAL_FAILURE
921
+ };
922
+ static void AddFailure(FailureMode failure) {
923
+ if (failure == FATAL_FAILURE) {
924
+ FAIL() << "Expected fatal failure.";
925
+ } else {
926
+ ADD_FAILURE() << "Expected non-fatal failure.";
927
+ }
928
+ }
929
+ };
930
+
931
+ TEST_F(ExpectFailureTest, ExpectFatalFailure) {
932
+ // Expected fatal failure, but succeeds.
933
+ printf("(expecting 1 failure)\n");
934
+ EXPECT_FATAL_FAILURE(SUCCEED(), "Expected fatal failure.");
935
+ // Expected fatal failure, but got a non-fatal failure.
936
+ printf("(expecting 1 failure)\n");
937
+ EXPECT_FATAL_FAILURE(AddFailure(NONFATAL_FAILURE), "Expected non-fatal "
938
+ "failure.");
939
+ // Wrong message.
940
+ printf("(expecting 1 failure)\n");
941
+ EXPECT_FATAL_FAILURE(AddFailure(FATAL_FAILURE), "Some other fatal failure "
942
+ "expected.");
943
+ }
944
+
945
+ TEST_F(ExpectFailureTest, ExpectNonFatalFailure) {
946
+ // Expected non-fatal failure, but succeeds.
947
+ printf("(expecting 1 failure)\n");
948
+ EXPECT_NONFATAL_FAILURE(SUCCEED(), "Expected non-fatal failure.");
949
+ // Expected non-fatal failure, but got a fatal failure.
950
+ printf("(expecting 1 failure)\n");
951
+ EXPECT_NONFATAL_FAILURE(AddFailure(FATAL_FAILURE), "Expected fatal failure.");
952
+ // Wrong message.
953
+ printf("(expecting 1 failure)\n");
954
+ EXPECT_NONFATAL_FAILURE(AddFailure(NONFATAL_FAILURE), "Some other non-fatal "
955
+ "failure.");
956
+ }
957
+
958
+ #if GTEST_IS_THREADSAFE
959
+
960
+ class ExpectFailureWithThreadsTest : public ExpectFailureTest {
961
+ protected:
962
+ static void AddFailureInOtherThread(FailureMode failure) {
963
+ ThreadWithParam<FailureMode> thread(&AddFailure, failure, nullptr);
964
+ thread.Join();
965
+ }
966
+ };
967
+
968
+ TEST_F(ExpectFailureWithThreadsTest, ExpectFatalFailure) {
969
+ // We only intercept the current thread.
970
+ printf("(expecting 2 failures)\n");
971
+ EXPECT_FATAL_FAILURE(AddFailureInOtherThread(FATAL_FAILURE),
972
+ "Expected fatal failure.");
973
+ }
974
+
975
+ TEST_F(ExpectFailureWithThreadsTest, ExpectNonFatalFailure) {
976
+ // We only intercept the current thread.
977
+ printf("(expecting 2 failures)\n");
978
+ EXPECT_NONFATAL_FAILURE(AddFailureInOtherThread(NONFATAL_FAILURE),
979
+ "Expected non-fatal failure.");
980
+ }
981
+
982
+ typedef ExpectFailureWithThreadsTest ScopedFakeTestPartResultReporterTest;
983
+
984
+ // Tests that the ScopedFakeTestPartResultReporter only catches failures from
985
+ // the current thread if it is instantiated with INTERCEPT_ONLY_CURRENT_THREAD.
986
+ TEST_F(ScopedFakeTestPartResultReporterTest, InterceptOnlyCurrentThread) {
987
+ printf("(expecting 2 failures)\n");
988
+ TestPartResultArray results;
989
+ {
990
+ ScopedFakeTestPartResultReporter reporter(
991
+ ScopedFakeTestPartResultReporter::INTERCEPT_ONLY_CURRENT_THREAD,
992
+ &results);
993
+ AddFailureInOtherThread(FATAL_FAILURE);
994
+ AddFailureInOtherThread(NONFATAL_FAILURE);
995
+ }
996
+ // The two failures should not have been intercepted.
997
+ EXPECT_EQ(0, results.size()) << "This shouldn't fail.";
998
+ }
999
+
1000
+ #endif // GTEST_IS_THREADSAFE
1001
+
1002
+ TEST_F(ExpectFailureTest, ExpectFatalFailureOnAllThreads) {
1003
+ // Expected fatal failure, but succeeds.
1004
+ printf("(expecting 1 failure)\n");
1005
+ EXPECT_FATAL_FAILURE_ON_ALL_THREADS(SUCCEED(), "Expected fatal failure.");
1006
+ // Expected fatal failure, but got a non-fatal failure.
1007
+ printf("(expecting 1 failure)\n");
1008
+ EXPECT_FATAL_FAILURE_ON_ALL_THREADS(AddFailure(NONFATAL_FAILURE),
1009
+ "Expected non-fatal failure.");
1010
+ // Wrong message.
1011
+ printf("(expecting 1 failure)\n");
1012
+ EXPECT_FATAL_FAILURE_ON_ALL_THREADS(AddFailure(FATAL_FAILURE),
1013
+ "Some other fatal failure expected.");
1014
+ }
1015
+
1016
+ TEST_F(ExpectFailureTest, ExpectNonFatalFailureOnAllThreads) {
1017
+ // Expected non-fatal failure, but succeeds.
1018
+ printf("(expecting 1 failure)\n");
1019
+ EXPECT_NONFATAL_FAILURE_ON_ALL_THREADS(SUCCEED(), "Expected non-fatal "
1020
+ "failure.");
1021
+ // Expected non-fatal failure, but got a fatal failure.
1022
+ printf("(expecting 1 failure)\n");
1023
+ EXPECT_NONFATAL_FAILURE_ON_ALL_THREADS(AddFailure(FATAL_FAILURE),
1024
+ "Expected fatal failure.");
1025
+ // Wrong message.
1026
+ printf("(expecting 1 failure)\n");
1027
+ EXPECT_NONFATAL_FAILURE_ON_ALL_THREADS(AddFailure(NONFATAL_FAILURE),
1028
+ "Some other non-fatal failure.");
1029
+ }
1030
+
1031
+ class DynamicFixture : public testing::Test {
1032
+ protected:
1033
+ DynamicFixture() { printf("DynamicFixture()\n"); }
1034
+ ~DynamicFixture() override { printf("~DynamicFixture()\n"); }
1035
+ void SetUp() override { printf("DynamicFixture::SetUp\n"); }
1036
+ void TearDown() override { printf("DynamicFixture::TearDown\n"); }
1037
+
1038
+ static void SetUpTestSuite() { printf("DynamicFixture::SetUpTestSuite\n"); }
1039
+ static void TearDownTestSuite() {
1040
+ printf("DynamicFixture::TearDownTestSuite\n");
1041
+ }
1042
+ };
1043
+
1044
+ template <bool Pass>
1045
+ class DynamicTest : public DynamicFixture {
1046
+ public:
1047
+ void TestBody() override { EXPECT_TRUE(Pass); }
1048
+ };
1049
+
1050
+ auto dynamic_test = (
1051
+ // Register two tests with the same fixture correctly.
1052
+ testing::RegisterTest(
1053
+ "DynamicFixture", "DynamicTestPass", nullptr, nullptr, __FILE__,
1054
+ __LINE__, []() -> DynamicFixture* { return new DynamicTest<true>; }),
1055
+ testing::RegisterTest(
1056
+ "DynamicFixture", "DynamicTestFail", nullptr, nullptr, __FILE__,
1057
+ __LINE__, []() -> DynamicFixture* { return new DynamicTest<false>; }),
1058
+
1059
+ // Register the same fixture with another name. That's fine.
1060
+ testing::RegisterTest(
1061
+ "DynamicFixtureAnotherName", "DynamicTestPass", nullptr, nullptr,
1062
+ __FILE__, __LINE__,
1063
+ []() -> DynamicFixture* { return new DynamicTest<true>; }),
1064
+
1065
+ // Register two tests with the same fixture incorrectly.
1066
+ testing::RegisterTest(
1067
+ "BadDynamicFixture1", "FixtureBase", nullptr, nullptr, __FILE__,
1068
+ __LINE__, []() -> DynamicFixture* { return new DynamicTest<true>; }),
1069
+ testing::RegisterTest(
1070
+ "BadDynamicFixture1", "TestBase", nullptr, nullptr, __FILE__, __LINE__,
1071
+ []() -> testing::Test* { return new DynamicTest<true>; }),
1072
+
1073
+ // Register two tests with the same fixture incorrectly by ommiting the
1074
+ // return type.
1075
+ testing::RegisterTest(
1076
+ "BadDynamicFixture2", "FixtureBase", nullptr, nullptr, __FILE__,
1077
+ __LINE__, []() -> DynamicFixture* { return new DynamicTest<true>; }),
1078
+ testing::RegisterTest("BadDynamicFixture2", "Derived", nullptr, nullptr,
1079
+ __FILE__, __LINE__,
1080
+ []() { return new DynamicTest<true>; }));
1081
+
1082
+ // Two test environments for testing testing::AddGlobalTestEnvironment().
1083
+
1084
+ class FooEnvironment : public testing::Environment {
1085
+ public:
1086
+ void SetUp() override { printf("%s", "FooEnvironment::SetUp() called.\n"); }
1087
+
1088
+ void TearDown() override {
1089
+ printf("%s", "FooEnvironment::TearDown() called.\n");
1090
+ FAIL() << "Expected fatal failure.";
1091
+ }
1092
+ };
1093
+
1094
+ class BarEnvironment : public testing::Environment {
1095
+ public:
1096
+ void SetUp() override { printf("%s", "BarEnvironment::SetUp() called.\n"); }
1097
+
1098
+ void TearDown() override {
1099
+ printf("%s", "BarEnvironment::TearDown() called.\n");
1100
+ ADD_FAILURE() << "Expected non-fatal failure.";
1101
+ }
1102
+ };
1103
+
1104
+ // The main function.
1105
+ //
1106
+ // The idea is to use Google Test to run all the tests we have defined (some
1107
+ // of them are intended to fail), and then compare the test results
1108
+ // with the "golden" file.
1109
+ int main(int argc, char **argv) {
1110
+ testing::GTEST_FLAG(print_time) = false;
1111
+
1112
+ // We just run the tests, knowing some of them are intended to fail.
1113
+ // We will use a separate Python script to compare the output of
1114
+ // this program with the golden file.
1115
+
1116
+ // It's hard to test InitGoogleTest() directly, as it has many
1117
+ // global side effects. The following line serves as a sanity test
1118
+ // for it.
1119
+ testing::InitGoogleTest(&argc, argv);
1120
+ bool internal_skip_environment_and_ad_hoc_tests =
1121
+ std::count(argv, argv + argc,
1122
+ std::string("internal_skip_environment_and_ad_hoc_tests")) > 0;
1123
+
1124
+ #if GTEST_HAS_DEATH_TEST
1125
+ if (testing::internal::GTEST_FLAG(internal_run_death_test) != "") {
1126
+ // Skip the usual output capturing if we're running as the child
1127
+ // process of an threadsafe-style death test.
1128
+ # if GTEST_OS_WINDOWS
1129
+ posix::FReopen("nul:", "w", stdout);
1130
+ # else
1131
+ posix::FReopen("/dev/null", "w", stdout);
1132
+ # endif // GTEST_OS_WINDOWS
1133
+ return RUN_ALL_TESTS();
1134
+ }
1135
+ #endif // GTEST_HAS_DEATH_TEST
1136
+
1137
+ if (internal_skip_environment_and_ad_hoc_tests)
1138
+ return RUN_ALL_TESTS();
1139
+
1140
+ // Registers two global test environments.
1141
+ // The golden file verifies that they are set up in the order they
1142
+ // are registered, and torn down in the reverse order.
1143
+ testing::AddGlobalTestEnvironment(new FooEnvironment);
1144
+ testing::AddGlobalTestEnvironment(new BarEnvironment);
1145
+ #if _MSC_VER
1146
+ GTEST_DISABLE_MSC_WARNINGS_POP_() // 4127
1147
+ #endif // _MSC_VER
1148
+ return RunAllTests();
1149
+ }