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.
- package/LICENSE +21 -0
- package/README.md +92 -0
- package/android/.project +34 -0
- package/android/.settings/org.eclipse.buildship.core.prefs +13 -0
- package/android/CMakeLists.txt +69 -0
- package/android/build.gradle +125 -0
- package/android/cpp-adapter.cpp +19 -0
- package/android/gradle.properties +6 -0
- package/android/src/main/AndroidManifest.xml +4 -0
- package/android/src/main/java/com/reactnativeleveldb/LeveldbModule.java +57 -0
- package/android/src/main/java/com/reactnativeleveldb/LeveldbPackage.java +28 -0
- package/cpp/leveldb/.appveyor.yml +36 -0
- package/cpp/leveldb/.clang-format +18 -0
- package/cpp/leveldb/.travis.yml +88 -0
- package/cpp/leveldb/AUTHORS +12 -0
- package/cpp/leveldb/CMakeLists.txt +495 -0
- package/cpp/leveldb/CONTRIBUTING.md +36 -0
- package/cpp/leveldb/LICENSE +27 -0
- package/cpp/leveldb/NEWS +17 -0
- package/cpp/leveldb/README.md +231 -0
- package/cpp/leveldb/TODO +14 -0
- package/cpp/leveldb/benchmarks/db_bench.cc +990 -0
- package/cpp/leveldb/benchmarks/db_bench_sqlite3.cc +726 -0
- package/cpp/leveldb/benchmarks/db_bench_tree_db.cc +531 -0
- package/cpp/leveldb/cmake/leveldbConfig.cmake.in +9 -0
- package/cpp/leveldb/db/autocompact_test.cc +115 -0
- package/cpp/leveldb/db/builder.cc +82 -0
- package/cpp/leveldb/db/builder.h +30 -0
- package/cpp/leveldb/db/c.cc +562 -0
- package/cpp/leveldb/db/c_test.c +384 -0
- package/cpp/leveldb/db/corruption_test.cc +367 -0
- package/cpp/leveldb/db/db_impl.cc +1554 -0
- package/cpp/leveldb/db/db_impl.h +217 -0
- package/cpp/leveldb/db/db_iter.cc +318 -0
- package/cpp/leveldb/db/db_iter.h +26 -0
- package/cpp/leveldb/db/db_test.cc +2305 -0
- package/cpp/leveldb/db/dbformat.cc +136 -0
- package/cpp/leveldb/db/dbformat.h +224 -0
- package/cpp/leveldb/db/dbformat_test.cc +133 -0
- package/cpp/leveldb/db/dumpfile.cc +232 -0
- package/cpp/leveldb/db/fault_injection_test.cc +555 -0
- package/cpp/leveldb/db/filename.cc +141 -0
- package/cpp/leveldb/db/filename.h +83 -0
- package/cpp/leveldb/db/filename_test.cc +132 -0
- package/cpp/leveldb/db/leveldbutil.cc +64 -0
- package/cpp/leveldb/db/log_format.h +35 -0
- package/cpp/leveldb/db/log_reader.cc +274 -0
- package/cpp/leveldb/db/log_reader.h +112 -0
- package/cpp/leveldb/db/log_test.cc +563 -0
- package/cpp/leveldb/db/log_writer.cc +111 -0
- package/cpp/leveldb/db/log_writer.h +54 -0
- package/cpp/leveldb/db/memtable.cc +137 -0
- package/cpp/leveldb/db/memtable.h +87 -0
- package/cpp/leveldb/db/recovery_test.cc +339 -0
- package/cpp/leveldb/db/repair.cc +451 -0
- package/cpp/leveldb/db/skiplist.h +382 -0
- package/cpp/leveldb/db/skiplist_test.cc +373 -0
- package/cpp/leveldb/db/snapshot.h +95 -0
- package/cpp/leveldb/db/table_cache.cc +120 -0
- package/cpp/leveldb/db/table_cache.h +57 -0
- package/cpp/leveldb/db/version_edit.cc +257 -0
- package/cpp/leveldb/db/version_edit.h +106 -0
- package/cpp/leveldb/db/version_edit_test.cc +46 -0
- package/cpp/leveldb/db/version_set.cc +1562 -0
- package/cpp/leveldb/db/version_set.h +393 -0
- package/cpp/leveldb/db/version_set_test.cc +336 -0
- package/cpp/leveldb/db/write_batch.cc +150 -0
- package/cpp/leveldb/db/write_batch_internal.h +45 -0
- package/cpp/leveldb/db/write_batch_test.cc +137 -0
- package/cpp/leveldb/doc/benchmark.html +459 -0
- package/cpp/leveldb/doc/impl.md +172 -0
- package/cpp/leveldb/doc/index.md +523 -0
- package/cpp/leveldb/doc/log_format.md +75 -0
- package/cpp/leveldb/doc/table_format.md +107 -0
- package/cpp/leveldb/helpers/memenv/memenv.cc +390 -0
- package/cpp/leveldb/helpers/memenv/memenv.h +22 -0
- package/cpp/leveldb/helpers/memenv/memenv_test.cc +264 -0
- package/cpp/leveldb/include/leveldb/c.h +270 -0
- package/cpp/leveldb/include/leveldb/cache.h +111 -0
- package/cpp/leveldb/include/leveldb/comparator.h +64 -0
- package/cpp/leveldb/include/leveldb/db.h +167 -0
- package/cpp/leveldb/include/leveldb/dumpfile.h +28 -0
- package/cpp/leveldb/include/leveldb/env.h +417 -0
- package/cpp/leveldb/include/leveldb/export.h +33 -0
- package/cpp/leveldb/include/leveldb/filter_policy.h +72 -0
- package/cpp/leveldb/include/leveldb/iterator.h +112 -0
- package/cpp/leveldb/include/leveldb/options.h +187 -0
- package/cpp/leveldb/include/leveldb/slice.h +114 -0
- package/cpp/leveldb/include/leveldb/status.h +122 -0
- package/cpp/leveldb/include/leveldb/table.h +84 -0
- package/cpp/leveldb/include/leveldb/table_builder.h +93 -0
- package/cpp/leveldb/include/leveldb/write_batch.h +83 -0
- package/cpp/leveldb/issues/issue178_test.cc +90 -0
- package/cpp/leveldb/issues/issue200_test.cc +59 -0
- package/cpp/leveldb/issues/issue320_test.cc +131 -0
- package/cpp/leveldb/port/README.md +10 -0
- package/cpp/leveldb/port/port.h +19 -0
- package/cpp/leveldb/port/port_config.h.in +33 -0
- package/cpp/leveldb/port/port_example.h +100 -0
- package/cpp/leveldb/port/port_stdcxx.h +151 -0
- package/cpp/leveldb/port/thread_annotations.h +108 -0
- package/cpp/leveldb/table/block.cc +267 -0
- package/cpp/leveldb/table/block.h +44 -0
- package/cpp/leveldb/table/block_builder.cc +107 -0
- package/cpp/leveldb/table/block_builder.h +54 -0
- package/cpp/leveldb/table/filter_block.cc +106 -0
- package/cpp/leveldb/table/filter_block.h +68 -0
- package/cpp/leveldb/table/filter_block_test.cc +127 -0
- package/cpp/leveldb/table/format.cc +141 -0
- package/cpp/leveldb/table/format.h +99 -0
- package/cpp/leveldb/table/iterator.cc +76 -0
- package/cpp/leveldb/table/iterator_wrapper.h +92 -0
- package/cpp/leveldb/table/merger.cc +191 -0
- package/cpp/leveldb/table/merger.h +26 -0
- package/cpp/leveldb/table/table.cc +271 -0
- package/cpp/leveldb/table/table_builder.cc +265 -0
- package/cpp/leveldb/table/table_test.cc +834 -0
- package/cpp/leveldb/table/two_level_iterator.cc +171 -0
- package/cpp/leveldb/table/two_level_iterator.h +31 -0
- package/cpp/leveldb/third_party/benchmark/.clang-format +5 -0
- package/cpp/leveldb/third_party/benchmark/.github/ISSUE_TEMPLATE/bug_report.md +32 -0
- package/cpp/leveldb/third_party/benchmark/.github/ISSUE_TEMPLATE/feature_request.md +20 -0
- package/cpp/leveldb/third_party/benchmark/.github/workflows/build-and-test.yml +38 -0
- package/cpp/leveldb/third_party/benchmark/.github/workflows/pylint.yml +26 -0
- package/cpp/leveldb/third_party/benchmark/.github/workflows/test_bindings.yml +24 -0
- package/cpp/leveldb/third_party/benchmark/.travis-libcxx-setup.sh +28 -0
- package/cpp/leveldb/third_party/benchmark/.travis.yml +231 -0
- package/cpp/leveldb/third_party/benchmark/.ycm_extra_conf.py +115 -0
- package/cpp/leveldb/third_party/benchmark/AUTHORS +58 -0
- package/cpp/leveldb/third_party/benchmark/BUILD.bazel +44 -0
- package/cpp/leveldb/third_party/benchmark/CMakeLists.txt +287 -0
- package/cpp/leveldb/third_party/benchmark/CONTRIBUTING.md +58 -0
- package/cpp/leveldb/third_party/benchmark/CONTRIBUTORS +83 -0
- package/cpp/leveldb/third_party/benchmark/LICENSE +202 -0
- package/cpp/leveldb/third_party/benchmark/README.md +1323 -0
- package/cpp/leveldb/third_party/benchmark/WORKSPACE +51 -0
- package/cpp/leveldb/third_party/benchmark/_config.yml +1 -0
- package/cpp/leveldb/third_party/benchmark/appveyor.yml +50 -0
- package/cpp/leveldb/third_party/benchmark/bindings/python/BUILD +3 -0
- package/cpp/leveldb/third_party/benchmark/bindings/python/build_defs.bzl +25 -0
- package/cpp/leveldb/third_party/benchmark/bindings/python/google_benchmark/BUILD +38 -0
- package/cpp/leveldb/third_party/benchmark/bindings/python/google_benchmark/__init__.py +156 -0
- package/cpp/leveldb/third_party/benchmark/bindings/python/google_benchmark/benchmark.cc +180 -0
- package/cpp/leveldb/third_party/benchmark/bindings/python/google_benchmark/example.py +136 -0
- package/cpp/leveldb/third_party/benchmark/bindings/python/pybind11.BUILD +20 -0
- package/cpp/leveldb/third_party/benchmark/bindings/python/python_headers.BUILD +6 -0
- package/cpp/leveldb/third_party/benchmark/bindings/python/requirements.txt +2 -0
- package/cpp/leveldb/third_party/benchmark/cmake/AddCXXCompilerFlag.cmake +74 -0
- package/cpp/leveldb/third_party/benchmark/cmake/CXXFeatureCheck.cmake +69 -0
- package/cpp/leveldb/third_party/benchmark/cmake/Config.cmake.in +1 -0
- package/cpp/leveldb/third_party/benchmark/cmake/GetGitVersion.cmake +54 -0
- package/cpp/leveldb/third_party/benchmark/cmake/GoogleTest.cmake +41 -0
- package/cpp/leveldb/third_party/benchmark/cmake/GoogleTest.cmake.in +58 -0
- package/cpp/leveldb/third_party/benchmark/cmake/benchmark.pc.in +12 -0
- package/cpp/leveldb/third_party/benchmark/cmake/gnu_posix_regex.cpp +12 -0
- package/cpp/leveldb/third_party/benchmark/cmake/llvm-toolchain.cmake +8 -0
- package/cpp/leveldb/third_party/benchmark/cmake/posix_regex.cpp +14 -0
- package/cpp/leveldb/third_party/benchmark/cmake/split_list.cmake +3 -0
- package/cpp/leveldb/third_party/benchmark/cmake/std_regex.cpp +10 -0
- package/cpp/leveldb/third_party/benchmark/cmake/steady_clock.cpp +7 -0
- package/cpp/leveldb/third_party/benchmark/cmake/thread_safety_attributes.cpp +4 -0
- package/cpp/leveldb/third_party/benchmark/conan/CMakeLists.txt +7 -0
- package/cpp/leveldb/third_party/benchmark/conan/test_package/CMakeLists.txt +10 -0
- package/cpp/leveldb/third_party/benchmark/conan/test_package/conanfile.py +19 -0
- package/cpp/leveldb/third_party/benchmark/conan/test_package/test_package.cpp +18 -0
- package/cpp/leveldb/third_party/benchmark/conanfile.py +79 -0
- package/cpp/leveldb/third_party/benchmark/dependencies.md +18 -0
- package/cpp/leveldb/third_party/benchmark/docs/AssemblyTests.md +147 -0
- package/cpp/leveldb/third_party/benchmark/docs/_config.yml +1 -0
- package/cpp/leveldb/third_party/benchmark/docs/releasing.md +16 -0
- package/cpp/leveldb/third_party/benchmark/docs/tools.md +203 -0
- package/cpp/leveldb/third_party/benchmark/include/benchmark/benchmark.h +1604 -0
- package/cpp/leveldb/third_party/benchmark/requirements.txt +2 -0
- package/cpp/leveldb/third_party/benchmark/setup.py +140 -0
- package/cpp/leveldb/third_party/benchmark/src/CMakeLists.txt +114 -0
- package/cpp/leveldb/third_party/benchmark/src/arraysize.h +33 -0
- package/cpp/leveldb/third_party/benchmark/src/benchmark.cc +499 -0
- package/cpp/leveldb/third_party/benchmark/src/benchmark_api_internal.cc +15 -0
- package/cpp/leveldb/third_party/benchmark/src/benchmark_api_internal.h +53 -0
- package/cpp/leveldb/third_party/benchmark/src/benchmark_main.cc +17 -0
- package/cpp/leveldb/third_party/benchmark/src/benchmark_name.cc +58 -0
- package/cpp/leveldb/third_party/benchmark/src/benchmark_register.cc +515 -0
- package/cpp/leveldb/third_party/benchmark/src/benchmark_register.h +108 -0
- package/cpp/leveldb/third_party/benchmark/src/benchmark_runner.cc +362 -0
- package/cpp/leveldb/third_party/benchmark/src/benchmark_runner.h +51 -0
- package/cpp/leveldb/third_party/benchmark/src/check.h +82 -0
- package/cpp/leveldb/third_party/benchmark/src/colorprint.cc +188 -0
- package/cpp/leveldb/third_party/benchmark/src/colorprint.h +33 -0
- package/cpp/leveldb/third_party/benchmark/src/commandlineflags.cc +228 -0
- package/cpp/leveldb/third_party/benchmark/src/commandlineflags.h +103 -0
- package/cpp/leveldb/third_party/benchmark/src/complexity.cc +238 -0
- package/cpp/leveldb/third_party/benchmark/src/complexity.h +55 -0
- package/cpp/leveldb/third_party/benchmark/src/console_reporter.cc +177 -0
- package/cpp/leveldb/third_party/benchmark/src/counter.cc +80 -0
- package/cpp/leveldb/third_party/benchmark/src/counter.h +32 -0
- package/cpp/leveldb/third_party/benchmark/src/csv_reporter.cc +154 -0
- package/cpp/leveldb/third_party/benchmark/src/cycleclock.h +211 -0
- package/cpp/leveldb/third_party/benchmark/src/internal_macros.h +102 -0
- package/cpp/leveldb/third_party/benchmark/src/json_reporter.cc +255 -0
- package/cpp/leveldb/third_party/benchmark/src/log.h +74 -0
- package/cpp/leveldb/third_party/benchmark/src/mutex.h +155 -0
- package/cpp/leveldb/third_party/benchmark/src/re.h +158 -0
- package/cpp/leveldb/third_party/benchmark/src/reporter.cc +105 -0
- package/cpp/leveldb/third_party/benchmark/src/sleep.cc +67 -0
- package/cpp/leveldb/third_party/benchmark/src/sleep.h +15 -0
- package/cpp/leveldb/third_party/benchmark/src/statistics.cc +193 -0
- package/cpp/leveldb/third_party/benchmark/src/statistics.h +37 -0
- package/cpp/leveldb/third_party/benchmark/src/string_util.cc +255 -0
- package/cpp/leveldb/third_party/benchmark/src/string_util.h +59 -0
- package/cpp/leveldb/third_party/benchmark/src/sysinfo.cc +716 -0
- package/cpp/leveldb/third_party/benchmark/src/thread_manager.h +64 -0
- package/cpp/leveldb/third_party/benchmark/src/thread_timer.h +86 -0
- package/cpp/leveldb/third_party/benchmark/src/timers.cc +245 -0
- package/cpp/leveldb/third_party/benchmark/src/timers.h +48 -0
- package/cpp/leveldb/third_party/benchmark/test/AssemblyTests.cmake +46 -0
- package/cpp/leveldb/third_party/benchmark/test/BUILD +73 -0
- package/cpp/leveldb/third_party/benchmark/test/CMakeLists.txt +263 -0
- package/cpp/leveldb/third_party/benchmark/test/args_product_test.cc +77 -0
- package/cpp/leveldb/third_party/benchmark/test/basic_test.cc +136 -0
- package/cpp/leveldb/third_party/benchmark/test/benchmark_gtest.cc +134 -0
- package/cpp/leveldb/third_party/benchmark/test/benchmark_name_gtest.cc +74 -0
- package/cpp/leveldb/third_party/benchmark/test/benchmark_test.cc +245 -0
- package/cpp/leveldb/third_party/benchmark/test/clobber_memory_assembly_test.cc +64 -0
- package/cpp/leveldb/third_party/benchmark/test/commandlineflags_gtest.cc +201 -0
- package/cpp/leveldb/third_party/benchmark/test/complexity_test.cc +213 -0
- package/cpp/leveldb/third_party/benchmark/test/cxx03_test.cc +63 -0
- package/cpp/leveldb/third_party/benchmark/test/diagnostics_test.cc +80 -0
- package/cpp/leveldb/third_party/benchmark/test/display_aggregates_only_test.cc +43 -0
- package/cpp/leveldb/third_party/benchmark/test/donotoptimize_assembly_test.cc +163 -0
- package/cpp/leveldb/third_party/benchmark/test/donotoptimize_test.cc +52 -0
- package/cpp/leveldb/third_party/benchmark/test/filter_test.cc +104 -0
- package/cpp/leveldb/third_party/benchmark/test/fixture_test.cc +51 -0
- package/cpp/leveldb/third_party/benchmark/test/internal_threading_test.cc +184 -0
- package/cpp/leveldb/third_party/benchmark/test/link_main_test.cc +8 -0
- package/cpp/leveldb/third_party/benchmark/test/map_test.cc +57 -0
- package/cpp/leveldb/third_party/benchmark/test/memory_manager_test.cc +44 -0
- package/cpp/leveldb/third_party/benchmark/test/multiple_ranges_test.cc +96 -0
- package/cpp/leveldb/third_party/benchmark/test/options_test.cc +75 -0
- package/cpp/leveldb/third_party/benchmark/test/output_test.h +213 -0
- package/cpp/leveldb/third_party/benchmark/test/output_test_helper.cc +515 -0
- package/cpp/leveldb/third_party/benchmark/test/register_benchmark_test.cc +184 -0
- package/cpp/leveldb/third_party/benchmark/test/report_aggregates_only_test.cc +39 -0
- package/cpp/leveldb/third_party/benchmark/test/reporter_output_test.cc +747 -0
- package/cpp/leveldb/third_party/benchmark/test/skip_with_error_test.cc +195 -0
- package/cpp/leveldb/third_party/benchmark/test/state_assembly_test.cc +68 -0
- package/cpp/leveldb/third_party/benchmark/test/statistics_gtest.cc +28 -0
- package/cpp/leveldb/third_party/benchmark/test/string_util_gtest.cc +153 -0
- package/cpp/leveldb/third_party/benchmark/test/templated_fixture_test.cc +28 -0
- package/cpp/leveldb/third_party/benchmark/test/user_counters_tabular_test.cc +285 -0
- package/cpp/leveldb/third_party/benchmark/test/user_counters_test.cc +531 -0
- package/cpp/leveldb/third_party/benchmark/test/user_counters_thousands_test.cc +173 -0
- package/cpp/leveldb/third_party/benchmark/tools/BUILD.bazel +19 -0
- package/cpp/leveldb/third_party/benchmark/tools/compare.py +429 -0
- package/cpp/leveldb/third_party/benchmark/tools/gbench/Inputs/test1_run1.json +119 -0
- package/cpp/leveldb/third_party/benchmark/tools/gbench/Inputs/test1_run2.json +119 -0
- package/cpp/leveldb/third_party/benchmark/tools/gbench/Inputs/test2_run.json +81 -0
- package/cpp/leveldb/third_party/benchmark/tools/gbench/Inputs/test3_run0.json +65 -0
- package/cpp/leveldb/third_party/benchmark/tools/gbench/Inputs/test3_run1.json +65 -0
- package/cpp/leveldb/third_party/benchmark/tools/gbench/__init__.py +8 -0
- package/cpp/leveldb/third_party/benchmark/tools/gbench/report.py +903 -0
- package/cpp/leveldb/third_party/benchmark/tools/gbench/util.py +163 -0
- package/cpp/leveldb/third_party/benchmark/tools/requirements.txt +1 -0
- package/cpp/leveldb/third_party/benchmark/tools/strip_asm.py +151 -0
- package/cpp/leveldb/third_party/googletest/.clang-format +4 -0
- package/cpp/leveldb/third_party/googletest/.travis.yml +73 -0
- package/cpp/leveldb/third_party/googletest/BUILD.bazel +179 -0
- package/cpp/leveldb/third_party/googletest/CMakeLists.txt +36 -0
- package/cpp/leveldb/third_party/googletest/CONTRIBUTING.md +142 -0
- package/cpp/leveldb/third_party/googletest/LICENSE +28 -0
- package/cpp/leveldb/third_party/googletest/README.md +132 -0
- package/cpp/leveldb/third_party/googletest/WORKSPACE +23 -0
- package/cpp/leveldb/third_party/googletest/appveyor.yml +154 -0
- package/cpp/leveldb/third_party/googletest/ci/build-linux-bazel.sh +37 -0
- package/cpp/leveldb/third_party/googletest/ci/build-platformio.sh +2 -0
- package/cpp/leveldb/third_party/googletest/ci/env-linux.sh +41 -0
- package/cpp/leveldb/third_party/googletest/ci/env-osx.sh +47 -0
- package/cpp/leveldb/third_party/googletest/ci/get-nprocessors.sh +48 -0
- package/cpp/leveldb/third_party/googletest/ci/install-linux.sh +49 -0
- package/cpp/leveldb/third_party/googletest/ci/install-osx.sh +40 -0
- package/cpp/leveldb/third_party/googletest/ci/install-platformio.sh +5 -0
- package/cpp/leveldb/third_party/googletest/ci/log-config.sh +51 -0
- package/cpp/leveldb/third_party/googletest/ci/travis.sh +44 -0
- package/cpp/leveldb/third_party/googletest/googlemock/CMakeLists.txt +233 -0
- package/cpp/leveldb/third_party/googletest/googlemock/CONTRIBUTORS +40 -0
- package/cpp/leveldb/third_party/googletest/googlemock/LICENSE +28 -0
- package/cpp/leveldb/third_party/googletest/googlemock/README.md +44 -0
- package/cpp/leveldb/third_party/googletest/googlemock/cmake/gmock.pc.in +10 -0
- package/cpp/leveldb/third_party/googletest/googlemock/cmake/gmock_main.pc.in +10 -0
- package/cpp/leveldb/third_party/googletest/googlemock/docs/cheat_sheet.md +770 -0
- package/cpp/leveldb/third_party/googletest/googlemock/docs/cook_book.md +4270 -0
- package/cpp/leveldb/third_party/googletest/googlemock/docs/for_dummies.md +700 -0
- package/cpp/leveldb/third_party/googletest/googlemock/docs/gmock_faq.md +396 -0
- package/cpp/leveldb/third_party/googletest/googlemock/docs/pump_manual.md +187 -0
- package/cpp/leveldb/third_party/googletest/googlemock/include/gmock/gmock-actions.h +1193 -0
- package/cpp/leveldb/third_party/googletest/googlemock/include/gmock/gmock-cardinalities.h +157 -0
- package/cpp/leveldb/third_party/googletest/googlemock/include/gmock/gmock-function-mocker.h +276 -0
- package/cpp/leveldb/third_party/googletest/googlemock/include/gmock/gmock-generated-actions.h +1884 -0
- package/cpp/leveldb/third_party/googletest/googlemock/include/gmock/gmock-generated-actions.h.pump +627 -0
- package/cpp/leveldb/third_party/googletest/googlemock/include/gmock/gmock-generated-function-mockers.h +752 -0
- package/cpp/leveldb/third_party/googletest/googlemock/include/gmock/gmock-generated-function-mockers.h.pump +227 -0
- package/cpp/leveldb/third_party/googletest/googlemock/include/gmock/gmock-generated-matchers.h +1097 -0
- package/cpp/leveldb/third_party/googletest/googlemock/include/gmock/gmock-generated-matchers.h.pump +346 -0
- package/cpp/leveldb/third_party/googletest/googlemock/include/gmock/gmock-matchers.h +4591 -0
- package/cpp/leveldb/third_party/googletest/googlemock/include/gmock/gmock-more-actions.h +162 -0
- package/cpp/leveldb/third_party/googletest/googlemock/include/gmock/gmock-more-matchers.h +92 -0
- package/cpp/leveldb/third_party/googletest/googlemock/include/gmock/gmock-nice-strict.h +215 -0
- package/cpp/leveldb/third_party/googletest/googlemock/include/gmock/gmock-spec-builders.h +1985 -0
- package/cpp/leveldb/third_party/googletest/googlemock/include/gmock/gmock.h +101 -0
- package/cpp/leveldb/third_party/googletest/googlemock/include/gmock/internal/custom/README.md +16 -0
- package/cpp/leveldb/third_party/googletest/googlemock/include/gmock/internal/custom/gmock-generated-actions.h +10 -0
- package/cpp/leveldb/third_party/googletest/googlemock/include/gmock/internal/custom/gmock-generated-actions.h.pump +12 -0
- package/cpp/leveldb/third_party/googletest/googlemock/include/gmock/internal/custom/gmock-matchers.h +36 -0
- package/cpp/leveldb/third_party/googletest/googlemock/include/gmock/internal/custom/gmock-port.h +39 -0
- package/cpp/leveldb/third_party/googletest/googlemock/include/gmock/internal/gmock-internal-utils.h +472 -0
- package/cpp/leveldb/third_party/googletest/googlemock/include/gmock/internal/gmock-port.h +87 -0
- package/cpp/leveldb/third_party/googletest/googlemock/include/gmock/internal/gmock-pp.h +271 -0
- package/cpp/leveldb/third_party/googletest/googlemock/scripts/README.md +5 -0
- package/cpp/leveldb/third_party/googletest/googlemock/scripts/fuse_gmock_files.py +240 -0
- package/cpp/leveldb/third_party/googletest/googlemock/scripts/generator/LICENSE +203 -0
- package/cpp/leveldb/third_party/googletest/googlemock/scripts/generator/README +34 -0
- package/cpp/leveldb/third_party/googletest/googlemock/scripts/generator/README.cppclean +115 -0
- package/cpp/leveldb/third_party/googletest/googlemock/scripts/generator/cpp/__init__.py +0 -0
- package/cpp/leveldb/third_party/googletest/googlemock/scripts/generator/cpp/ast.py +1761 -0
- package/cpp/leveldb/third_party/googletest/googlemock/scripts/generator/cpp/gmock_class.py +248 -0
- package/cpp/leveldb/third_party/googletest/googlemock/scripts/generator/cpp/gmock_class_test.py +540 -0
- package/cpp/leveldb/third_party/googletest/googlemock/scripts/generator/cpp/keywords.py +56 -0
- package/cpp/leveldb/third_party/googletest/googlemock/scripts/generator/cpp/tokenize.py +284 -0
- package/cpp/leveldb/third_party/googletest/googlemock/scripts/generator/cpp/utils.py +37 -0
- package/cpp/leveldb/third_party/googletest/googlemock/scripts/generator/gmock_gen.py +30 -0
- package/cpp/leveldb/third_party/googletest/googlemock/scripts/pump.py +856 -0
- package/cpp/leveldb/third_party/googletest/googlemock/src/gmock-all.cc +46 -0
- package/cpp/leveldb/third_party/googletest/googlemock/src/gmock-cardinalities.cc +155 -0
- package/cpp/leveldb/third_party/googletest/googlemock/src/gmock-internal-utils.cc +200 -0
- package/cpp/leveldb/third_party/googletest/googlemock/src/gmock-matchers.cc +462 -0
- package/cpp/leveldb/third_party/googletest/googlemock/src/gmock-spec-builders.cc +892 -0
- package/cpp/leveldb/third_party/googletest/googlemock/src/gmock.cc +213 -0
- package/cpp/leveldb/third_party/googletest/googlemock/src/gmock_main.cc +72 -0
- package/cpp/leveldb/third_party/googletest/googlemock/test/BUILD.bazel +110 -0
- package/cpp/leveldb/third_party/googletest/googlemock/test/gmock-actions_test.cc +1507 -0
- package/cpp/leveldb/third_party/googletest/googlemock/test/gmock-cardinalities_test.cc +429 -0
- package/cpp/leveldb/third_party/googletest/googlemock/test/gmock-function-mocker_nc.cc +16 -0
- package/cpp/leveldb/third_party/googletest/googlemock/test/gmock-function-mocker_nc_test.py +43 -0
- package/cpp/leveldb/third_party/googletest/googlemock/test/gmock-function-mocker_test.cc +696 -0
- package/cpp/leveldb/third_party/googletest/googlemock/test/gmock-generated-actions_test.cc +1064 -0
- package/cpp/leveldb/third_party/googletest/googlemock/test/gmock-generated-function-mockers_test.cc +659 -0
- package/cpp/leveldb/third_party/googletest/googlemock/test/gmock-generated-matchers_test.cc +1323 -0
- package/cpp/leveldb/third_party/googletest/googlemock/test/gmock-internal-utils_test.cc +732 -0
- package/cpp/leveldb/third_party/googletest/googlemock/test/gmock-matchers_test.cc +6913 -0
- package/cpp/leveldb/third_party/googletest/googlemock/test/gmock-more-actions_test.cc +698 -0
- package/cpp/leveldb/third_party/googletest/googlemock/test/gmock-nice-strict_test.cc +500 -0
- package/cpp/leveldb/third_party/googletest/googlemock/test/gmock-port_test.cc +42 -0
- package/cpp/leveldb/third_party/googletest/googlemock/test/gmock-pp-string_test.cc +206 -0
- package/cpp/leveldb/third_party/googletest/googlemock/test/gmock-pp_test.cc +83 -0
- package/cpp/leveldb/third_party/googletest/googlemock/test/gmock-spec-builders_test.cc +2775 -0
- package/cpp/leveldb/third_party/googletest/googlemock/test/gmock_all_test.cc +49 -0
- package/cpp/leveldb/third_party/googletest/googlemock/test/gmock_ex_test.cc +80 -0
- package/cpp/leveldb/third_party/googletest/googlemock/test/gmock_leak_test.py +104 -0
- package/cpp/leveldb/third_party/googletest/googlemock/test/gmock_leak_test_.cc +99 -0
- package/cpp/leveldb/third_party/googletest/googlemock/test/gmock_link2_test.cc +39 -0
- package/cpp/leveldb/third_party/googletest/googlemock/test/gmock_link_test.cc +39 -0
- package/cpp/leveldb/third_party/googletest/googlemock/test/gmock_link_test.h +690 -0
- package/cpp/leveldb/third_party/googletest/googlemock/test/gmock_output_test.py +183 -0
- package/cpp/leveldb/third_party/googletest/googlemock/test/gmock_output_test_.cc +309 -0
- package/cpp/leveldb/third_party/googletest/googlemock/test/gmock_output_test_golden.txt +317 -0
- package/cpp/leveldb/third_party/googletest/googlemock/test/gmock_stress_test.cc +240 -0
- package/cpp/leveldb/third_party/googletest/googlemock/test/gmock_test.cc +181 -0
- package/cpp/leveldb/third_party/googletest/googlemock/test/gmock_test_utils.py +108 -0
- package/cpp/leveldb/third_party/googletest/googlemock/test/pump_test.py +182 -0
- package/cpp/leveldb/third_party/googletest/googletest/CMakeLists.txt +329 -0
- package/cpp/leveldb/third_party/googletest/googletest/CONTRIBUTORS +38 -0
- package/cpp/leveldb/third_party/googletest/googletest/LICENSE +28 -0
- package/cpp/leveldb/third_party/googletest/googletest/README.md +244 -0
- package/cpp/leveldb/third_party/googletest/googletest/cmake/Config.cmake.in +9 -0
- package/cpp/leveldb/third_party/googletest/googletest/cmake/gtest.pc.in +9 -0
- package/cpp/leveldb/third_party/googletest/googletest/cmake/gtest_main.pc.in +10 -0
- package/cpp/leveldb/third_party/googletest/googletest/cmake/internal_utils.cmake +358 -0
- package/cpp/leveldb/third_party/googletest/googletest/cmake/libgtest.la.in +21 -0
- package/cpp/leveldb/third_party/googletest/googletest/docs/advanced.md +2567 -0
- package/cpp/leveldb/third_party/googletest/googletest/docs/faq.md +753 -0
- package/cpp/leveldb/third_party/googletest/googletest/docs/pkgconfig.md +219 -0
- package/cpp/leveldb/third_party/googletest/googletest/docs/primer.md +579 -0
- package/cpp/leveldb/third_party/googletest/googletest/docs/samples.md +22 -0
- package/cpp/leveldb/third_party/googletest/googletest/include/gtest/gtest-death-test.h +343 -0
- package/cpp/leveldb/third_party/googletest/googletest/include/gtest/gtest-matchers.h +750 -0
- package/cpp/leveldb/third_party/googletest/googletest/include/gtest/gtest-message.h +219 -0
- package/cpp/leveldb/third_party/googletest/googletest/include/gtest/gtest-param-test.h +514 -0
- package/cpp/leveldb/third_party/googletest/googletest/include/gtest/gtest-printers.h +928 -0
- package/cpp/leveldb/third_party/googletest/googletest/include/gtest/gtest-spi.h +238 -0
- package/cpp/leveldb/third_party/googletest/googletest/include/gtest/gtest-test-part.h +184 -0
- package/cpp/leveldb/third_party/googletest/googletest/include/gtest/gtest-typed-test.h +337 -0
- package/cpp/leveldb/third_party/googletest/googletest/include/gtest/gtest.h +2477 -0
- package/cpp/leveldb/third_party/googletest/googletest/include/gtest/gtest_pred_impl.h +359 -0
- package/cpp/leveldb/third_party/googletest/googletest/include/gtest/gtest_prod.h +61 -0
- package/cpp/leveldb/third_party/googletest/googletest/include/gtest/internal/custom/README.md +56 -0
- package/cpp/leveldb/third_party/googletest/googletest/include/gtest/internal/custom/gtest-port.h +37 -0
- package/cpp/leveldb/third_party/googletest/googletest/include/gtest/internal/custom/gtest-printers.h +42 -0
- package/cpp/leveldb/third_party/googletest/googletest/include/gtest/internal/custom/gtest.h +37 -0
- package/cpp/leveldb/third_party/googletest/googletest/include/gtest/internal/gtest-death-test-internal.h +304 -0
- package/cpp/leveldb/third_party/googletest/googletest/include/gtest/internal/gtest-filepath.h +211 -0
- package/cpp/leveldb/third_party/googletest/googletest/include/gtest/internal/gtest-internal.h +1411 -0
- package/cpp/leveldb/third_party/googletest/googletest/include/gtest/internal/gtest-param-util.h +880 -0
- package/cpp/leveldb/third_party/googletest/googletest/include/gtest/internal/gtest-port-arch.h +111 -0
- package/cpp/leveldb/third_party/googletest/googletest/include/gtest/internal/gtest-port.h +2227 -0
- package/cpp/leveldb/third_party/googletest/googletest/include/gtest/internal/gtest-string.h +171 -0
- package/cpp/leveldb/third_party/googletest/googletest/include/gtest/internal/gtest-type-util.h +183 -0
- package/cpp/leveldb/third_party/googletest/googletest/samples/prime_tables.h +126 -0
- package/cpp/leveldb/third_party/googletest/googletest/samples/sample1.cc +66 -0
- package/cpp/leveldb/third_party/googletest/googletest/samples/sample1.h +41 -0
- package/cpp/leveldb/third_party/googletest/googletest/samples/sample10_unittest.cc +139 -0
- package/cpp/leveldb/third_party/googletest/googletest/samples/sample1_unittest.cc +151 -0
- package/cpp/leveldb/third_party/googletest/googletest/samples/sample2.cc +54 -0
- package/cpp/leveldb/third_party/googletest/googletest/samples/sample2.h +81 -0
- package/cpp/leveldb/third_party/googletest/googletest/samples/sample2_unittest.cc +107 -0
- package/cpp/leveldb/third_party/googletest/googletest/samples/sample3-inl.h +172 -0
- package/cpp/leveldb/third_party/googletest/googletest/samples/sample3_unittest.cc +149 -0
- package/cpp/leveldb/third_party/googletest/googletest/samples/sample4.cc +54 -0
- package/cpp/leveldb/third_party/googletest/googletest/samples/sample4.h +53 -0
- package/cpp/leveldb/third_party/googletest/googletest/samples/sample4_unittest.cc +53 -0
- package/cpp/leveldb/third_party/googletest/googletest/samples/sample5_unittest.cc +196 -0
- package/cpp/leveldb/third_party/googletest/googletest/samples/sample6_unittest.cc +224 -0
- package/cpp/leveldb/third_party/googletest/googletest/samples/sample7_unittest.cc +117 -0
- package/cpp/leveldb/third_party/googletest/googletest/samples/sample8_unittest.cc +154 -0
- package/cpp/leveldb/third_party/googletest/googletest/samples/sample9_unittest.cc +156 -0
- package/cpp/leveldb/third_party/googletest/googletest/scripts/README.md +5 -0
- package/cpp/leveldb/third_party/googletest/googletest/scripts/common.py +83 -0
- package/cpp/leveldb/third_party/googletest/googletest/scripts/fuse_gtest_files.py +253 -0
- package/cpp/leveldb/third_party/googletest/googletest/scripts/gen_gtest_pred_impl.py +734 -0
- package/cpp/leveldb/third_party/googletest/googletest/scripts/gtest-config.in +274 -0
- package/cpp/leveldb/third_party/googletest/googletest/scripts/release_docs.py +158 -0
- package/cpp/leveldb/third_party/googletest/googletest/scripts/run_with_path.py +32 -0
- package/cpp/leveldb/third_party/googletest/googletest/scripts/upload.py +1402 -0
- package/cpp/leveldb/third_party/googletest/googletest/scripts/upload_gtest.py +78 -0
- package/cpp/leveldb/third_party/googletest/googletest/src/gtest-all.cc +48 -0
- package/cpp/leveldb/third_party/googletest/googletest/src/gtest-death-test.cc +1653 -0
- package/cpp/leveldb/third_party/googletest/googletest/src/gtest-filepath.cc +382 -0
- package/cpp/leveldb/third_party/googletest/googletest/src/gtest-internal-inl.h +1211 -0
- package/cpp/leveldb/third_party/googletest/googletest/src/gtest-matchers.cc +97 -0
- package/cpp/leveldb/third_party/googletest/googletest/src/gtest-port.cc +1399 -0
- package/cpp/leveldb/third_party/googletest/googletest/src/gtest-printers.cc +442 -0
- package/cpp/leveldb/third_party/googletest/googletest/src/gtest-test-part.cc +108 -0
- package/cpp/leveldb/third_party/googletest/googletest/src/gtest-typed-test.cc +118 -0
- package/cpp/leveldb/third_party/googletest/googletest/src/gtest.cc +6180 -0
- package/cpp/leveldb/third_party/googletest/googletest/src/gtest_main.cc +54 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/BUILD.bazel +529 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/googletest-break-on-failure-unittest.py +208 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/googletest-break-on-failure-unittest_.cc +86 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/googletest-catch-exceptions-test.py +236 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/googletest-catch-exceptions-test_.cc +293 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/googletest-color-test.py +127 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/googletest-color-test_.cc +62 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/googletest-death-test-test.cc +1516 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/googletest-death-test_ex_test.cc +92 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/googletest-env-var-test.py +117 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/googletest-env-var-test_.cc +122 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/googletest-filepath-test.cc +649 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/googletest-filter-unittest.py +639 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/googletest-filter-unittest_.cc +137 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/googletest-json-outfiles-test.py +191 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/googletest-json-output-unittest.py +778 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/googletest-list-tests-unittest.py +205 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/googletest-list-tests-unittest_.cc +156 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/googletest-listener-test.cc +518 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/googletest-message-test.cc +158 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/googletest-options-test.cc +216 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/googletest-output-test-golden-lin.txt +1137 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/googletest-output-test.py +346 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/googletest-output-test_.cc +1149 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/googletest-param-test-invalid-name1-test.py +63 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/googletest-param-test-invalid-name1-test_.cc +50 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/googletest-param-test-invalid-name2-test.py +62 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/googletest-param-test-invalid-name2-test_.cc +55 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/googletest-param-test-test.cc +1086 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/googletest-param-test-test.h +51 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/googletest-param-test2-test.cc +61 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/googletest-port-test.cc +1272 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/googletest-printers-test.cc +1619 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/googletest-shuffle-test.py +323 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/googletest-shuffle-test_.cc +101 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/googletest-test-part-test.cc +230 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/googletest-test2_test.cc +61 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/googletest-throw-on-failure-test.py +168 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/googletest-throw-on-failure-test_.cc +71 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/googletest-uninitialized-test.py +67 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/googletest-uninitialized-test_.cc +42 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/gtest-typed-test2_test.cc +44 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/gtest-typed-test_test.cc +462 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/gtest-typed-test_test.h +65 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/gtest-unittest-api_test.cc +341 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/gtest_all_test.cc +46 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/gtest_assert_by_exception_test.cc +116 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/gtest_environment_test.cc +188 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/gtest_help_test.py +170 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/gtest_help_test_.cc +45 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/gtest_json_test_utils.py +60 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/gtest_list_output_unittest.py +141 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/gtest_list_output_unittest_.cc +51 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/gtest_main_unittest.cc +44 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/gtest_no_test_unittest.cc +54 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/gtest_pred_impl_unittest.cc +2427 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/gtest_premature_exit_test.cc +126 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/gtest_prod_test.cc +56 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/gtest_repeat_test.cc +233 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/gtest_skip_check_output_test.py +59 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/gtest_skip_environment_check_output_test.py +54 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/gtest_skip_in_environment_setup_test.cc +49 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/gtest_skip_test.cc +55 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/gtest_sole_header_test.cc +56 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/gtest_stress_test.cc +248 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/gtest_test_macro_stack_footprint_test.cc +89 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/gtest_test_utils.py +314 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/gtest_testbridge_test.py +63 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/gtest_testbridge_test_.cc +43 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/gtest_throw_on_failure_ex_test.cc +90 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/gtest_unittest.cc +7496 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/gtest_xml_outfile1_test_.cc +43 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/gtest_xml_outfile2_test_.cc +43 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/gtest_xml_outfiles_test.py +135 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/gtest_xml_output_unittest.py +389 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/gtest_xml_output_unittest_.cc +188 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/gtest_xml_test_utils.py +196 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/production.cc +35 -0
- package/cpp/leveldb/third_party/googletest/googletest/test/production.h +54 -0
- package/cpp/leveldb/third_party/googletest/library.json +66 -0
- package/cpp/leveldb/third_party/googletest/platformio.ini +47 -0
- package/cpp/leveldb/util/arena.cc +66 -0
- package/cpp/leveldb/util/arena.h +71 -0
- package/cpp/leveldb/util/arena_test.cc +66 -0
- package/cpp/leveldb/util/bloom.cc +92 -0
- package/cpp/leveldb/util/bloom_test.cc +159 -0
- package/cpp/leveldb/util/cache.cc +401 -0
- package/cpp/leveldb/util/cache_test.cc +229 -0
- package/cpp/leveldb/util/coding.cc +166 -0
- package/cpp/leveldb/util/coding.h +122 -0
- package/cpp/leveldb/util/coding_test.cc +198 -0
- package/cpp/leveldb/util/comparator.cc +75 -0
- package/cpp/leveldb/util/crc32c.cc +380 -0
- package/cpp/leveldb/util/crc32c.h +43 -0
- package/cpp/leveldb/util/crc32c_test.cc +61 -0
- package/cpp/leveldb/util/env.cc +108 -0
- package/cpp/leveldb/util/env_posix.cc +893 -0
- package/cpp/leveldb/util/env_posix_test.cc +353 -0
- package/cpp/leveldb/util/env_posix_test_helper.h +28 -0
- package/cpp/leveldb/util/env_test.cc +240 -0
- package/cpp/leveldb/util/env_windows.cc +796 -0
- package/cpp/leveldb/util/env_windows_test.cc +65 -0
- package/cpp/leveldb/util/env_windows_test_helper.h +25 -0
- package/cpp/leveldb/util/filter_policy.cc +11 -0
- package/cpp/leveldb/util/hash.cc +55 -0
- package/cpp/leveldb/util/hash.h +19 -0
- package/cpp/leveldb/util/hash_test.cc +46 -0
- package/cpp/leveldb/util/histogram.cc +272 -0
- package/cpp/leveldb/util/histogram.h +44 -0
- package/cpp/leveldb/util/logging.cc +82 -0
- package/cpp/leveldb/util/logging.h +44 -0
- package/cpp/leveldb/util/logging_test.cc +145 -0
- package/cpp/leveldb/util/mutexlock.h +39 -0
- package/cpp/leveldb/util/no_destructor.h +46 -0
- package/cpp/leveldb/util/no_destructor_test.cc +49 -0
- package/cpp/leveldb/util/options.cc +14 -0
- package/cpp/leveldb/util/posix_logger.h +130 -0
- package/cpp/leveldb/util/random.h +63 -0
- package/cpp/leveldb/util/status.cc +77 -0
- package/cpp/leveldb/util/status_test.cc +44 -0
- package/cpp/leveldb/util/testutil.cc +51 -0
- package/cpp/leveldb/util/testutil.h +82 -0
- package/cpp/leveldb/util/windows_logger.h +124 -0
- package/cpp/react-native-leveldb.cpp +694 -0
- package/cpp/react-native-leveldb.h +4 -0
- package/ios/Leveldb.h +9 -0
- package/ios/Leveldb.mm +35 -0
- package/ios/Leveldb.xcodeproj/project.pbxproj +288 -0
- package/lib/commonjs/fake.js +181 -0
- package/lib/commonjs/fake.js.map +1 -0
- package/lib/commonjs/fake.test.js +30 -0
- package/lib/commonjs/fake.test.js.map +1 -0
- package/lib/commonjs/index.js +172 -0
- package/lib/commonjs/index.js.map +1 -0
- package/lib/commonjs/package.json +1 -0
- package/lib/module/fake.js +171 -0
- package/lib/module/fake.js.map +1 -0
- package/lib/module/fake.test.js +30 -0
- package/lib/module/fake.test.js.map +1 -0
- package/lib/module/index.js +165 -0
- package/lib/module/index.js.map +1 -0
- package/lib/typescript/fake.d.ts +34 -0
- package/lib/typescript/fake.d.ts.map +1 -0
- package/lib/typescript/fake.test.d.ts +2 -0
- package/lib/typescript/fake.test.d.ts.map +1 -0
- package/lib/typescript/index.d.ts +72 -0
- package/lib/typescript/index.d.ts.map +1 -0
- package/package.json +157 -0
- package/rn-leveldb.podspec +30 -0
- package/src/fake.test.ts +37 -0
- package/src/fake.ts +203 -0
- package/src/index.ts +291 -0
|
@@ -0,0 +1,177 @@
|
|
|
1
|
+
// Copyright 2015 Google Inc. All rights reserved.
|
|
2
|
+
//
|
|
3
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
// you may not use this file except in compliance with the License.
|
|
5
|
+
// You may obtain a copy of the License at
|
|
6
|
+
//
|
|
7
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
//
|
|
9
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
// See the License for the specific language governing permissions and
|
|
13
|
+
// limitations under the License.
|
|
14
|
+
|
|
15
|
+
#include <algorithm>
|
|
16
|
+
#include <cstdint>
|
|
17
|
+
#include <cstdio>
|
|
18
|
+
#include <cstring>
|
|
19
|
+
#include <iostream>
|
|
20
|
+
#include <string>
|
|
21
|
+
#include <tuple>
|
|
22
|
+
#include <vector>
|
|
23
|
+
|
|
24
|
+
#include "benchmark/benchmark.h"
|
|
25
|
+
#include "check.h"
|
|
26
|
+
#include "colorprint.h"
|
|
27
|
+
#include "commandlineflags.h"
|
|
28
|
+
#include "complexity.h"
|
|
29
|
+
#include "counter.h"
|
|
30
|
+
#include "internal_macros.h"
|
|
31
|
+
#include "string_util.h"
|
|
32
|
+
#include "timers.h"
|
|
33
|
+
|
|
34
|
+
namespace benchmark {
|
|
35
|
+
|
|
36
|
+
bool ConsoleReporter::ReportContext(const Context& context) {
|
|
37
|
+
name_field_width_ = context.name_field_width;
|
|
38
|
+
printed_header_ = false;
|
|
39
|
+
prev_counters_.clear();
|
|
40
|
+
|
|
41
|
+
PrintBasicContext(&GetErrorStream(), context);
|
|
42
|
+
|
|
43
|
+
#ifdef BENCHMARK_OS_WINDOWS
|
|
44
|
+
if ((output_options_ & OO_Color) && &std::cout != &GetOutputStream()) {
|
|
45
|
+
GetErrorStream()
|
|
46
|
+
<< "Color printing is only supported for stdout on windows."
|
|
47
|
+
" Disabling color printing\n";
|
|
48
|
+
output_options_ = static_cast< OutputOptions >(output_options_ & ~OO_Color);
|
|
49
|
+
}
|
|
50
|
+
#endif
|
|
51
|
+
|
|
52
|
+
return true;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
void ConsoleReporter::PrintHeader(const Run& run) {
|
|
56
|
+
std::string str = FormatString("%-*s %13s %15s %12s", static_cast<int>(name_field_width_),
|
|
57
|
+
"Benchmark", "Time", "CPU", "Iterations");
|
|
58
|
+
if(!run.counters.empty()) {
|
|
59
|
+
if(output_options_ & OO_Tabular) {
|
|
60
|
+
for(auto const& c : run.counters) {
|
|
61
|
+
str += FormatString(" %10s", c.first.c_str());
|
|
62
|
+
}
|
|
63
|
+
} else {
|
|
64
|
+
str += " UserCounters...";
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
std::string line = std::string(str.length(), '-');
|
|
68
|
+
GetOutputStream() << line << "\n" << str << "\n" << line << "\n";
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
void ConsoleReporter::ReportRuns(const std::vector<Run>& reports) {
|
|
72
|
+
for (const auto& run : reports) {
|
|
73
|
+
// print the header:
|
|
74
|
+
// --- if none was printed yet
|
|
75
|
+
bool print_header = !printed_header_;
|
|
76
|
+
// --- or if the format is tabular and this run
|
|
77
|
+
// has different fields from the prev header
|
|
78
|
+
print_header |= (output_options_ & OO_Tabular) &&
|
|
79
|
+
(!internal::SameNames(run.counters, prev_counters_));
|
|
80
|
+
if (print_header) {
|
|
81
|
+
printed_header_ = true;
|
|
82
|
+
prev_counters_ = run.counters;
|
|
83
|
+
PrintHeader(run);
|
|
84
|
+
}
|
|
85
|
+
// As an alternative to printing the headers like this, we could sort
|
|
86
|
+
// the benchmarks by header and then print. But this would require
|
|
87
|
+
// waiting for the full results before printing, or printing twice.
|
|
88
|
+
PrintRunData(run);
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
static void IgnoreColorPrint(std::ostream& out, LogColor, const char* fmt,
|
|
93
|
+
...) {
|
|
94
|
+
va_list args;
|
|
95
|
+
va_start(args, fmt);
|
|
96
|
+
out << FormatString(fmt, args);
|
|
97
|
+
va_end(args);
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
|
|
101
|
+
static std::string FormatTime(double time) {
|
|
102
|
+
// Align decimal places...
|
|
103
|
+
if (time < 1.0) {
|
|
104
|
+
return FormatString("%10.3f", time);
|
|
105
|
+
}
|
|
106
|
+
if (time < 10.0) {
|
|
107
|
+
return FormatString("%10.2f", time);
|
|
108
|
+
}
|
|
109
|
+
if (time < 100.0) {
|
|
110
|
+
return FormatString("%10.1f", time);
|
|
111
|
+
}
|
|
112
|
+
return FormatString("%10.0f", time);
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
void ConsoleReporter::PrintRunData(const Run& result) {
|
|
116
|
+
typedef void(PrinterFn)(std::ostream&, LogColor, const char*, ...);
|
|
117
|
+
auto& Out = GetOutputStream();
|
|
118
|
+
PrinterFn* printer = (output_options_ & OO_Color) ?
|
|
119
|
+
(PrinterFn*)ColorPrintf : IgnoreColorPrint;
|
|
120
|
+
auto name_color =
|
|
121
|
+
(result.report_big_o || result.report_rms) ? COLOR_BLUE : COLOR_GREEN;
|
|
122
|
+
printer(Out, name_color, "%-*s ", name_field_width_,
|
|
123
|
+
result.benchmark_name().c_str());
|
|
124
|
+
|
|
125
|
+
if (result.error_occurred) {
|
|
126
|
+
printer(Out, COLOR_RED, "ERROR OCCURRED: \'%s\'",
|
|
127
|
+
result.error_message.c_str());
|
|
128
|
+
printer(Out, COLOR_DEFAULT, "\n");
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
const double real_time = result.GetAdjustedRealTime();
|
|
133
|
+
const double cpu_time = result.GetAdjustedCPUTime();
|
|
134
|
+
const std::string real_time_str = FormatTime(real_time);
|
|
135
|
+
const std::string cpu_time_str = FormatTime(cpu_time);
|
|
136
|
+
|
|
137
|
+
|
|
138
|
+
if (result.report_big_o) {
|
|
139
|
+
std::string big_o = GetBigOString(result.complexity);
|
|
140
|
+
printer(Out, COLOR_YELLOW, "%10.2f %-4s %10.2f %-4s ", real_time, big_o.c_str(),
|
|
141
|
+
cpu_time, big_o.c_str());
|
|
142
|
+
} else if (result.report_rms) {
|
|
143
|
+
printer(Out, COLOR_YELLOW, "%10.0f %-4s %10.0f %-4s ", real_time * 100, "%",
|
|
144
|
+
cpu_time * 100, "%");
|
|
145
|
+
} else {
|
|
146
|
+
const char* timeLabel = GetTimeUnitString(result.time_unit);
|
|
147
|
+
printer(Out, COLOR_YELLOW, "%s %-4s %s %-4s ", real_time_str.c_str(), timeLabel,
|
|
148
|
+
cpu_time_str.c_str(), timeLabel);
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
if (!result.report_big_o && !result.report_rms) {
|
|
152
|
+
printer(Out, COLOR_CYAN, "%10lld", result.iterations);
|
|
153
|
+
}
|
|
154
|
+
|
|
155
|
+
for (auto& c : result.counters) {
|
|
156
|
+
const std::size_t cNameLen = std::max(std::string::size_type(10),
|
|
157
|
+
c.first.length());
|
|
158
|
+
auto const& s = HumanReadableNumber(c.second.value, c.second.oneK);
|
|
159
|
+
const char* unit = "";
|
|
160
|
+
if (c.second.flags & Counter::kIsRate)
|
|
161
|
+
unit = (c.second.flags & Counter::kInvert) ? "s" : "/s";
|
|
162
|
+
if (output_options_ & OO_Tabular) {
|
|
163
|
+
printer(Out, COLOR_DEFAULT, " %*s%s", cNameLen - strlen(unit), s.c_str(),
|
|
164
|
+
unit);
|
|
165
|
+
} else {
|
|
166
|
+
printer(Out, COLOR_DEFAULT, " %s=%s%s", c.first.c_str(), s.c_str(), unit);
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
if (!result.report_label.empty()) {
|
|
171
|
+
printer(Out, COLOR_DEFAULT, " %s", result.report_label.c_str());
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
printer(Out, COLOR_DEFAULT, "\n");
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
} // end namespace benchmark
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
// Copyright 2015 Google Inc. All rights reserved.
|
|
2
|
+
//
|
|
3
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
// you may not use this file except in compliance with the License.
|
|
5
|
+
// You may obtain a copy of the License at
|
|
6
|
+
//
|
|
7
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
//
|
|
9
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
// See the License for the specific language governing permissions and
|
|
13
|
+
// limitations under the License.
|
|
14
|
+
|
|
15
|
+
#include "counter.h"
|
|
16
|
+
|
|
17
|
+
namespace benchmark {
|
|
18
|
+
namespace internal {
|
|
19
|
+
|
|
20
|
+
double Finish(Counter const& c, IterationCount iterations, double cpu_time,
|
|
21
|
+
double num_threads) {
|
|
22
|
+
double v = c.value;
|
|
23
|
+
if (c.flags & Counter::kIsRate) {
|
|
24
|
+
v /= cpu_time;
|
|
25
|
+
}
|
|
26
|
+
if (c.flags & Counter::kAvgThreads) {
|
|
27
|
+
v /= num_threads;
|
|
28
|
+
}
|
|
29
|
+
if (c.flags & Counter::kIsIterationInvariant) {
|
|
30
|
+
v *= iterations;
|
|
31
|
+
}
|
|
32
|
+
if (c.flags & Counter::kAvgIterations) {
|
|
33
|
+
v /= iterations;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
if (c.flags & Counter::kInvert) { // Invert is *always* last.
|
|
37
|
+
v = 1.0 / v;
|
|
38
|
+
}
|
|
39
|
+
return v;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
void Finish(UserCounters* l, IterationCount iterations, double cpu_time,
|
|
43
|
+
double num_threads) {
|
|
44
|
+
for (auto& c : *l) {
|
|
45
|
+
c.second.value = Finish(c.second, iterations, cpu_time, num_threads);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
void Increment(UserCounters* l, UserCounters const& r) {
|
|
50
|
+
// add counters present in both or just in *l
|
|
51
|
+
for (auto& c : *l) {
|
|
52
|
+
auto it = r.find(c.first);
|
|
53
|
+
if (it != r.end()) {
|
|
54
|
+
c.second.value = c.second + it->second;
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
// add counters present in r, but not in *l
|
|
58
|
+
for (auto const& tc : r) {
|
|
59
|
+
auto it = l->find(tc.first);
|
|
60
|
+
if (it == l->end()) {
|
|
61
|
+
(*l)[tc.first] = tc.second;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
bool SameNames(UserCounters const& l, UserCounters const& r) {
|
|
67
|
+
if (&l == &r) return true;
|
|
68
|
+
if (l.size() != r.size()) {
|
|
69
|
+
return false;
|
|
70
|
+
}
|
|
71
|
+
for (auto const& c : l) {
|
|
72
|
+
if (r.find(c.first) == r.end()) {
|
|
73
|
+
return false;
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
return true;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
} // end namespace internal
|
|
80
|
+
} // end namespace benchmark
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
// Copyright 2015 Google Inc. All rights reserved.
|
|
2
|
+
//
|
|
3
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
// you may not use this file except in compliance with the License.
|
|
5
|
+
// You may obtain a copy of the License at
|
|
6
|
+
//
|
|
7
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
//
|
|
9
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
// See the License for the specific language governing permissions and
|
|
13
|
+
// limitations under the License.
|
|
14
|
+
|
|
15
|
+
#ifndef BENCHMARK_COUNTER_H_
|
|
16
|
+
#define BENCHMARK_COUNTER_H_
|
|
17
|
+
|
|
18
|
+
#include "benchmark/benchmark.h"
|
|
19
|
+
|
|
20
|
+
namespace benchmark {
|
|
21
|
+
|
|
22
|
+
// these counter-related functions are hidden to reduce API surface.
|
|
23
|
+
namespace internal {
|
|
24
|
+
void Finish(UserCounters* l, IterationCount iterations, double time,
|
|
25
|
+
double num_threads);
|
|
26
|
+
void Increment(UserCounters* l, UserCounters const& r);
|
|
27
|
+
bool SameNames(UserCounters const& l, UserCounters const& r);
|
|
28
|
+
} // end namespace internal
|
|
29
|
+
|
|
30
|
+
} // end namespace benchmark
|
|
31
|
+
|
|
32
|
+
#endif // BENCHMARK_COUNTER_H_
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
// Copyright 2015 Google Inc. All rights reserved.
|
|
2
|
+
//
|
|
3
|
+
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
+
// you may not use this file except in compliance with the License.
|
|
5
|
+
// You may obtain a copy of the License at
|
|
6
|
+
//
|
|
7
|
+
// http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
+
//
|
|
9
|
+
// Unless required by applicable law or agreed to in writing, software
|
|
10
|
+
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
+
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
+
// See the License for the specific language governing permissions and
|
|
13
|
+
// limitations under the License.
|
|
14
|
+
|
|
15
|
+
#include "benchmark/benchmark.h"
|
|
16
|
+
#include "complexity.h"
|
|
17
|
+
|
|
18
|
+
#include <algorithm>
|
|
19
|
+
#include <cstdint>
|
|
20
|
+
#include <iostream>
|
|
21
|
+
#include <string>
|
|
22
|
+
#include <tuple>
|
|
23
|
+
#include <vector>
|
|
24
|
+
|
|
25
|
+
#include "check.h"
|
|
26
|
+
#include "string_util.h"
|
|
27
|
+
#include "timers.h"
|
|
28
|
+
|
|
29
|
+
// File format reference: http://edoceo.com/utilitas/csv-file-format.
|
|
30
|
+
|
|
31
|
+
namespace benchmark {
|
|
32
|
+
|
|
33
|
+
namespace {
|
|
34
|
+
std::vector<std::string> elements = {
|
|
35
|
+
"name", "iterations", "real_time", "cpu_time",
|
|
36
|
+
"time_unit", "bytes_per_second", "items_per_second", "label",
|
|
37
|
+
"error_occurred", "error_message"};
|
|
38
|
+
} // namespace
|
|
39
|
+
|
|
40
|
+
std::string CsvEscape(const std::string & s) {
|
|
41
|
+
std::string tmp;
|
|
42
|
+
tmp.reserve(s.size() + 2);
|
|
43
|
+
for (char c : s) {
|
|
44
|
+
switch (c) {
|
|
45
|
+
case '"' : tmp += "\"\""; break;
|
|
46
|
+
default : tmp += c; break;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
return '"' + tmp + '"';
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
bool CSVReporter::ReportContext(const Context& context) {
|
|
53
|
+
PrintBasicContext(&GetErrorStream(), context);
|
|
54
|
+
return true;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
void CSVReporter::ReportRuns(const std::vector<Run>& reports) {
|
|
58
|
+
std::ostream& Out = GetOutputStream();
|
|
59
|
+
|
|
60
|
+
if (!printed_header_) {
|
|
61
|
+
// save the names of all the user counters
|
|
62
|
+
for (const auto& run : reports) {
|
|
63
|
+
for (const auto& cnt : run.counters) {
|
|
64
|
+
if (cnt.first == "bytes_per_second" || cnt.first == "items_per_second")
|
|
65
|
+
continue;
|
|
66
|
+
user_counter_names_.insert(cnt.first);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
// print the header
|
|
71
|
+
for (auto B = elements.begin(); B != elements.end();) {
|
|
72
|
+
Out << *B++;
|
|
73
|
+
if (B != elements.end()) Out << ",";
|
|
74
|
+
}
|
|
75
|
+
for (auto B = user_counter_names_.begin();
|
|
76
|
+
B != user_counter_names_.end();) {
|
|
77
|
+
Out << ",\"" << *B++ << "\"";
|
|
78
|
+
}
|
|
79
|
+
Out << "\n";
|
|
80
|
+
|
|
81
|
+
printed_header_ = true;
|
|
82
|
+
} else {
|
|
83
|
+
// check that all the current counters are saved in the name set
|
|
84
|
+
for (const auto& run : reports) {
|
|
85
|
+
for (const auto& cnt : run.counters) {
|
|
86
|
+
if (cnt.first == "bytes_per_second" || cnt.first == "items_per_second")
|
|
87
|
+
continue;
|
|
88
|
+
CHECK(user_counter_names_.find(cnt.first) != user_counter_names_.end())
|
|
89
|
+
<< "All counters must be present in each run. "
|
|
90
|
+
<< "Counter named \"" << cnt.first
|
|
91
|
+
<< "\" was not in a run after being added to the header";
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
// print results for each run
|
|
97
|
+
for (const auto& run : reports) {
|
|
98
|
+
PrintRunData(run);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
void CSVReporter::PrintRunData(const Run& run) {
|
|
103
|
+
std::ostream& Out = GetOutputStream();
|
|
104
|
+
Out << CsvEscape(run.benchmark_name()) << ",";
|
|
105
|
+
if (run.error_occurred) {
|
|
106
|
+
Out << std::string(elements.size() - 3, ',');
|
|
107
|
+
Out << "true,";
|
|
108
|
+
Out << CsvEscape(run.error_message) << "\n";
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
// Do not print iteration on bigO and RMS report
|
|
113
|
+
if (!run.report_big_o && !run.report_rms) {
|
|
114
|
+
Out << run.iterations;
|
|
115
|
+
}
|
|
116
|
+
Out << ",";
|
|
117
|
+
|
|
118
|
+
Out << run.GetAdjustedRealTime() << ",";
|
|
119
|
+
Out << run.GetAdjustedCPUTime() << ",";
|
|
120
|
+
|
|
121
|
+
// Do not print timeLabel on bigO and RMS report
|
|
122
|
+
if (run.report_big_o) {
|
|
123
|
+
Out << GetBigOString(run.complexity);
|
|
124
|
+
} else if (!run.report_rms) {
|
|
125
|
+
Out << GetTimeUnitString(run.time_unit);
|
|
126
|
+
}
|
|
127
|
+
Out << ",";
|
|
128
|
+
|
|
129
|
+
if (run.counters.find("bytes_per_second") != run.counters.end()) {
|
|
130
|
+
Out << run.counters.at("bytes_per_second");
|
|
131
|
+
}
|
|
132
|
+
Out << ",";
|
|
133
|
+
if (run.counters.find("items_per_second") != run.counters.end()) {
|
|
134
|
+
Out << run.counters.at("items_per_second");
|
|
135
|
+
}
|
|
136
|
+
Out << ",";
|
|
137
|
+
if (!run.report_label.empty()) {
|
|
138
|
+
Out << CsvEscape(run.report_label);
|
|
139
|
+
}
|
|
140
|
+
Out << ",,"; // for error_occurred and error_message
|
|
141
|
+
|
|
142
|
+
// Print user counters
|
|
143
|
+
for (const auto& ucn : user_counter_names_) {
|
|
144
|
+
auto it = run.counters.find(ucn);
|
|
145
|
+
if (it == run.counters.end()) {
|
|
146
|
+
Out << ",";
|
|
147
|
+
} else {
|
|
148
|
+
Out << "," << it->second;
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
Out << '\n';
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
} // end namespace benchmark
|
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
// ----------------------------------------------------------------------
|
|
2
|
+
// CycleClock
|
|
3
|
+
// A CycleClock tells you the current time in Cycles. The "time"
|
|
4
|
+
// is actually time since power-on. This is like time() but doesn't
|
|
5
|
+
// involve a system call and is much more precise.
|
|
6
|
+
//
|
|
7
|
+
// NOTE: Not all cpu/platform/kernel combinations guarantee that this
|
|
8
|
+
// clock increments at a constant rate or is synchronized across all logical
|
|
9
|
+
// cpus in a system.
|
|
10
|
+
//
|
|
11
|
+
// If you need the above guarantees, please consider using a different
|
|
12
|
+
// API. There are efforts to provide an interface which provides a millisecond
|
|
13
|
+
// granularity and implemented as a memory read. A memory read is generally
|
|
14
|
+
// cheaper than the CycleClock for many architectures.
|
|
15
|
+
//
|
|
16
|
+
// Also, in some out of order CPU implementations, the CycleClock is not
|
|
17
|
+
// serializing. So if you're trying to count at cycles granularity, your
|
|
18
|
+
// data might be inaccurate due to out of order instruction execution.
|
|
19
|
+
// ----------------------------------------------------------------------
|
|
20
|
+
|
|
21
|
+
#ifndef BENCHMARK_CYCLECLOCK_H_
|
|
22
|
+
#define BENCHMARK_CYCLECLOCK_H_
|
|
23
|
+
|
|
24
|
+
#include <cstdint>
|
|
25
|
+
|
|
26
|
+
#include "benchmark/benchmark.h"
|
|
27
|
+
#include "internal_macros.h"
|
|
28
|
+
|
|
29
|
+
#if defined(BENCHMARK_OS_MACOSX)
|
|
30
|
+
#include <mach/mach_time.h>
|
|
31
|
+
#endif
|
|
32
|
+
// For MSVC, we want to use '_asm rdtsc' when possible (since it works
|
|
33
|
+
// with even ancient MSVC compilers), and when not possible the
|
|
34
|
+
// __rdtsc intrinsic, declared in <intrin.h>. Unfortunately, in some
|
|
35
|
+
// environments, <windows.h> and <intrin.h> have conflicting
|
|
36
|
+
// declarations of some other intrinsics, breaking compilation.
|
|
37
|
+
// Therefore, we simply declare __rdtsc ourselves. See also
|
|
38
|
+
// http://connect.microsoft.com/VisualStudio/feedback/details/262047
|
|
39
|
+
#if defined(COMPILER_MSVC) && !defined(_M_IX86)
|
|
40
|
+
extern "C" uint64_t __rdtsc();
|
|
41
|
+
#pragma intrinsic(__rdtsc)
|
|
42
|
+
#endif
|
|
43
|
+
|
|
44
|
+
#if !defined(BENCHMARK_OS_WINDOWS) || defined(BENCHMARK_OS_MINGW)
|
|
45
|
+
#include <sys/time.h>
|
|
46
|
+
#include <time.h>
|
|
47
|
+
#endif
|
|
48
|
+
|
|
49
|
+
#ifdef BENCHMARK_OS_EMSCRIPTEN
|
|
50
|
+
#include <emscripten.h>
|
|
51
|
+
#endif
|
|
52
|
+
|
|
53
|
+
namespace benchmark {
|
|
54
|
+
// NOTE: only i386 and x86_64 have been well tested.
|
|
55
|
+
// PPC, sparc, alpha, and ia64 are based on
|
|
56
|
+
// http://peter.kuscsik.com/wordpress/?p=14
|
|
57
|
+
// with modifications by m3b. See also
|
|
58
|
+
// https://setisvn.ssl.berkeley.edu/svn/lib/fftw-3.0.1/kernel/cycle.h
|
|
59
|
+
namespace cycleclock {
|
|
60
|
+
// This should return the number of cycles since power-on. Thread-safe.
|
|
61
|
+
inline BENCHMARK_ALWAYS_INLINE int64_t Now() {
|
|
62
|
+
#if defined(BENCHMARK_OS_MACOSX)
|
|
63
|
+
// this goes at the top because we need ALL Macs, regardless of
|
|
64
|
+
// architecture, to return the number of "mach time units" that
|
|
65
|
+
// have passed since startup. See sysinfo.cc where
|
|
66
|
+
// InitializeSystemInfo() sets the supposed cpu clock frequency of
|
|
67
|
+
// macs to the number of mach time units per second, not actual
|
|
68
|
+
// CPU clock frequency (which can change in the face of CPU
|
|
69
|
+
// frequency scaling). Also note that when the Mac sleeps, this
|
|
70
|
+
// counter pauses; it does not continue counting, nor does it
|
|
71
|
+
// reset to zero.
|
|
72
|
+
return mach_absolute_time();
|
|
73
|
+
#elif defined(BENCHMARK_OS_EMSCRIPTEN)
|
|
74
|
+
// this goes above x86-specific code because old versions of Emscripten
|
|
75
|
+
// define __x86_64__, although they have nothing to do with it.
|
|
76
|
+
return static_cast<int64_t>(emscripten_get_now() * 1e+6);
|
|
77
|
+
#elif defined(__i386__)
|
|
78
|
+
int64_t ret;
|
|
79
|
+
__asm__ volatile("rdtsc" : "=A"(ret));
|
|
80
|
+
return ret;
|
|
81
|
+
#elif defined(__x86_64__) || defined(__amd64__)
|
|
82
|
+
uint64_t low, high;
|
|
83
|
+
__asm__ volatile("rdtsc" : "=a"(low), "=d"(high));
|
|
84
|
+
return (high << 32) | low;
|
|
85
|
+
#elif defined(__powerpc__) || defined(__ppc__)
|
|
86
|
+
// This returns a time-base, which is not always precisely a cycle-count.
|
|
87
|
+
#if defined(__powerpc64__) || defined(__ppc64__)
|
|
88
|
+
int64_t tb;
|
|
89
|
+
asm volatile("mfspr %0, 268" : "=r"(tb));
|
|
90
|
+
return tb;
|
|
91
|
+
#else
|
|
92
|
+
uint32_t tbl, tbu0, tbu1;
|
|
93
|
+
asm volatile(
|
|
94
|
+
"mftbu %0\n"
|
|
95
|
+
"mftb %1\n"
|
|
96
|
+
"mftbu %2"
|
|
97
|
+
: "=r"(tbu0), "=r"(tbl), "=r"(tbu1));
|
|
98
|
+
tbl &= -static_cast<int32_t>(tbu0 == tbu1);
|
|
99
|
+
// high 32 bits in tbu1; low 32 bits in tbl (tbu0 is no longer needed)
|
|
100
|
+
return (static_cast<uint64_t>(tbu1) << 32) | tbl;
|
|
101
|
+
#endif
|
|
102
|
+
#elif defined(__sparc__)
|
|
103
|
+
int64_t tick;
|
|
104
|
+
asm(".byte 0x83, 0x41, 0x00, 0x00");
|
|
105
|
+
asm("mov %%g1, %0" : "=r"(tick));
|
|
106
|
+
return tick;
|
|
107
|
+
#elif defined(__ia64__)
|
|
108
|
+
int64_t itc;
|
|
109
|
+
asm("mov %0 = ar.itc" : "=r"(itc));
|
|
110
|
+
return itc;
|
|
111
|
+
#elif defined(COMPILER_MSVC) && defined(_M_IX86)
|
|
112
|
+
// Older MSVC compilers (like 7.x) don't seem to support the
|
|
113
|
+
// __rdtsc intrinsic properly, so I prefer to use _asm instead
|
|
114
|
+
// when I know it will work. Otherwise, I'll use __rdtsc and hope
|
|
115
|
+
// the code is being compiled with a non-ancient compiler.
|
|
116
|
+
_asm rdtsc
|
|
117
|
+
#elif defined(COMPILER_MSVC)
|
|
118
|
+
return __rdtsc();
|
|
119
|
+
#elif defined(BENCHMARK_OS_NACL)
|
|
120
|
+
// Native Client validator on x86/x86-64 allows RDTSC instructions,
|
|
121
|
+
// and this case is handled above. Native Client validator on ARM
|
|
122
|
+
// rejects MRC instructions (used in the ARM-specific sequence below),
|
|
123
|
+
// so we handle it here. Portable Native Client compiles to
|
|
124
|
+
// architecture-agnostic bytecode, which doesn't provide any
|
|
125
|
+
// cycle counter access mnemonics.
|
|
126
|
+
|
|
127
|
+
// Native Client does not provide any API to access cycle counter.
|
|
128
|
+
// Use clock_gettime(CLOCK_MONOTONIC, ...) instead of gettimeofday
|
|
129
|
+
// because is provides nanosecond resolution (which is noticable at
|
|
130
|
+
// least for PNaCl modules running on x86 Mac & Linux).
|
|
131
|
+
// Initialize to always return 0 if clock_gettime fails.
|
|
132
|
+
struct timespec ts = {0, 0};
|
|
133
|
+
clock_gettime(CLOCK_MONOTONIC, &ts);
|
|
134
|
+
return static_cast<int64_t>(ts.tv_sec) * 1000000000 + ts.tv_nsec;
|
|
135
|
+
#elif defined(__aarch64__)
|
|
136
|
+
// System timer of ARMv8 runs at a different frequency than the CPU's.
|
|
137
|
+
// The frequency is fixed, typically in the range 1-50MHz. It can be
|
|
138
|
+
// read at CNTFRQ special register. We assume the OS has set up
|
|
139
|
+
// the virtual timer properly.
|
|
140
|
+
int64_t virtual_timer_value;
|
|
141
|
+
asm volatile("mrs %0, cntvct_el0" : "=r"(virtual_timer_value));
|
|
142
|
+
return virtual_timer_value;
|
|
143
|
+
#elif defined(__ARM_ARCH)
|
|
144
|
+
// V6 is the earliest arch that has a standard cyclecount
|
|
145
|
+
// Native Client validator doesn't allow MRC instructions.
|
|
146
|
+
#if (__ARM_ARCH >= 6)
|
|
147
|
+
uint32_t pmccntr;
|
|
148
|
+
uint32_t pmuseren;
|
|
149
|
+
uint32_t pmcntenset;
|
|
150
|
+
// Read the user mode perf monitor counter access permissions.
|
|
151
|
+
asm volatile("mrc p15, 0, %0, c9, c14, 0" : "=r"(pmuseren));
|
|
152
|
+
if (pmuseren & 1) { // Allows reading perfmon counters for user mode code.
|
|
153
|
+
asm volatile("mrc p15, 0, %0, c9, c12, 1" : "=r"(pmcntenset));
|
|
154
|
+
if (pmcntenset & 0x80000000ul) { // Is it counting?
|
|
155
|
+
asm volatile("mrc p15, 0, %0, c9, c13, 0" : "=r"(pmccntr));
|
|
156
|
+
// The counter is set up to count every 64th cycle
|
|
157
|
+
return static_cast<int64_t>(pmccntr) * 64; // Should optimize to << 6
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
#endif
|
|
161
|
+
struct timeval tv;
|
|
162
|
+
gettimeofday(&tv, nullptr);
|
|
163
|
+
return static_cast<int64_t>(tv.tv_sec) * 1000000 + tv.tv_usec;
|
|
164
|
+
#elif defined(__mips__) || defined(__m68k__)
|
|
165
|
+
// mips apparently only allows rdtsc for superusers, so we fall
|
|
166
|
+
// back to gettimeofday. It's possible clock_gettime would be better.
|
|
167
|
+
struct timeval tv;
|
|
168
|
+
gettimeofday(&tv, nullptr);
|
|
169
|
+
return static_cast<int64_t>(tv.tv_sec) * 1000000 + tv.tv_usec;
|
|
170
|
+
#elif defined(__s390__) // Covers both s390 and s390x.
|
|
171
|
+
// Return the CPU clock.
|
|
172
|
+
uint64_t tsc;
|
|
173
|
+
#if defined(BENCHMARK_OS_ZOS) && defined(COMPILER_IBMXL)
|
|
174
|
+
// z/OS XL compiler HLASM syntax.
|
|
175
|
+
asm(" stck %0" : "=m"(tsc) : : "cc");
|
|
176
|
+
#else
|
|
177
|
+
asm("stck %0" : "=Q"(tsc) : : "cc");
|
|
178
|
+
#endif
|
|
179
|
+
return tsc;
|
|
180
|
+
#elif defined(__riscv) // RISC-V
|
|
181
|
+
// Use RDCYCLE (and RDCYCLEH on riscv32)
|
|
182
|
+
#if __riscv_xlen == 32
|
|
183
|
+
uint32_t cycles_lo, cycles_hi0, cycles_hi1;
|
|
184
|
+
// This asm also includes the PowerPC overflow handling strategy, as above.
|
|
185
|
+
// Implemented in assembly because Clang insisted on branching.
|
|
186
|
+
asm volatile(
|
|
187
|
+
"rdcycleh %0\n"
|
|
188
|
+
"rdcycle %1\n"
|
|
189
|
+
"rdcycleh %2\n"
|
|
190
|
+
"sub %0, %0, %2\n"
|
|
191
|
+
"seqz %0, %0\n"
|
|
192
|
+
"sub %0, zero, %0\n"
|
|
193
|
+
"and %1, %1, %0\n"
|
|
194
|
+
: "=r"(cycles_hi0), "=r"(cycles_lo), "=r"(cycles_hi1));
|
|
195
|
+
return (static_cast<uint64_t>(cycles_hi1) << 32) | cycles_lo;
|
|
196
|
+
#else
|
|
197
|
+
uint64_t cycles;
|
|
198
|
+
asm volatile("rdcycle %0" : "=r"(cycles));
|
|
199
|
+
return cycles;
|
|
200
|
+
#endif
|
|
201
|
+
#else
|
|
202
|
+
// The soft failover to a generic implementation is automatic only for ARM.
|
|
203
|
+
// For other platforms the developer is expected to make an attempt to create
|
|
204
|
+
// a fast implementation and use generic version if nothing better is available.
|
|
205
|
+
#error You need to define CycleTimer for your OS and CPU
|
|
206
|
+
#endif
|
|
207
|
+
}
|
|
208
|
+
} // end namespace cycleclock
|
|
209
|
+
} // end namespace benchmark
|
|
210
|
+
|
|
211
|
+
#endif // BENCHMARK_CYCLECLOCK_H_
|