[Lldb-commits] [lldb] [lldb][Windows] Fixed the TestBreakpointCommand test (PR #93122)

2024-05-23 Thread Dmitry Vasilyev via lldb-commits

https://github.com/slydiman closed 
https://github.com/llvm/llvm-project/pull/93122
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits


[Lldb-commits] [lldb] [lldb][Windows] Fixed the TestBreakpointCommand test (PR #93122)

2024-05-23 Thread Pavel Labath via lldb-commits

https://github.com/labath approved this pull request.

Nice find.

https://github.com/llvm/llvm-project/pull/93122
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits


[Lldb-commits] [lldb] [lldb][Windows] Fixed the TestBreakpointCommand test (PR #93122)

2024-05-22 Thread via lldb-commits

llvmbot wrote:




@llvm/pr-subscribers-lldb

Author: Dmitry Vasilyev (slydiman)


Changes

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 a, llvm::StringRef b,
+ bool case_sensitive) -> std::optional {
 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.

``




https://github.com/llvm/llvm-project/pull/93122
___
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits


[Lldb-commits] [lldb] [lldb][Windows] Fixed the TestBreakpointCommand test (PR #93122)

2024-05-22 Thread Dmitry Vasilyev via lldb-commits

https://github.com/slydiman created 
https://github.com/llvm/llvm-project/pull/93122

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.

>From 4220b6d0dcc32e26a6916608ad2b2cf873bee212 Mon Sep 17 00:00:00 2001
From: Dmitry Vasilyev 
Date: Thu, 23 May 2024 05:30:39 +0400
Subject: [PATCH] [lldb] Fixed the TestBreakpointCommand test

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.
---
 .../Breakpoint/BreakpointResolverFileLine.cpp  | 10 +-
 .../TestBreakpointCommand.py   | 18 +-
 2 files changed, 18 insertions(+), 10 deletions(-)

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 a, llvm::StringRef b,
+ bool case_sensitive) -> std::optional {
 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.

___
lldb-commits mailing list
lldb-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits