Commit a3f851d9 authored by scottmg's avatar scottmg Committed by Commit bot

Disable TLS destructor tests on Win x64 incremental

The linker is coalescing sections incorrectly (x64-only,
incremental-only), so disable these tests for now in that
configuration. See crbug.com/251251 for more details.

Upstream toolchain bug at https://connect.microsoft.com/VisualStudio/feedbackdetail/view/967992

R=wfh@chromium.org
BUG=251251

Review URL: https://codereview.chromium.org/580213002

Cr-Commit-Position: refs/heads/master@{#295770}
parent bdf98ab1
...@@ -766,6 +766,14 @@ ...@@ -766,6 +766,14 @@
'../third_party/icu/icu.gyp:icudata', '../third_party/icu/icu.gyp:icudata',
], ],
}], }],
['incremental_chrome_dll', {
'defines': [
# Used only to workaround a linker bug, do not use this
# otherwise, and don't make it broader scope. See
# http://crbug.com/251251.
'INCREMENTAL_LINKING',
],
}],
], ],
}, { # OS != "win" }, { # OS != "win"
'dependencies': [ 'dependencies': [
......
...@@ -101,7 +101,11 @@ void StatsTableThread::Run() { ...@@ -101,7 +101,11 @@ void StatsTableThread::Run() {
// Create a few threads and have them poke on their counters. // Create a few threads and have them poke on their counters.
// See http://crbug.com/10611 for more information. // See http://crbug.com/10611 for more information.
#if defined(OS_MACOSX) || defined(THREAD_SANITIZER) // It is disabled on Win x64 incremental linking pending resolution of
// http://crbug.com/251251.
#if defined(OS_MACOSX) || defined(THREAD_SANITIZER) || \
(defined(OS_WIN) && defined(ARCH_CPU_X86_64) && \
defined(INCREMENTAL_LINKING))
#define MAYBE_MultipleThreads DISABLED_MultipleThreads #define MAYBE_MultipleThreads DISABLED_MultipleThreads
#else #else
#define MAYBE_MultipleThreads MultipleThreads #define MAYBE_MultipleThreads MultipleThreads
......
...@@ -79,12 +79,17 @@ TEST(ThreadLocalStorageTest, Basics) { ...@@ -79,12 +79,17 @@ TEST(ThreadLocalStorageTest, Basics) {
EXPECT_EQ(value, 123); EXPECT_EQ(value, 123);
} }
#if defined(THREAD_SANITIZER) #if defined(THREAD_SANITIZER) || \
(defined(OS_WIN) && defined(ARCH_CPU_X86_64) && \
defined(INCREMENTAL_LINKING))
// Do not run the test under ThreadSanitizer. Because this test iterates its // Do not run the test under ThreadSanitizer. Because this test iterates its
// own TSD destructor for the maximum possible number of times, TSan can't jump // own TSD destructor for the maximum possible number of times, TSan can't jump
// in after the last destructor invocation, therefore the destructor remains // in after the last destructor invocation, therefore the destructor remains
// unsynchronized with the following users of the same TSD slot. This results // unsynchronized with the following users of the same TSD slot. This results
// in race reports between the destructor and functions in other tests. // in race reports between the destructor and functions in other tests.
//
// It is disabled on Win x64 with incremental linking pending resolution of
// http://crbug.com/251251.
#define MAYBE_TLSDestructors DISABLED_TLSDestructors #define MAYBE_TLSDestructors DISABLED_TLSDestructors
#else #else
#define MAYBE_TLSDestructors TLSDestructors #define MAYBE_TLSDestructors TLSDestructors
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment