Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(237)

Side by Side Diff: base/threading/thread_local_storage_unittest.cc

Issue 1446363003: Deleted OS_WIN and all Windows specific files from base. (Closed) Base URL: https://github.com/domokit/mojo.git@base_tests
Patch Set: Created 5 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « base/threading/thread_local_storage.cc ('k') | base/threading/thread_local_storage_win.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #if defined(OS_WIN)
6 #include <windows.h>
7 #include <process.h>
8 #endif
9
10 #include "base/threading/simple_thread.h" 5 #include "base/threading/simple_thread.h"
11 #include "base/threading/thread_local_storage.h" 6 #include "base/threading/thread_local_storage.h"
12 #include "testing/gtest/include/gtest/gtest.h" 7 #include "testing/gtest/include/gtest/gtest.h"
13 8
14 #if defined(OS_WIN)
15 // Ignore warnings about ptr->int conversions that we use when
16 // storing ints into ThreadLocalStorage.
17 #pragma warning(disable : 4311 4312)
18 #endif
19
20 namespace base { 9 namespace base {
21 10
22 namespace { 11 namespace {
23 12
24 const int kInitialTlsValue = 0x5555; 13 const int kInitialTlsValue = 0x5555;
25 const int kFinalTlsValue = 0x7777; 14 const int kFinalTlsValue = 0x7777;
26 // How many times must a destructor be called before we really are done. 15 // How many times must a destructor be called before we really are done.
27 const int kNumberDestructorCallRepetitions = 3; 16 const int kNumberDestructorCallRepetitions = 3;
28 17
29 static ThreadLocalStorage::StaticSlot tls_slot = TLS_INITIALIZER; 18 static ThreadLocalStorage::StaticSlot tls_slot = TLS_INITIALIZER;
(...skipping 42 matching lines...) Expand 10 before | Expand all | Expand 10 after
72 61
73 } // namespace 62 } // namespace
74 63
75 TEST(ThreadLocalStorageTest, Basics) { 64 TEST(ThreadLocalStorageTest, Basics) {
76 ThreadLocalStorage::Slot slot; 65 ThreadLocalStorage::Slot slot;
77 slot.Set(reinterpret_cast<void*>(123)); 66 slot.Set(reinterpret_cast<void*>(123));
78 int value = reinterpret_cast<intptr_t>(slot.Get()); 67 int value = reinterpret_cast<intptr_t>(slot.Get());
79 EXPECT_EQ(value, 123); 68 EXPECT_EQ(value, 123);
80 } 69 }
81 70
82 #if defined(THREAD_SANITIZER) || \ 71 #if defined(THREAD_SANITIZER)
83 (defined(OS_WIN) && defined(ARCH_CPU_X86_64) && !defined(NDEBUG))
84 // Do not run the test under ThreadSanitizer. Because this test iterates its 72 // Do not run the test under ThreadSanitizer. Because this test iterates its
85 // own TSD destructor for the maximum possible number of times, TSan can't jump 73 // own TSD destructor for the maximum possible number of times, TSan can't jump
86 // in after the last destructor invocation, therefore the destructor remains 74 // in after the last destructor invocation, therefore the destructor remains
87 // unsynchronized with the following users of the same TSD slot. This results 75 // unsynchronized with the following users of the same TSD slot. This results
88 // in race reports between the destructor and functions in other tests. 76 // in race reports between the destructor and functions in other tests.
89 // 77 //
90 // It is disabled on Win x64 with incremental linking (i.e. "Debug") pending 78 // It is disabled on Win x64 with incremental linking (i.e. "Debug") pending
91 // resolution of http://crbug.com/251251. 79 // resolution of http://crbug.com/251251.
92 #define MAYBE_TLSDestructors DISABLED_TLSDestructors 80 #define MAYBE_TLSDestructors DISABLED_TLSDestructors
93 #else 81 #else
(...skipping 25 matching lines...) Expand all
119 delete threads[index]; 107 delete threads[index];
120 delete thread_delegates[index]; 108 delete thread_delegates[index];
121 109
122 // Verify that the destructor was called and that we reset. 110 // Verify that the destructor was called and that we reset.
123 EXPECT_EQ(values[index], kFinalTlsValue); 111 EXPECT_EQ(values[index], kFinalTlsValue);
124 } 112 }
125 tls_slot.Free(); // Stop doing callbacks to cleanup threads. 113 tls_slot.Free(); // Stop doing callbacks to cleanup threads.
126 } 114 }
127 115
128 } // namespace base 116 } // namespace base
OLDNEW
« no previous file with comments | « base/threading/thread_local_storage.cc ('k') | base/threading/thread_local_storage_win.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698