// Copyright 2019 The Abseil Authors. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // https://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. #include "absl/strings/internal/cordz_functions.h" #include <thread> // NOLINT we need real clean new threads #include "gmock/gmock.h" #include "gtest/gtest.h" #include "absl/base/config.h" namespace absl { ABSL_NAMESPACE_BEGIN namespace cord_internal { namespace { Eq; Ge; Le; TEST(CordzFunctionsTest, SampleRate) { … } // Cordz is disabled when we don't have thread_local. All calls to // should_profile will return false when cordz is disabled, so we might want to // avoid those tests. #ifdef ABSL_INTERNAL_CORDZ_ENABLED TEST(CordzFunctionsTest, ShouldProfileDisable) { … } TEST(CordzFunctionsTest, ShouldProfileAlways) { … } TEST(CordzFunctionsTest, DoesNotAlwaysSampleFirstCord) { … } TEST(CordzFunctionsTest, ShouldProfileRate) { … } #else // ABSL_INTERNAL_CORDZ_ENABLED TEST(CordzFunctionsTest, ShouldProfileDisabled) { int32_t orig_sample_rate = get_cordz_mean_interval(); set_cordz_mean_interval(1); cordz_set_next_sample_for_testing(0); EXPECT_FALSE(cordz_should_profile()); set_cordz_mean_interval(orig_sample_rate); } #endif // ABSL_INTERNAL_CORDZ_ENABLED } // namespace } // namespace cord_internal ABSL_NAMESPACE_END } // namespace absl