https://github.com/DeinAlptraum updated 
https://github.com/llvm/llvm-project/pull/138132

>From 74cf17d76918c465aa24e391e15546ab030483f2 Mon Sep 17 00:00:00 2001
From: Jannick Kremer <jannick.kre...@mailbox.org>
Date: Thu, 1 May 2025 22:42:56 +0900
Subject: [PATCH 1/2] [libclang/python] Add tests for equality operators.

Adds tests for SourceRange, SourceLocation and Cursor.
This is a follow-up to #138074
---
 .../python/tests/cindex/test_cursor.py        | 15 ++++++++++++++
 .../python/tests/cindex/test_location.py      | 20 +++++++++++++++++++
 .../python/tests/cindex/test_source_range.py  | 15 ++++++++++++++
 3 files changed, 50 insertions(+)

diff --git a/clang/bindings/python/tests/cindex/test_cursor.py 
b/clang/bindings/python/tests/cindex/test_cursor.py
index 82f40c60afa59..b90a0495ca7be 100644
--- a/clang/bindings/python/tests/cindex/test_cursor.py
+++ b/clang/bindings/python/tests/cindex/test_cursor.py
@@ -1035,3 +1035,18 @@ def test_specialized_template(self):
         self.assertNotEqual(foos[0], foos[1])
         self.assertEqual(foos[0], prime_foo)
         self.assertIsNone(tu.cursor.specialized_template)
+
+    def test_equality(self):
+        tu = get_tu(CHILDREN_TEST, lang="cpp")
+        cursor1 = get_cursor(tu, "s0")
+        cursor1_2 = get_cursor(tu, "s0")
+        cursor2 = get_cursor(tu, "f0")
+
+        self.assertIsNotNone(cursor1)
+        self.assertIsNotNone(cursor1_2)
+        self.assertIsNotNone(cursor2)
+
+        self.assertEqual(cursor1, cursor1)
+        self.assertEqual(cursor1, cursor1_2)
+        self.assertNotEqual(cursor1, cursor2)
+        self.assertNotEqual(cursor1, "foo")
diff --git a/clang/bindings/python/tests/cindex/test_location.py 
b/clang/bindings/python/tests/cindex/test_location.py
index 21c6169bb0a6f..f1a4589738f52 100644
--- a/clang/bindings/python/tests/cindex/test_location.py
+++ b/clang/bindings/python/tests/cindex/test_location.py
@@ -16,6 +16,8 @@
 
 from .util import get_cursor, get_tu
 
+INPUTS_DIR = os.path.join(os.path.dirname(__file__), "INPUTS")
+
 BASE_INPUT = "int one;\nint two;\n"
 
 
@@ -151,3 +153,21 @@ def test_operator_lt(self):
         assert l_t1_12 < l_t2_13 < l_t1_14
         assert not l_t2_13 < l_t1_12
         assert not l_t1_14 < l_t2_13
+
+    def test_equality(self):
+        path = os.path.join(INPUTS_DIR, "testfile.c")
+        path_a = os.path.join(INPUTS_DIR, "a.inc")
+        tu = TranslationUnit.from_source(path)
+        main_file = File.from_name(tu, path)
+        a_file = File.from_name(tu, path_a)
+
+        location1 = SourceLocation.from_position(tu, main_file, 1, 3)
+        location2 = SourceLocation.from_position(tu, main_file, 2, 2)
+        location1_2 = SourceLocation.from_position(tu, main_file, 1, 3)
+        file2_location1 = SourceLocation.from_position(tu, a_file, 1, 3)
+
+        self.assertEqual(location1, location1)
+        self.assertEqual(location1, location1_2)
+        self.assertNotEqual(location1, location2)
+        self.assertNotEqual(location1, file2_location1)
+        self.assertNotEqual(location1, "foo")
diff --git a/clang/bindings/python/tests/cindex/test_source_range.py 
b/clang/bindings/python/tests/cindex/test_source_range.py
index 81c0a9b05cff8..87b17caaac69b 100644
--- a/clang/bindings/python/tests/cindex/test_source_range.py
+++ b/clang/bindings/python/tests/cindex/test_source_range.py
@@ -9,6 +9,8 @@
 
 from .util import get_tu
 
