================ @@ -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