| 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 75 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 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 ASSERT_TRUE( | 91 ASSERT_TRUE( |
| 92 strstr(data.c_str(), "ERROR: AddressSanitizer: heap-buffer-overflow")) | 92 strstr(data.c_str(), "ERROR: AddressSanitizer: heap-buffer-overflow")) |
| 93 << "There doesn't seem to be an ASan report:\n" << data; | 93 << "There doesn't seem to be an ASan report:\n" << data; |
| 94 ASSERT_TRUE(strstr(data.c_str(), "AddressSanitizerTests_Report")) | 94 ASSERT_TRUE(strstr(data.c_str(), "AddressSanitizerTests_Report")) |
| 95 << "The ASan report doesn't appear to be symbolized:\n" << data; | 95 << "The ASan report doesn't appear to be symbolized:\n" << data; |
| 96 ASSERT_TRUE(strstr(data.c_str(), strrchr(__FILE__, '\\'))) | 96 std::string source_file_basename(__FILE__); |
| 97 size_t last_slash = source_file_basename.find_last_of("/\\"); |
| 98 last_slash = last_slash == std::string::npos ? 0 : last_slash + 1; |
| 99 ASSERT_TRUE(strstr(data.c_str(), &source_file_basename[last_slash])) |
| 97 << "The stack trace doesn't have a correct filename:\n" << data; | 100 << "The stack trace doesn't have a correct filename:\n" << data; |
| 98 } else { | 101 } else { |
| 99 LOG(WARNING) << "Not an AddressSanitizer build, skipping the run."; | 102 LOG(WARNING) << "Not an AddressSanitizer build, skipping the run."; |
| 100 } | 103 } |
| 101 } | 104 } |
| 102 | 105 |
| 103 } | 106 } |
| OLD | NEW |