[commit test fixes] [patch] Forbid "run" etc. for use_gdb_stub targets [Re: [patch] gdb.python/py-events.exp: Disable multi-inferior for gdbserver]

Jan Kratochvil
2011-10-28T17:36:30Z

On Thu, 27 Oct 2011 20:09:36 +0200, Pedro Alves wrote:
> > I am not sure what is the correct way to handle gdbserver_start_extended.
> > gdb.server/ext-*.exp run gdbserver even in the default native run. They
> > either should not run in the default native or they should not run in the
> > non-extended gdbserver mode. Currently they run in both modes the same way.
>
> These tests were written to smoke test gdbserver on native test runs.

Therefore shouldn't be the gdb.server/ext-*.exp testfiles skipped if the
target board defined use_gdb_stub? (ext-attach.exp already is skipped, for
the [is_remote target] reason)

I have left it as is as the same duplicate run with different boards does not
harm anything.

> > --- a/gdb/testsuite/gdb.base/async-shell.exp
> > +++ b/gdb/testsuite/gdb.base/async-shell.exp
> > @@ -20,6 +20,10 @@ if { ![support_displaced_stepping] } {
> > return -1
> > }
> >
> > +if [is_remote target] {
> > + return -1
> > +}
>
> Shouldn't this be a check for use_gdb_stub instead? (I know
> the bug was originally linux native.) Doesn't matter much though.

Used now:
# The testfile uses "run". The real bug happened only for ![is_remote target].

You are right the test can run everywhere !use_gdb_stub. But with remote.c in
use the bug being tested cannot happen (there are no two child processes
conflicting for wait(PID) result), so it just gives PASS not testing much.

> The test fixes look right to me. IMO, you should put them
> in upfront and separately from the new smart detection.

Checked in those.

Thanks,
Jan

http://sourceware.org/ml/gdb-cvs/2011-10/msg00208.html

--- src/gdb/testsuite/ChangeLog 2011/10/28 14:49:18 1.2913
+++ src/gdb/testsuite/ChangeLog 2011/10/28 17:32:28 1.2914
@@ -1,15 +1,27 @@
+2011-10-28 Jan Kratochvil <jan.kratochvil@redhat.com>
+
+ * gdb.base/async-shell.exp: Skip the testfile for use_gdb_stub.
+ * gdb.base/attach-pie-misread.exp: Likewise.
+ * gdb.base/break-interp.exp: Likewise.
+ * gdb.base/default.exp (attach, run "r" abbreviation, run): Skip these
+ testcases for use_gdb_stub.
+ * gdb.dwarf2/dw2-restore.exp: Fix the run for use_gdb_stub.
+ (continue): New testcase.
+ * gdb.python/py-events.exp: Skip the testfile for use_gdb_stub.
+ * gdb.threads/attach-into-signal.exp: Likewise.
+ * gdb.threads/attach-stopped.exp: Likewise.
+ * gdb.threads/attachstop-mt.exp: Likewise.
+
2011-10-28 Paul Koning <paul_koning@dell.com>

* gdb.python/lib-types.exp (deep_items): Rename from deepitems.

-
2011-10-27 Jan Kratochvil <jan.kratochvil@redhat.com>

* lib/mi-support.exp (breakpoint_re): Suppress match reporting.
(mi_gdb_test): Import globals thread_selected_re
and breakpoint_re. Expect them optionally at the regex start.

-
2011-10-27 Doug Evans <dje@google.com>

* gdb.python/python.exp: Test source -s.
--- src/gdb/testsuite/gdb.base/async-shell.exp 2011/07/18 04:14:21 1.2
+++ src/gdb/testsuite/gdb.base/async-shell.exp 2011/10/28 17:32:29 1.3
@@ -20,6 +20,11 @@
return -1
}

+# The testfile uses "run". The real bug happened only for ![is_remote target].
+if [target_info exists use_gdb_stub] {
+ return 0
+}
+
if { [prepare_for_testing ${testfile}.exp ${testfile}] } {
return -1
}
--- src/gdb/testsuite/gdb.base/attach-pie-misread.exp 2011/01/01 15:33:40 1.3
+++ src/gdb/testsuite/gdb.base/attach-pie-misread.exp 2011/10/28 17:32:30 1.4
@@ -14,7 +14,8 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.

