aboutsummaryrefslogtreecommitdiff
path: root/gdb
diff options
context:
space:
mode:
authorAndrew Burgess <aburgess@redhat.com>2024-03-15 11:14:05 +0000
committerAndrew Burgess <aburgess@redhat.com>2024-03-19 16:03:34 +0000
commit52ca06e807be411af8cdfeafbe36a86e26c628af (patch)
treecfc581278120f05c0b2aa0d05f05bf0265d5653c /gdb
parentf3f34f2b26259dfa7ecd37c8ba079e18f69c6ab5 (diff)
downloadfsf-binutils-gdb-52ca06e807be411af8cdfeafbe36a86e26c628af.zip
fsf-binutils-gdb-52ca06e807be411af8cdfeafbe36a86e26c628af.tar.gz
fsf-binutils-gdb-52ca06e807be411af8cdfeafbe36a86e26c628af.tar.bz2
gdb/python: test exception case for gdb.solib_name
The gdb.solib_name() and Progspace.solib_name() functions can throw an exception if the address argument is not a valid address, but this is not currently tested. This commit adds a couple of tests to check that exceptions are thrown correctly. An early version of this commit updated the documentation, but it was pointed out that lots of functions throw an exception if passed an argument of the wrong type, and we don't document all of these, it's kind-of assumed that passing an object of the incorrect type might result in an exception, so this updated version leaves the docs alone, but I do think adding the extra tests has value. There's no changes to GDB itself in this commit. Approved-By: Tom Tromey <tom@tromey.com>
Diffstat (limited to 'gdb')
-rw-r--r--gdb/testsuite/gdb.python/py-shared.exp15
1 files changed, 15 insertions, 0 deletions
diff --git a/gdb/testsuite/gdb.python/py-shared.exp b/gdb/testsuite/gdb.python/py-shared.exp
index 6faa6cd..9be5aa4 100644
--- a/gdb/testsuite/gdb.python/py-shared.exp
+++ b/gdb/testsuite/gdb.python/py-shared.exp
@@ -64,3 +64,18 @@ gdb_test "python print (gdb.solib_name(int(main)))" "None" "test main solib loca
if {[is_lp64_target]} {
gdb_test "python print (len(\[gdb.solib_name(0xffffffffffffffff)\]))" "1"
}
+
+gdb_test "python print(gdb.solib_name(-1))" \
+ [multi_line \
+ "Python Exception <class 'OverflowError'>: can't convert negative int to unsigned" \
+ "Error occurred in Python: can't convert negative int to unsigned"]
+
+gdb_test "python print(gdb.current_progspace().solib_name(-1))" \
+ [multi_line \
+ "Python Exception <class 'OverflowError'>: can't convert negative int to unsigned" \
+ "Error occurred in Python: can't convert negative int to unsigned"]
+
+gdb_test "python print(gdb.current_progspace().solib_name(\"string\"))" \
+ [multi_line \
+ "Python Exception <class 'ValueError'>: invalid literal for int\\(\\) with base 10: 'string'" \
+ "Error occurred in Python: invalid literal for int\\(\\) with base 10: 'string'"]