From 5aa5d282eac56a21e74611c1cdbaa97bb5db2dca Mon Sep 17 00:00:00 2001 From: Vincent Ambo Date: Tue, 8 Feb 2022 02:05:36 +0300 Subject: chore(3p/abseil_cpp): unvendor abseil_cpp we weren't actually using these sources anymore, okay? Change-Id: If701571d9716de308d3512e1eb22c35db0877a66 Reviewed-on: https://cl.tvl.fyi/c/depot/+/5248 Tested-by: BuildkiteCI Reviewed-by: grfn Autosubmit: tazjin --- .../absl/base/internal/atomic_hook_test.cc | 97 ---------------------- 1 file changed, 97 deletions(-) delete mode 100644 third_party/abseil_cpp/absl/base/internal/atomic_hook_test.cc (limited to 'third_party/abseil_cpp/absl/base/internal/atomic_hook_test.cc') diff --git a/third_party/abseil_cpp/absl/base/internal/atomic_hook_test.cc b/third_party/abseil_cpp/absl/base/internal/atomic_hook_test.cc deleted file mode 100644 index e577a8fd930b..000000000000 --- a/third_party/abseil_cpp/absl/base/internal/atomic_hook_test.cc +++ /dev/null @@ -1,97 +0,0 @@ -// Copyright 2018 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/base/internal/atomic_hook.h" - -#include "gmock/gmock.h" -#include "gtest/gtest.h" -#include "absl/base/attributes.h" -#include "absl/base/internal/atomic_hook_test_helper.h" - -namespace { - -using ::testing::Eq; - -int value = 0; -void TestHook(int x) { value = x; } - -TEST(AtomicHookTest, NoDefaultFunction) { - ABSL_INTERNAL_ATOMIC_HOOK_ATTRIBUTES static absl::base_internal::AtomicHook< - void (*)(int)> - hook; - value = 0; - - // Test the default DummyFunction. - EXPECT_TRUE(hook.Load() == nullptr); - EXPECT_EQ(value, 0); - hook(1); - EXPECT_EQ(value, 0); - - // Test a stored hook. - hook.Store(TestHook); - EXPECT_TRUE(hook.Load() == TestHook); - EXPECT_EQ(value, 0); - hook(1); - EXPECT_EQ(value, 1); - - // Calling Store() with the same hook should not crash. - hook.Store(TestHook); - EXPECT_TRUE(hook.Load() == TestHook); - EXPECT_EQ(value, 1); - hook(2); - EXPECT_EQ(value, 2); -} - -TEST(AtomicHookTest, WithDefaultFunction) { - // Set the default value to TestHook at compile-time. - ABSL_INTERNAL_ATOMIC_HOOK_ATTRIBUTES static absl::base_internal::AtomicHook< - void (*)(int)> - hook(TestHook); - value = 0; - - // Test the default value is TestHook. - EXPECT_TRUE(hook.Load() == TestHook); - EXPECT_EQ(value, 0); - hook(1); - EXPECT_EQ(value, 1); - - // Calling Store() with the same hook should not crash. - hook.Store(TestHook); - EXPECT_TRUE(hook.Load() == TestHook); - EXPECT_EQ(value, 1); - hook(2); - EXPECT_EQ(value, 2); -} - -ABSL_CONST_INIT int override_func_calls = 0; -void OverrideFunc() { override_func_calls++; } -static struct OverrideInstaller { - OverrideInstaller() { absl::atomic_hook_internal::func.Store(OverrideFunc); } -} override_installer; - -TEST(AtomicHookTest, DynamicInitFromAnotherTU) { - // MSVC 14.2 doesn't do constexpr static init correctly; in particular it - // tends to sequence static init (i.e. defaults) of `AtomicHook` objects - // after their dynamic init (i.e. overrides), overwriting whatever value was - // written during dynamic init. This regression test validates the fix. - // https://developercommunity.visualstudio.com/content/problem/336946/class-with-constexpr-constructor-not-using-static.html - EXPECT_THAT(absl::atomic_hook_internal::default_func_calls, Eq(0)); - EXPECT_THAT(override_func_calls, Eq(0)); - absl::atomic_hook_internal::func(); - EXPECT_THAT(absl::atomic_hook_internal::default_func_calls, Eq(0)); - EXPECT_THAT(override_func_calls, Eq(1)); - EXPECT_THAT(absl::atomic_hook_internal::func.Load(), Eq(OverrideFunc)); -} - -} // namespace -- cgit 1.4.1