From f516280c4c470be8f73f71c7d86d4e245aa535e8 Mon Sep 17 00:00:00 2001 From: "glider@chromium.org" Date: Wed, 14 May 2014 16:04:30 +0000 Subject: [PATCH] Revert 270383 "Reland https://codereview.chromium.org/276493002:..." > Reland https://codereview.chromium.org/276493002: Enable ToolsSanityTest.SingleElementDeletedWithBraces and ToolsSanityTest.ArrayDeletedWithoutBraces under AddressSanitizer on Linux. > > Also make sure the tests aren't disabled under non-ASan on OSX. > > BUG=172614 > TBR=thakis@chromium.org > > Review URL: https://codereview.chromium.org/282843003 TBR=glider@chromium.org Review URL: https://codereview.chromium.org/288723003 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@270412 0039d316-1c4b-4281-b951-d872f2087c98 --- base/tools_sanity_unittest.cc | 35 ++++++++++++----------------------- 1 file changed, 12 insertions(+), 23 deletions(-) diff --git a/base/tools_sanity_unittest.cc b/base/tools_sanity_unittest.cc index 3787a98d275e..b1da3e1aa59f 100644 --- a/base/tools_sanity_unittest.cc +++ b/base/tools_sanity_unittest.cc @@ -100,25 +100,24 @@ TEST(ToolsSanityTest, MemoryLeak) { // error report mechanism is different than with Asan so these tests will fail. #define MAYBE_AccessesToNewMemory DISABLED_AccessesToNewMemory #define MAYBE_AccessesToMallocMemory DISABLED_AccessesToMallocMemory -#define MAYBE_SingleElementDeletedWithBraces \ - DISABLED_SingleElementDeletedWithBraces -#define MAYBE_ArrayDeletedWithoutBraces DISABLED_ArrayDeletedWithoutBraces #else #define MAYBE_AccessesToNewMemory AccessesToNewMemory #define MAYBE_AccessesToMallocMemory AccessesToMallocMemory - -#if defined(ADDRESS_SANITIZER) && !defined(OS_MACOSX) -// AddressSanitizer for OSX doesn't support alloc-dealloc mismatch checks. #define MAYBE_ArrayDeletedWithoutBraces ArrayDeletedWithoutBraces #define MAYBE_SingleElementDeletedWithBraces SingleElementDeletedWithBraces -#else -#define MAYBE_ArrayDeletedWithoutBraces DISABLED_ArrayDeletedWithoutBraces -#define MAYBE_SingleElementDeletedWithBraces \ - DISABLED_SingleElementDeletedWithBraces #endif +// The following tests pass with Clang r170392, but not r172454, which +// makes AddressSanitizer detect errors in them. We disable these tests under +// AddressSanitizer until we fully switch to Clang r172454. After that the +// tests should be put back under the (defined(OS_IOS) || defined(OS_WIN)) +// clause above. +// See also http://crbug.com/172614. +#if defined(ADDRESS_SANITIZER) || defined(SYZYASAN) +#define MAYBE_SingleElementDeletedWithBraces \ + DISABLED_SingleElementDeletedWithBraces +#define MAYBE_ArrayDeletedWithoutBraces DISABLED_ArrayDeletedWithoutBraces #endif - TEST(ToolsSanityTest, MAYBE_AccessesToNewMemory) { char *foo = new char[10]; MakeSomeErrors(foo, 10); @@ -145,12 +144,7 @@ TEST(ToolsSanityTest, MAYBE_ArrayDeletedWithoutBraces) { // Without the |volatile|, clang optimizes away the next two lines. int* volatile foo = new int[10]; - HARMFUL_ACCESS(delete foo, "alloc-dealloc-mismatch"); -#if defined(ADDRESS_SANITIZER) - // Under ASan the crash happens in the process spawned by HARMFUL_ACCESS, - // need to free the memory in the parent. - delete [] foo; -#endif + delete foo; } TEST(ToolsSanityTest, MAYBE_SingleElementDeletedWithBraces) { @@ -164,12 +158,7 @@ TEST(ToolsSanityTest, MAYBE_SingleElementDeletedWithBraces) { // Without the |volatile|, clang optimizes away the next two lines. int* volatile foo = new int; (void) foo; - HARMFUL_ACCESS(delete [] foo, "alloc-dealloc-mismatch"); -#if defined(ADDRESS_SANITIZER) - // Under ASan the crash happens in the child process, need to free the memory - // in the parent. - delete foo; -#endif + delete [] foo; } #if defined(ADDRESS_SANITIZER) || defined(SYZYASAN) -- 2.11.4.GIT