# This test only works on GNU/Linux.
-if { ![isnative] || [is_remote host] || ![istarget *-linux*] || [skip_shlib_tests]} {
+if { ![isnative] || [is_remote host] || [target_info exists use_gdb_stub]
+ || ![istarget *-linux*] || [skip_shlib_tests]} {
continue
}

--- src/gdb/testsuite/gdb.base/break-interp.exp 2011/07/01 19:12:12 1.30
+++ src/gdb/testsuite/gdb.base/break-interp.exp 2011/10/28 17:32:30 1.31
@@ -14,7 +14,8 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.

# This test only works on GNU/Linux.
-if { ![isnative] || [is_remote host] || ![istarget *-linux*] || [skip_shlib_tests]} {
+if { ![isnative] || [is_remote host] || [target_info exists use_gdb_stub]
+ || ![istarget *-linux*] || [skip_shlib_tests]} {
continue
}

--- src/gdb/testsuite/gdb.base/default.exp 2011/05/20 14:37:20 1.49
+++ src/gdb/testsuite/gdb.base/default.exp 2011/10/28 17:32:30 1.50
@@ -39,23 +39,23 @@
gdb_test "append binary memory" "Missing filename\."
gdb_test "append binary value" "Missing filename\."

-setup_xfail "mips-idt-*"
-gdb_test_multiple "attach" "attach" {
- -re "Argument required .(process-id|program) to attach.*$gdb_prompt $"\
- { pass "attach" }
- -re "You can't do that when your target is `None'.*$gdb_prompt $"\
- { pass "attach" }
- -re "You can't do that without a process to debug.*$gdb_prompt $"\
- { pass "attach" }
- -re "Don't know how to attach. Try \"help target\"..*$gdb_prompt $"\
- { pass "attach" }
- -re "Kill it. .y or n." {
- send_gdb "y\n"
- exp_continue
+if ![target_info exists use_gdb_stub] {
+ setup_xfail "mips-idt-*"
+ gdb_test_multiple "attach" "attach" {
+ -re "Argument required .(process-id|program) to attach.*$gdb_prompt $"\
+ { pass "attach" }
+ -re "You can't do that when your target is `None'.*$gdb_prompt $"\
+ { pass "attach" }
+ -re "You can't do that without a process to debug.*$gdb_prompt $"\
+ { pass "attach" }
+ -re "Don't know how to attach. Try \"help target\"..*$gdb_prompt $"\
+ { pass "attach" }
+ -re "Kill it. .y or n." {
+ send_gdb "y\n"
+ exp_continue
+ }
}
-}

-if ![target_info exists use_gdb_stub] {
gdb_test "break" "No default breakpoint address now." "break"
foreach i "b br bre brea" {
gdb_test $i "No default breakpoint address now." "break \"$i\" abbreviation"
@@ -420,7 +420,9 @@
gdb_test "pwd" "Working directory .*" "pwd"

#test run "r" abbreviation
-if [istarget "*-*-vxworks*"] then {
+if [target_info exists use_gdb_stub] {
+ # Only extended-remote supports "run".
+} elseif [istarget "*-*-vxworks*"] then {
gdb_test "set args" ".*" ""

gdb_test "r" "Starting program: .*
@@ -446,7 +448,9 @@
}

#test run
-if [istarget "*-*-vxworks*"] then {
+if [target_info exists use_gdb_stub] {
+ # Only extended-remote supports "run".
+} elseif [istarget "*-*-vxworks*"] then {
gdb_test "set args" ".*" ""

gdb_test "run" "Starting program: .*
--- src/gdb/testsuite/gdb.dwarf2/dw2-restore.exp 2011/05/13 17:17:22 1.5
+++ src/gdb/testsuite/gdb.dwarf2/dw2-restore.exp 2011/10/28 17:32:30 1.6
@@ -33,5 +33,8 @@
gdb_reinitialize_dir $srcdir/$subdir
gdb_load ${binfile}

-gdb_test "run" ".*"
-gdb_test "where" ".*$hex in foo ().+$hex in _start ().*"
+if ![runto foo] {
+ return 0
+}
+gdb_test "continue" "$hex in foo \\(\\)"
+gdb_test "where" "#0 +$hex in foo \\(\\)\r\n#1 +$hex in _start \\(\\)"
--- src/gdb/testsuite/gdb.python/py-events.exp 2011/10/07 07:38:30 1.5
+++ src/gdb/testsuite/gdb.python/py-events.exp 2011/10/28 17:32:30 1.6
@@ -13,6 +13,10 @@
# You should have received a copy of the GNU General Public License
# along with this program. If not, see <http://www.gnu.org/licenses/>.

+if [target_info exists use_gdb_stub] {
+ return 0
+}
+
if $tracelevel then {
strace $tracelevel
}
--- src/gdb/testsuite/gdb.threads/attach-into-signal.exp 2011/01/01 15:33:50 1.6
+++ src/gdb/testsuite/gdb.threads/attach-into-signal.exp 2011/10/28 17:32:30 1.7
@@ -17,7 +17,8 @@
# This file was created by Jan Kratochvil <jan.kratochvil@redhat.com>.

# This test only works on Linux
-if { ![isnative] || [is_remote host] || ![istarget *-linux*] } {
+if { ![isnative] || [is_remote host] || [target_info exists use_gdb_stub]
+ || ![istarget *-linux*] } {
continue
}

--- src/gdb/testsuite/gdb.threads/attach-stopped.exp 2011/10/14 16:05:05 1.7
+++ src/gdb/testsuite/gdb.threads/attach-stopped.exp 2011/10/28 17:32:30 1.8
@@ -18,7 +18,8 @@
# This file was updated by Jan Kratochvil <jan.kratochvil@redhat.com>.

# This test only works on Linux
-if { ![isnative] || [is_remote host] || ![istarget *-linux*] } {
+if { ![isnative] || [is_remote host] || [target_info exists use_gdb_stub]
+ || ![istarget *-linux*] } {
continue
}

--- src/gdb/testsuite/gdb.threads/attachstop-mt.exp 2011/10/14 16:05:05 1.8
+++ src/gdb/testsuite/gdb.threads/attachstop-mt.exp 2011/10/28 17:32:30 1.9
@@ -17,7 +17,8 @@
# <jjohnstn@redhat.com> and Jan Kratochvil <jan.kratochvil@redhat.com>.

# This test only works on Linux
-if { ![isnative] || [is_remote host] || ![istarget *-linux*] } {
+if { ![isnative] || [is_remote host] || [target_info exists use_gdb_stub]
+ || ![istarget *-linux*] } {
continue
}