| OLD | NEW |
| 1 // Copyright 2015 The Chromium Authors. All rights reserved. | 1 // Copyright 2015 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 #include <stdio.h> | 5 #include <stdio.h> |
| 6 | 6 |
| 7 #include "base/environment.h" | 7 #include "base/environment.h" |
| 8 #include "base/files/file_path.h" | 8 #include "base/files/file_path.h" |
| 9 #include "base/files/file_util.h" | 9 #include "base/files/file_util.h" |
| 10 #include "base/files/scoped_temp_dir.h" | 10 #include "base/files/scoped_temp_dir.h" |
| (...skipping 70 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 81 pdb_path.value().c_str())); | 81 pdb_path.value().c_str())); |
| 82 | 82 |
| 83 env_->SetVar("ASAN_OPTIONS", "exitcode=123"); | 83 env_->SetVar("ASAN_OPTIONS", "exitcode=123"); |
| 84 if (asan_build) { | 84 if (asan_build) { |
| 85 int result = runner.RunTest(L"AddressSanitizerTests_Report"); | 85 int result = runner.RunTest(L"AddressSanitizerTests_Report"); |
| 86 EXPECT_EQ(123, result); | 86 EXPECT_EQ(123, result); |
| 87 | 87 |
| 88 std::string data; | 88 std::string data; |
| 89 ASSERT_TRUE(base::ReadFileToString(base::FilePath(temp_file_name), &data)); | 89 ASSERT_TRUE(base::ReadFileToString(base::FilePath(temp_file_name), &data)); |
| 90 // Redirection uses a feature that was added in Windows Vista. | 90 // Redirection uses a feature that was added in Windows Vista. |
| 91 if (base::win::GetVersion() >= base::win::VERSION_VISTA) { | 91 ASSERT_TRUE( |
| 92 ASSERT_TRUE( | 92 strstr(data.c_str(), "ERROR: AddressSanitizer: heap-buffer-overflow")) |
| 93 strstr(data.c_str(), "ERROR: AddressSanitizer: heap-buffer-overflow")) | 93 << "There doesn't seem to be an ASan report:\n" << data; |
| 94 << "There doesn't seem to be an ASan report:\n" << data; | 94 ASSERT_TRUE(strstr(data.c_str(), "AddressSanitizerTests_Report")) |
| 95 ASSERT_TRUE(strstr(data.c_str(), "AddressSanitizerTests_Report")) | 95 << "The ASan report doesn't appear to be symbolized:\n" << data; |
| 96 << "The ASan report doesn't appear to be symbolized:\n" << data; | 96 ASSERT_TRUE(strstr(data.c_str(), strrchr(__FILE__, '\\'))) |
| 97 ASSERT_TRUE(strstr(data.c_str(), strrchr(__FILE__, '\\'))) | 97 << "The stack trace doesn't have a correct filename:\n" << data; |
| 98 << "The stack trace doesn't have a correct filename:\n" << data; | |
| 99 } else { | |
| 100 LOG(WARNING) << "Pre-Vista versions are not supported."; | |
| 101 } | |
| 102 } else { | 98 } else { |
| 103 LOG(WARNING) << "Not an AddressSanitizer build, skipping the run."; | 99 LOG(WARNING) << "Not an AddressSanitizer build, skipping the run."; |
| 104 } | 100 } |
| 105 } | 101 } |
| 106 | 102 |
| 107 } | 103 } |
| OLD | NEW |