gdb/python: make gdb.Symtab comparable for equality

Like previous patch, but for gdb.Symtab.
This commit is contained in:
Jan Vrany
2024-11-21 12:31:20 +00:00
parent 329c759de0
commit f44e78463d
2 changed files with 23 additions and 1 deletions

View File

@@ -579,7 +579,8 @@ PyTypeObject symtab_object_type = {
"GDB symtab object", /*tp_doc */
0, /*tp_traverse */
0, /*tp_clear */
0, /*tp_richcompare */
gdbpy_richcompare<symtab_object, symtab, &symtab_object::symtab>,
/*tp_richcompare */
0, /*tp_weaklistoffset */
0, /*tp_iter */
0, /*tp_iternext */

View File

@@ -89,6 +89,27 @@ gdb_test_multiple "python print (\"simple_struct\" in static_symbols)" \
}
}
}
# Test comparison for equality and non-equality
gdb_test "python print (symtab == symtab)"\
"True" \
"test symtab equality with itself"
gdb_test "python print (symtab == sal.symtab)"\
"True" \
"test symtab equality with other symtab object referring to the same symtab"
gdb_test "python print (symtab == 123 )"\
"False" \
"test symtab equality with non-symtab"
gdb_test "python print (symtab != symtab)"\
"False" \
"test symtab non-equality with itself"
gdb_test "python print (symtab != sal.symtab)"\
"False" \
"test symtab non-equality with other symtab object referring to the same symtab"
gdb_test "python print (symtab != 123 )"\
"True" \
"test symtab non-equality with non-symtab"
# Test is_valid when the objfile is unloaded. This must be the last
# test as it unloads the object file in GDB.