about summary refs log tree commit diff
path: root/absl/base/config_test.cc
diff options
context:
space:
mode:
authorAbseil Team <absl-team@google.com>2017-09-29T15·44-0700
committerDerek Mauro <dmauro@google.com>2017-09-29T15·50-0400
commit8d8dcb0ae550fbfdbd7392a3c9d2c5c596bdcde3 (patch)
treea6ac55aa5c82e4170d059d0bbdeb10752c76742f /absl/base/config_test.cc
parentcdf20caa491f59c0a35a8d8fbec0d948e4bc7e4c (diff)
Changes imported from Abseil "staging" branch:
  - b76f5d50e1cb55050ef6004d6097dfdf0a806ff5 Fix ABSL_HAVE_THREAD_LOCAL for iOS < 8.0. by Matt Armstrong <marmstrong@google.com>
  - 1dc71788a3f4ef601e03cbea59e36901479cde35 Add missing #include <intrin.h> to use __nop() on MSVC. by Derek Mauro <dmauro@google.com>
  - f63ca6c7e87a7961912995b518b93af41b04bfa1 Fix typo (implict -> implicit) by Abseil Team <absl-team@google.com>
  - 8096006dc52368f166ccd22e25fcee334e142508 Fix a typo. by Abseil Team <absl-team@google.com>
  - c673a4a59790329fab33536caed6733dc03ec2a1 Add missing ":" in TODO. by Abseil Team <absl-team@google.com>
  - 8125d214356501af0f3a8b3bb577eed083f0493f Fix comment nit. by Abseil Team <absl-team@google.com>

GitOrigin-RevId: b76f5d50e1cb55050ef6004d6097dfdf0a806ff5
Change-Id: I0168eb0c92b20ece2fe5ee54573c7720d00fd0b3
Diffstat (limited to 'absl/base/config_test.cc')
-rw-r--r--absl/base/config_test.cc20
1 files changed, 18 insertions, 2 deletions
diff --git a/absl/base/config_test.cc b/absl/base/config_test.cc
index ab04b447406b..c839712a537e 100644
--- a/absl/base/config_test.cc
+++ b/absl/base/config_test.cc
@@ -17,12 +17,12 @@
 #include <cstdint>
 
 #include "gtest/gtest.h"
+#include "absl/synchronization/internal/thread_pool.h"
 
 namespace {
 
 TEST(ConfigTest, Endianness) {
-  union
-  {
+  union {
     uint32_t value;
     uint8_t data[sizeof(uint32_t)];
   } number;
@@ -41,4 +41,20 @@ TEST(ConfigTest, Endianness) {
 #endif
 }
 
+#if defined(ABSL_HAVE_THREAD_LOCAL)
+TEST(ConfigTest, ThreadLocal) {
+  static thread_local int mine_mine_mine = 16;
+  EXPECT_EQ(16, mine_mine_mine);
+  {
+    absl::synchronization_internal::ThreadPool pool(1);
+    pool.Schedule([&] {
+      EXPECT_EQ(16, mine_mine_mine);
+      mine_mine_mine = 32;
+      EXPECT_EQ(32, mine_mine_mine);
+    });
+  }
+  EXPECT_EQ(16, mine_mine_mine);
+}
+#endif
+
 }  // namespace