[Lldb-commits] [lldb] [lldb][Windows] Fixed the TestBreakpointCommand test (PR #93122)
via lldb-commits
lldb-commits at lists.llvm.org
Wed May 22 18:33:10 PDT 2024
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-lldb
Author: Dmitry Vasilyev (slydiman)
<details>
<summary>Changes</summary>
The TestBreakpointCommand test is incorrectly disabled for Windows target. We can disable it for Windows host instead or just fix the issue. This patch fixes the path separator in BreakpointResolverFileLine::DeduceSourceMapping() and the Windows specific absolute path in the test in case of the Windows host.
---
Full diff: https://github.com/llvm/llvm-project/pull/93122.diff
2 Files Affected:
- (modified) lldb/source/Breakpoint/BreakpointResolverFileLine.cpp (+5-5)
- (modified) lldb/test/API/functionalities/breakpoint/breakpoint_command/TestBreakpointCommand.py (+13-5)
``````````diff
diff --git a/lldb/source/Breakpoint/BreakpointResolverFileLine.cpp b/lldb/source/Breakpoint/BreakpointResolverFileLine.cpp
index d7d8c714867e3..16c4ee1b88d16 100644
--- a/lldb/source/Breakpoint/BreakpointResolverFileLine.cpp
+++ b/lldb/source/Breakpoint/BreakpointResolverFileLine.cpp
@@ -198,16 +198,16 @@ void BreakpointResolverFileLine::DeduceSourceMapping(
return;
Log *log = GetLog(LLDBLog::Breakpoints);
- const llvm::StringRef path_separator = llvm::sys::path::get_separator(
- m_location_spec.GetFileSpec().GetPathStyle());
// Check if "b" is a suffix of "a".
// And return std::nullopt if not or the new path
// of "a" after consuming "b" from the back.
auto check_suffix =
- [path_separator](llvm::StringRef a, llvm::StringRef b,
- bool case_sensitive) -> std::optional<llvm::StringRef> {
+ [](llvm::StringRef a, llvm::StringRef b,
+ bool case_sensitive) -> std::optional<llvm::StringRef> {
if (case_sensitive ? a.consume_back(b) : a.consume_back_insensitive(b)) {
- if (a.empty() || a.ends_with(path_separator)) {
+ // Note sc_file_dir and request_file_dir below are normalized
+ // and always contain the path separator '/'.
+ if (a.empty() || a.ends_with("/")) {
return a;
}
}
diff --git a/lldb/test/API/functionalities/breakpoint/breakpoint_command/TestBreakpointCommand.py b/lldb/test/API/functionalities/breakpoint/breakpoint_command/TestBreakpointCommand.py
index c219a4ee5bd9c..605561c757372 100644
--- a/lldb/test/API/functionalities/breakpoint/breakpoint_command/TestBreakpointCommand.py
+++ b/lldb/test/API/functionalities/breakpoint/breakpoint_command/TestBreakpointCommand.py
@@ -6,7 +6,7 @@
import lldb
from lldbsuite.test.decorators import *
from lldbsuite.test.lldbtest import *
-from lldbsuite.test import lldbutil
+from lldbsuite.test import lldbutil, lldbplatformutil
import json
import os
import side_effect
@@ -581,7 +581,6 @@ def verify_source_map_deduce_statistics(self, target, expected_count):
self.assertNotEqual(target_stats, None)
self.assertEqual(target_stats["sourceMapDeduceCount"], expected_count)
- @skipIf(oslist=["windows"])
@no_debug_info_test
def test_breakpoints_auto_source_map_relative(self):
"""
@@ -612,8 +611,13 @@ def test_breakpoints_auto_source_map_relative(self):
self.verify_source_map_deduce_statistics(target, 0)
# Verify auto deduced source map when file path in debug info
- # is a suffix of request breakpoint file path
- path = "/x/y/a/b/c/main.cpp"
+ # is a suffix of request breakpoint file path.
+ # Note the path must be absolute.
+ path = (
+ "/x/y/a/b/c/main.cpp"
+ if lldbplatformutil.getHostPlatform() != "windows"
+ else r"C:\x\y\a\b\c\main.cpp"
+ )
bp = target.BreakpointCreateByLocation(path, 2)
self.assertGreater(
bp.GetNumLocations(),
@@ -625,7 +629,11 @@ def test_breakpoints_auto_source_map_relative(self):
source_map_json = self.get_source_map_json()
self.assertEqual(len(source_map_json), 1, "source map should not be empty")
- self.verify_source_map_entry_pair(source_map_json[0], ".", "/x/y")
+ self.verify_source_map_entry_pair(
+ source_map_json[0],
+ ".",
+ "/x/y" if lldbplatformutil.getHostPlatform() != "windows" else r"C:\x\y",
+ )
self.verify_source_map_deduce_statistics(target, 1)
# Reset source map.
``````````
</details>
https://github.com/llvm/llvm-project/pull/93122
More information about the lldb-commits
mailing list