Re: [testsuite patch] i386 regression for funcargs.exp [Re: [PATCH 3/3] Remove HP-UX references fom testsuite]

Simon Marchi
2016-01-08T21:15:21Z

On 16-01-08 02:30 PM, Jan Kratochvil wrote:
> 3ca22649a6dfeb71058c33be4d0542b98f1f0ff5 is the first bad commit
> commit 3ca22649a6dfeb71058c33be4d0542b98f1f0ff5
> Author: Simon Marchi <simon.marchi@polymtl.ca>
> Date: Mon Dec 21 12:51:54 2015 -0500
> Remove HP-UX references fom testsuite
> ### a/gdb/testsuite/gdb.base/funcargs.exp
> ### b/gdb/testsuite/gdb.base/funcargs.exp
> @@ -1013,13 +1013,6 @@ proc localvars_in_indirect_call { } {
> #
>
> gdb_test_multiple "finish" "finish from indirectly called function" {
> - -re "\\(\\*pointer_to_call0a\\) \\(c, s, i, l\\);.*First.*$gdb_prompt $" {
> - #On hppa2.0w-hp-hpux11.00, gdb finishes at one line earlier than
> - #hppa1.1-hp-hpux11.00. Therefore, an extra "step" is necessary
> - #to continue the test.
> - send_gdb "step\n"
> - exp_continue
> - }
> -re ".*\\(\\*pointer_to_call0a\\) \\(c, s, i, l\\);.*Second.*$gdb_prompt $" {
> pass "finish from indirectly called function"
> }
>
> ->
>
> finish^M
> Run till exit from #0 call0a (c=97 'a', s=1, i=2, l=3) at ./gdb.base/funcargs.c:82^M
> 0x0804a189 in main () at ./gdb.base/funcargs.c:583^M
> 583 (*pointer_to_call0a) (c, s, i, l); /* First step into call0a. */^M
> -(gdb) step^M
> -584 (*pointer_to_call0a) (c, s, i, l); /* Second step into call0a. */^M
> -(gdb) PASS: gdb.base/funcargs.exp: finish from indirectly called function
> +(gdb) FAIL: gdb.base/funcargs.exp: finish from indirectly called function
> step^M
> -call0a (c=97 'a', s=1, i=2, l=3) at ./gdb.base/funcargs.c:82^M
> -82 c = 'a';^M
> -(gdb) PASS: gdb.base/funcargs.exp: stepping into indirectly called function
> +584 (*pointer_to_call0a) (c, s, i, l); /* Second step into call0a. */^M
> +(gdb) FAIL: gdb.base/funcargs.exp: stepping into indirectly called function
>
> At least on x86_64 with testsuite in -m32 (expecting native i386 would be the
> same).
>
> OK for check-in?
>
>
> Jan

I also don't see this on Ubuntu 14.04.3 LTS, gdb master, gcc 4.8.4.

$ make check RUNTESTFLAGS="--target_board=unix/-m32 funcargs.exp"
make[1]: Entering directory `/home/emaisin/build/binutils-gdb/gdb/testsuite'
Nothing to be done for all...
make check-single
make[2]: Entering directory `/home/emaisin/build/binutils-gdb/gdb/testsuite'
rootme=`pwd`; export rootme; srcdir=/home/emaisin/src/binutils-gdb/gdb/testsuite ; export srcdir ; EXPECT=`if [ "${READ1}" != "" ] ; then echo ${rootme}/expect-read1; elif [ -f ${rootme}/../../expect/expect ] ; then echo ${rootme}/../../expect/expect ; else echo expect ; fi` ; export EXPECT ; EXEEXT= ; export EXEEXT ; LD_LIBRARY_PATH=$rootme/../../expect:$rootme/../../libstdc++:$rootme/../../tk/unix:$rootme/../../tcl/unix:$rootme/../../bfd:$rootme/../../opcodes:$LD_LIBRARY_PATH; export LD_LIBRARY_PATH; if [ -f ${rootme}/../../expect/expect ] ; then TCL_LIBRARY=${srcdir}/../../tcl/library ; export TCL_LIBRARY ; fi ; runtest --target_board=unix/-m32 funcargs.exp
WARNING: Couldn't find the global config file.
Test Run By emaisin on Fri Jan 8 16:10:58 2016
Native configuration is x86_64-pc-linux-gnu

=== gdb tests ===

Schedule of variations:
unix/-m32

Running target unix/-m32
Using /usr/local/share/dejagnu/baseboards/unix.exp as board description file for target.
Using /usr/local/share/dejagnu/config/unix.exp as generic interface file for target.
Using /home/emaisin/src/binutils-gdb/gdb/testsuite/config/unix.exp as tool-and-target-specific interface file.
Running /home/emaisin/src/binutils-gdb/gdb/testsuite/gdb.base/funcargs.exp ...

=== gdb Summary ===

# of expected passes 141
/home/emaisin/build/binutils-gdb/gdb/testsuite/../../gdb/gdb version 7.10.50.20160108-git -nw -nx -data-directory /home/emaisin/build/binutils-gdb/gdb/testsuite/../data-directory

make[2]: Leaving directory `/home/emaisin/build/binutils-gdb/gdb/testsuite'
make[1]: Leaving directory `/home/emaisin/build/binutils-gdb/gdb/testsuite'
$ ag "finish from indirectly called function" testsuite/gdb.sum
146:PASS: gdb.base/funcargs.exp: finish from indirectly called function

But if there is a configuration where this is needed, then yes, it should be re-added.