[pushed] python: Add tests for trying to use an invalid Inferior object

Message ID 20180912223840.6141-1-simon.marchi@ericsson.com
State New, archived
Headers

Commit Message

Simon Marchi Sept. 12, 2018, 10:38 p.m. UTC
  This patch adds tests for trying to use property or methods on a
gdb.Inferior object that represents an inferior that does not exist
anymore.  We expect an exception to be thrown.

gdb/testsuite/ChangeLog:

	* gdb.python/py-inferior.exp: Test using an invalid gdb.Inferior
	object.
---
 gdb/testsuite/ChangeLog                  |  5 +++++
 gdb/testsuite/gdb.python/py-inferior.exp | 13 +++++++++++++
 2 files changed, 18 insertions(+)
  

Patch

diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog
index db5369de651..949f1ae210a 100644
--- a/gdb/testsuite/ChangeLog
+++ b/gdb/testsuite/ChangeLog
@@ -1,3 +1,8 @@ 
+2018-09-12  Simon Marchi  <simon.marchi@ericsson.com>
+
+	* gdb.python/py-inferior.exp: Test using an invalid gdb.Inferior
+	object.
+
 2018-09-12  Alan Hayward  <alan.hayward@arm.com>
 
 	* lib/gdb.exp (gdb_can_simple_compile): Add proc.
diff --git a/gdb/testsuite/gdb.python/py-inferior.exp b/gdb/testsuite/gdb.python/py-inferior.exp
index a943d5f214e..055dd87c6d8 100644
--- a/gdb/testsuite/gdb.python/py-inferior.exp
+++ b/gdb/testsuite/gdb.python/py-inferior.exp
@@ -253,6 +253,19 @@  with_test_prefix "is_valid" {
 
     gdb_test "python print (my_inferior_count)" "1" \
 	"test inferior-deleted event handler"
+
+    # Test that other properties and methods handle the removed inferior
+    # correctly.
+    gdb_test "python print (inf_list\[1\].num)" \
+	"RuntimeError: Inferior no longer exists.*"
+    gdb_test "python print (inf_list\[1\].pid)" \
+	"RuntimeError: Inferior no longer exists.*"
+    gdb_test "python print (inf_list\[1\].was_attached)" \
+	"RuntimeError: Inferior no longer exists.*"
+    gdb_test "python print (inf_list\[1\].threads ())" \
+	"RuntimeError: Inferior no longer exists.*"
+    gdb_test "python print (inf_list\[1\].thread_from_thread_handle (1))" \
+	"RuntimeError: Inferior no longer exists.*"
 }
 
 # Test gdb.selected_inferior()