================
@@ -16,3 +17,76 @@ def test_file(self):
         self.assertEqual(str(file), "t.c")
         self.assertEqual(file.name, "t.c")
         self.assertEqual(repr(file), "<File: t.c>")
+
+    def test_file_eq(self):
+        path = os.path.join(inputs_dir, "hello.cpp")
+        header_path = os.path.join(inputs_dir, "header3.h")
+        tu = TranslationUnit.from_source(path)
+        file1 = File.from_name(tu, path)
+        file2 = File.from_name(tu, header_path)
+        file2_2 = File.from_name(tu, header_path)
+
+        self.assertEqual(file1, file1)
+        self.assertEqual(file2, file2_2)
+        self.assertNotEqual(file1, file2)
+        self.assertNotEqual(file1, "t.c")
+
+    def test_file_eq_failing(self):
+        index = Index.create()
+        tu = index.parse(
+            "t.c",
+            unsaved_files=[
+                ("t.c", "int a = 729;"),
+                ("s.c", "int a = 729;"),
+            ],
+        )
+        file1 = File.from_name(tu, "t.c")
+        file2 = File.from_name(tu, "s.c")
+        # FIXME: These files are not supposed to be equal
+        self.assertEqual(file1, file2)
+
+    def test_file_eq_failing_2(self):
+        index = Index.create()
+        tu = index.parse(
+            "t.c",
+            unsaved_files=[
+                ("t.c", "int a = 729;"),
+                ("s.c", "int a = 728;"),
+            ],
+        )
+        file1 = File.from_name(tu, "t.c")
+        file2 = File.from_name(tu, "s.c")
+        # FIXME: These files are not supposed to be equal
+        self.assertEqual(file1, file2)
+
+    def test_file_eq_failing_3(self):
+        index = Index.create()
+        tu = index.parse(
+            "t.c",
+            unsaved_files=[
+                ("t.c", '#include "a.c"\n#include "b.c";'),
+                ("a.c", "int a = 729;"),
+                ("b.c", "int b = 729;"),
+            ],
+        )
+        file1 = File.from_name(tu, "t.c")
+        file2 = File.from_name(tu, "a.c")
+        file3 = File.from_name(tu, "b.c")
+        # FIXME: These files are not supposed to be equal
+        self.assertEqual(file2, file3)
+        self.assertEqual(file1, file2)
+        self.assertEqual(file1, file3)
+
+    def test_file_eq_failing_4(self):
+        path = os.path.join(inputs_dir, "testfile.c")
+        path_a = os.path.join(inputs_dir, "a.inc")
+        path_b = os.path.join(inputs_dir, "b.inc")
+        tu = TranslationUnit.from_source(path)
+        print(tu.spelling, tu.cursor.spelling)
+        file1 = File.from_name(tu, path)
+        file2 = File.from_name(tu, path_a)
+        file3 = File.from_name(tu, path_b)
+        # FIXME: These files are not supposed to be equal
+        self.assertEqual(file2, file3)
+        self.assertEqual(file1, file2)
+        self.assertEqual(file1, file3)
----------------
DeinAlptraum wrote:

@AaronBallman take a look at the tests I wrote here. At least in the CI, only 
the last one is actually failing. From the first three, it looks like _all 
in-memory files_ are considered equal, but `test_file_eq_failing_4` which reads 
them from disk doesn't have that problem.

Even weirder, all four of these tests fail when I run them locally.

https://github.com/llvm/llvm-project/pull/130383
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to