diff options
author | 2018-12-20 12:29:59 -0800 | |
---|---|---|
committer | 2018-12-21 14:43:20 -0500 | |
commit | 968a34ffdaadd7db062a9621dfbdf8b2d16e05af (patch) | |
tree | 6db3f5237087d2c51b264ecb33cd57f1e17b69b9 /absl/container/internal/raw_hash_set_test.cc | |
parent | 3e2e9b5557e76d098de4b8a2a659125b98ca519b (diff) |
Export of internal Abseil changes.
--
7fa1107161a03dac53fb84c2b06d8092616c7b13 by Abseil Team <absl-team@google.com>:
Harden the generic stacktrace implementation for use during early program execution
PiperOrigin-RevId: 226375950
--
079f9969329f5eb66f647dd3c44b17541b1bf217 by Matt Kulukundis <kfm@google.com>:
Workaround platforms that have over-aggressive warnings on -Wexit-time-destructors
PiperOrigin-RevId: 226362948
--
1447943f509be681ca5495add0162c750ef237f1 by Matt Kulukundis <kfm@google.com>:
Switch from 64 to size_t atomics so they work on embedded platforms that do not
have 64 bit atomics.
PiperOrigin-RevId: 226210704
--
d14d49837ae2bcde74051e0c79c18ee0f43866b9 by Tom Manshreck <shreck@google.com>:
Develop initial documentation for API breaking changes process:
PiperOrigin-RevId: 226210021
--
7ea3d7fe0e86979dab83a5fc9cc3bf1d6cb3bd53 by Abseil Team <absl-team@google.com>:
Import of CCTZ from GitHub.
PiperOrigin-RevId: 226195522
--
7de873e880d7f016a4fa1e08d626f0535cc470af by Abseil Team <absl-team@google.com>:
Make Abseil LICENSE files newline terminated, with a single
trailing blank line. Also remove line-ending whitespace.
PiperOrigin-RevId: 226182949
--
7d00643fadfad7f0d992c68bd9d2ed2e5bc960b0 by Matt Kulukundis <kfm@google.com>:
Internal cleanup
PiperOrigin-RevId: 226045282
--
c4a0a11c0ce2875271191e477f3d36eaaeca4613 by Matt Kulukundis <kfm@google.com>:
Internal cleanup
PiperOrigin-RevId: 226038273
--
8ee4ebbb1ae5cda119e436e5ff7e3aa966608c10 by Matt Kulukundis <kfm@google.com>:
Adds a global sampler which tracks a fraction of live tables for collecting
telemetry data.
PiperOrigin-RevId: 226032080
--
d576446f050518cd1b0ae447d682d8552f0e7e30 by Mark Barolak <mbar@google.com>:
Replace an internal CaseEqual function with calls to the identical absl::EqualsIgnoreCase. This closes out a rather old TODO.
PiperOrigin-RevId: 226024779
--
6b23f1ee028a5ffa608c920424f1220a117a8f3d by Abseil Team <absl-team@google.com>:
Add December 2018 LTS branch to list of LTS branches.
PiperOrigin-RevId: 226011333
--
bb0833a43bdaef4c8c059b17bcd27ba9a085a114 by Mark Barolak <mbar@google.com>:
Explicitly state that when the SimpleAtoi family of functions encounter an error, the value of their output parameter is unspecified.
Also standardize the name of the output parameter to be `out`.
PiperOrigin-RevId: 225997035
--
46c1876b1a248eabda7545daa61a74a4cdfe9077 by Abseil Team <absl-team@google.com>:
Remove deprecated CMake function absl_test, absl_library and absl_header_library
PiperOrigin-RevId: 225950041
GitOrigin-RevId: 7fa1107161a03dac53fb84c2b06d8092616c7b13
Change-Id: I2ca9d3aada9292614527d1339a7557494139b806
Diffstat (limited to 'absl/container/internal/raw_hash_set_test.cc')
-rw-r--r-- | absl/container/internal/raw_hash_set_test.cc | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/absl/container/internal/raw_hash_set_test.cc b/absl/container/internal/raw_hash_set_test.cc index 5ad4904f..78b62755 100644 --- a/absl/container/internal/raw_hash_set_test.cc +++ b/absl/container/internal/raw_hash_set_test.cc @@ -342,6 +342,7 @@ TEST(Table, EmptyFunctorOptimization) { size_t size; size_t capacity; size_t growth_left; + void* infoz; }; struct StatelessHash { size_t operator()(absl::string_view) const { return 0; } @@ -1798,6 +1799,27 @@ TEST(TableDeathTest, EraseOfEndAsserts) { EXPECT_DEATH_IF_SUPPORTED(t.erase(t.end()), kDeathMsg); } +TEST(RawHashSamplerTest, Sample) { + // Enable the feature even if the prod default is off. + SetHashtablezEnabled(true); + SetHashtablezSampleParameter(100); + + auto& sampler = HashtablezSampler::Global(); + size_t start_size = 0; + start_size += sampler.Iterate([&](const HashtablezInfo&) { ++start_size; }); + + std::vector<IntTable> tables; + for (int i = 0; i < 1000000; ++i) { + tables.emplace_back(); + tables.back().insert(1); + } + size_t end_size = 0; + end_size += sampler.Iterate([&](const HashtablezInfo&) { ++end_size; }); + + EXPECT_NEAR((end_size - start_size) / static_cast<double>(tables.size()), + 0.01, 0.005); +} + #ifdef ADDRESS_SANITIZER TEST(Sanitizer, PoisoningUnused) { IntTable t; |