Like previous patch, but for gdb.Symtab.
---
gdb/python/py-symtab.c | 3 ++-
gdb/testsuite/gdb.python/py-symtab.exp | 21 +++++++++++++++++++++
2 files changed, 23 insertions(+), 1 deletion(-)
@@ -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 */
@@ -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.