[gdb/testsuite] Fix remove-inferiors.exp FAIL with readnow board
[deliverable/binutils-gdb.git] / gdb / testsuite / gdb.multi / base.exp
index 55f90fde9058b5582076bc73201752f5dc011a06..c0852bea86273e2d35cbc702c4120dc62e176608 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright 2009, 2010, 2011 Free Software Foundation, Inc.
+# Copyright 2009-2019 Free Software Foundation, Inc.
 
 # This program is free software; you can redistribute it and/or modify
 # it under the terms of the GNU General Public License as published by
@@ -20,46 +20,104 @@ set testfile "base"
 
 set exec1 "hello"
 set srcfile1 ${exec1}.c
-set binfile1 ${objdir}/${subdir}/${exec1}
+set binfile1 [standard_output_file ${exec1}]
 
 set exec2 "hangout"
 set srcfile2 ${exec2}.c
-set binfile2 ${objdir}/${subdir}/${exec2}
+set binfile2 [standard_output_file ${exec2}]
 
 set exec3 "goodbye"
 set srcfile3 ${exec3}.c
-set binfile3 ${objdir}/${subdir}/${exec3}
+set binfile3 [standard_output_file ${exec3}]
 
-if { [prepare_for_testing ${testfile}.exp ${exec1} "${srcfile1}" {debug nowarnings}] } {
+if { [build_executable ${testfile}.exp ${exec1} "${srcfile1}" {debug}] == -1 } {
     return -1
 }
 
-if { [prepare_for_testing ${testfile}.exp ${exec2} "${srcfile2}" {debug nowarnings}] } {
+if { [build_executable ${testfile}.exp ${exec2} "${srcfile2}" {debug}] == -1} {
     return -1
 }
 
-if { [prepare_for_testing ${testfile}.exp ${exec3} "${srcfile3}" {debug nowarnings}] } {
+if { [build_executable ${testfile}.exp ${exec3} "${srcfile3}" {debug}] == -1 } {
     return -1
 }
 
 clean_restart ${exec1}
 
-# Add an empty inferior space, switch to it, and load a main
-# executable into it.
+gdb_test {print $_inferior} " = 1"
+
+# Add an empty inferior, switch to it, and load a main executable into
+# it.
 gdb_test "add-inferior" "Added inferior 2.*" "add empty inferior 2"
 gdb_test "inferior 2" "Switching to inferior 2.*" "switch to inferior 2"
 gdb_test "file ${binfile2}" ".*" "load ${exec2} file in inferior 2"
 
-# Add a new inferior space and load a main executable into it in one
+gdb_test {print $_inferior} " = 2" "print \$_inferior after switching"
+
+# Add a new inferior and load a main executable into it in one
 # command.
 gdb_test "add-inferior -exec ${binfile3}" \
     "Added inferior 3.*" \
     "add inferior 3 with -exec ${exec3}"
 
-# Check that we have multiple spaces.
+# Check that we have multiple inferiors.
 
 gdb_test "info inferiors" \
-    "Executable.*${exec3}.*${exec2}.*${exec1}.*"
+    "Executable.*${exec1}.*${exec2}.*${exec3}.*"
+
+# Test info inferiors with args
+
+set see1 0
+set see2 0
+set see3 0
+
+gdb_test_multiple "info inferior 2 3" "info inferior 2 3" {
+    -re ". 1 \[^\r\n\]*${exec1}" {
+       set see1 1
+       exp_continue
+    }
+    -re ". 2 \[^\r\n\]*${exec2}" {
+       set see2 1
+       exp_continue
+    }
+    -re ". 3 \[^\r\n\]*${exec3}" {
+       set see3 1
+       exp_continue
+    }
+    -re "$gdb_prompt $" {
+       if { !$see1 && $see2 && $see3 } then {
+           pass "info inferior 2 3"
+       } else {
+           fail "info inferior 2 3"
+       }
+    }
+}
+
+set see1 0
+set see2 0
+set see3 0
+
+gdb_test_multiple "info inferior 1-2" "info inferior 1-2" {
+    -re ". 1 \[^\r\n\]*${exec1}" {
+       set see1 1
+       exp_continue
+    }
+    -re ". 2 \[^\r\n\]*${exec2}" {
+       set see2 1
+       exp_continue
+    }
+    -re ". 3 \[^\r\n\]*${exec3}" {
+       set see3 1
+       exp_continue
+    }
+    -re "$gdb_prompt $" {
+       if { $see1 && $see2 && !$see3 } then {
+           pass "info inferior 1-2"
+       } else {
+           fail "info inferior 1-2"
+       }
+    }
+}
 
 # Test that we have multiple symbol tables.
 
@@ -102,3 +160,34 @@ if { ![runto_main] } then {
 
 gdb_test "break hello" ".*"
 gdb_test "continue" "Breakpoint \[0-9\].*, hello.*"
+
+# Now let's remove the other two
+
+gdb_test_no_output "remove-inferiors 2-3" "remove-inferiors 2-3"
+
+set see1 0
+set see2 0
+set see3 0
+
+gdb_test_multiple "info inferiors" "check remove-inferiors" {
+    -re ". 3 \[^\r\n\]*${exec3}" {
+       set see3 1
+       exp_continue
+    }
+    -re ". 2 \[^\r\n\]*${exec2}" {
+       set see2 1
+       exp_continue
+    }
+    -re ". 1 \[^\r\n\]*${exec1}" {
+       set see1 1
+       exp_continue
+    }
+    -re "$gdb_prompt $" {
+       if { $see1 && !$see2 && !$see3 } then {
+           pass "check remove-inferiors"
+       } else {
+           fail "check remove-inferiors"
+       }
+    }
+}
+
This page took 0.026236 seconds and 4 git commands to generate.