+INPUTS_DIR = os.path.join(os.path.dirname(__file__), "INPUTS")
+
 
 def create_range(tu, line1, column1, line2, column2):
     return SourceRange.from_locations(
@@ -83,3 +85,16 @@ def test_contains(self):
         r_curly = create_range(tu2, 1, 11, 3, 1)
         l_f2 = SourceLocation.from_position(tu2, 
tu2.get_file("./numbers.inc"), 4, 1)
         assert l_f2 in r_curly
+
+    def test_equality(self):
+        path = os.path.join(INPUTS_DIR, "testfile.c")
+        tu = TranslationUnit.from_source(path)
+
+        r1 = create_range(tu, 1, 1, 2, 2)
+        r2 = create_range(tu, 1, 2, 2, 2)
+        r1_2 = create_range(tu, 1, 1, 2, 2)
+
+        self.assertEqual(r1, r1)
+        self.assertEqual(r1, r1_2)
+        self.assertNotEqual(r1, r2)
+        self.assertNotEqual(r1, "foo")

>From 686f5078bd875eaff54b7984d2286a6de6d4d060 Mon Sep 17 00:00:00 2001
From: Jannick Kremer <jannick.kre...@mailbox.org>
Date: Fri, 2 May 2025 10:59:46 +0900
Subject: [PATCH 2/2] Use pathlib for input file paths

---
 clang/bindings/python/tests/cindex/test_location.py     | 7 ++++---
 clang/bindings/python/tests/cindex/test_source_range.py | 5 +++--
 2 files changed, 7 insertions(+), 5 deletions(-)

diff --git a/clang/bindings/python/tests/cindex/test_location.py 
b/clang/bindings/python/tests/cindex/test_location.py
index f1a4589738f52..3c6b0357e2f83 100644
--- a/clang/bindings/python/tests/cindex/test_location.py
+++ b/clang/bindings/python/tests/cindex/test_location.py
@@ -1,4 +1,5 @@
 import os
+from pathlib import Path
 
 from clang.cindex import (
     Config,
@@ -16,7 +17,7 @@
 
 from .util import get_cursor, get_tu
 
-INPUTS_DIR = os.path.join(os.path.dirname(__file__), "INPUTS")
+INPUTS_DIR = Path(__file__).parent / "INPUTS"
 
 BASE_INPUT = "int one;\nint two;\n"
 
@@ -155,8 +156,8 @@ def test_operator_lt(self):
         assert not l_t1_14 < l_t2_13
 
     def test_equality(self):
-        path = os.path.join(INPUTS_DIR, "testfile.c")
-        path_a = os.path.join(INPUTS_DIR, "a.inc")
+        path = INPUTS_DIR / "testfile.c"
+        path_a = INPUTS_DIR / "a.inc"
         tu = TranslationUnit.from_source(path)
         main_file = File.from_name(tu, path)
         a_file = File.from_name(tu, path_a)
diff --git a/clang/bindings/python/tests/cindex/test_source_range.py 
b/clang/bindings/python/tests/cindex/test_source_range.py
index 87b17caaac69b..ca3ebc4041955 100644
--- a/clang/bindings/python/tests/cindex/test_source_range.py
+++ b/clang/bindings/python/tests/cindex/test_source_range.py
@@ -1,4 +1,5 @@
 import os
+from pathlib import Path
 
 from clang.cindex import Config, SourceLocation, SourceRange, TranslationUnit
 
@@ -9,7 +10,7 @@
 
 from .util import get_tu
 
-INPUTS_DIR = os.path.join(os.path.dirname(__file__), "INPUTS")
+INPUTS_DIR = Path(__file__).parent / "INPUTS"
 
 
 def create_range(tu, line1, column1, line2, column2):
@@ -87,7 +88,7 @@ def test_contains(self):
         assert l_f2 in r_curly
 
     def test_equality(self):
-        path = os.path.join(INPUTS_DIR, "testfile.c")
+        path = INPUTS_DIR / "testfile.c"
         tu = TranslationUnit.from_source(path)
 
         r1 = create_range(tu, 1, 1, 2, 2)

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

Reply via email to