diff options
Diffstat (limited to 'gdb/testsuite')
-rw-r--r-- | gdb/testsuite/ChangeLog | 29 | ||||
-rw-r--r-- | gdb/testsuite/gdb.base/commands.exp | 2 | ||||
-rw-r--r-- | gdb/testsuite/gdb.base/display.exp | 15 | ||||
-rw-r--r-- | gdb/testsuite/gdb.base/long_long.c | 2 | ||||
-rw-r--r-- | gdb/testsuite/gdb.base/long_long.exp | 167 | ||||
-rw-r--r-- | gdb/testsuite/gdb.base/step-test.exp | 3 | ||||
-rw-r--r-- | gdb/testsuite/gdb.c++/virtfunc.exp | 32 |
7 files changed, 169 insertions, 81 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index c1e25ca..7d31fa8 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,32 @@ +1999-08-05 Stan Shebs <shebs@andros.cygnus.com> + + * gdb.base/display.exp: Help expect by putting a newline in the + funky printf, remove a bogus p/a test. + +1999-08-05 Elena Zannoni <ezannoni@kwikemart.cygnus.com> + + * gdb.base/display.exp: Make sure that when we say 'run', we are + connected to the target. This is necessary when running not + natively. + +1999-08-03 Stan Shebs <shebs@andros.cygnus.com> + + * gdb.base/step-test.exp: Removed some extraneous messages. + + * gdb.base/long_long.exp: Don't run memory examination tests + on little-endian targets (they will need a different set of + results to match). + +1999-08-02 Stan Shebs <shebs@andros.cygnus.com> + + * gdb.c++/virtfunc.exp: Expect to fail the virtual call tests + until somebody decides to fix GDB. + + * gdb.base/long_long.c: Stop compiler complaint by specifying long + constant as "ULL". + * gdb.base/long_long.exp: Loosen x/c test, add partial result + matches for a couple x/2 commands. + 1999-07-30 Stan Shebs <shebs@andros.cygnus.com> * gdb.c++/ref-types.cc, gdb.c++/ref-types.exp: Appease doschk diff --git a/gdb/testsuite/gdb.base/commands.exp b/gdb/testsuite/gdb.base/commands.exp index 62d9f10..c9cea08 100644 --- a/gdb/testsuite/gdb.base/commands.exp +++ b/gdb/testsuite/gdb.base/commands.exp @@ -185,7 +185,7 @@ proc infrun_breakpoint_command_test {} { if { [istarget "hppa*-hp-hpux*"] } { gdb_test "continue" \ "Continuing.*.*.*Breakpoint \[0-9\]*, factorial \\(value=5\\).*at.*\[0-9\]*\[ \]*if \\(value > 1\\) \{.*\[0-9\]*\[ \]*value \\*= factorial \\(value - 1\\);.*" \ - "contiune in infrun_breakpoint_command_test" + "continue in infrun_breakpoint_command_test" } else { gdb_test "continue" \ "Breakpoint \[0-9\]*, factorial \\(value=5\\).*at.* diff --git a/gdb/testsuite/gdb.base/display.exp b/gdb/testsuite/gdb.base/display.exp index 760a2e0..98cd73c 100644 --- a/gdb/testsuite/gdb.base/display.exp +++ b/gdb/testsuite/gdb.base/display.exp @@ -46,6 +46,7 @@ gdb_exit gdb_start gdb_reinitialize_dir $srcdir/$subdir gdb_load ${binfile} + # Some coverage stuff # gdb_test "kill" ".*The program is not being run.*" @@ -59,9 +60,16 @@ gdb_test "detach" ".*" # Ok, on to real life # -if {![runto main]} { - fail "Could not run to main - other tests will fail." +gdb_exit +gdb_start +gdb_reinitialize_dir $srcdir/$subdir +gdb_load ${binfile} + +if ![runto_main] then { + fail "Could not run to main - other tests will fail." + continue } + gdb_test "b 14" ".*Breakpoint 2.*" "break do_loops" gdb_test "c" ".*Breakpoint 2, do_loops.*" "get to do_loops" @@ -133,7 +141,7 @@ gdb_test "printf" ".*Argument required.*" gdb_test "printf %d" ".*Bad format string, missing.*" gdb_test "printf \"%d" ".*Bad format string, non-terminated.*" gdb_test "printf \"%d%d\",i" ".*Wrong number of arguments.*" -gdb_test "printf \"\\\\!\\a\\f\\r\\t\\v\\b\"" ".*!.*" +gdb_test "printf \"\\\\!\\a\\f\\r\\t\\v\\b\\n\"" ".*!.*" gdb_test "printf \"\"" ".*" "re-set term" gdb_test "printf \"\\w\"" ".*Unrecognized escape character.*" gdb_test "printf \"%d\" j" ".*Invalid argument syntax.*" @@ -159,7 +167,6 @@ gdb_test "p/i sum" ".*Format letter.*is meaningless.*.*" "no i" gdb_test "p/a &sum" ".*= $hex.*<sum>.*" gdb_test "p/a main+1000" ".*= $hex.*<.*>.*" gdb_test "p/a \$pc" ".*= $hex.*<do_vars+.*>.*" -gdb_test "p/a &j" ".*= $hex.*<do_vars+.*>.*" gdb_test "p/a &&j" ".*A parse error.*" # Done! diff --git a/gdb/testsuite/gdb.base/long_long.c b/gdb/testsuite/gdb.base/long_long.c index a76e279..04fba92 100644 --- a/gdb/testsuite/gdb.base/long_long.c +++ b/gdb/testsuite/gdb.base/long_long.c @@ -31,7 +31,7 @@ int known_types() */ bin = 0x123456789abcdefLL; /* 64 bits = 16 hex digits */ oct = 01234567123456701234567LL; /* = 21+ octal digits */ - dec = 12345678901234567890LL; /* = 19+ decimal digits */ + dec = 12345678901234567890ULL; /* = 19+ decimal digits */ /* Stop here and look! */ diff --git a/gdb/testsuite/gdb.base/long_long.exp b/gdb/testsuite/gdb.base/long_long.exp index 07006b6..b779434 100644 --- a/gdb/testsuite/gdb.base/long_long.exp +++ b/gdb/testsuite/gdb.base/long_long.exp @@ -1,4 +1,4 @@ -# Copyright (C) 1997, 1998 Free Software Foundation, Inc. +# Copyright (C) 1997, 1998, 1999 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 @@ -58,6 +58,17 @@ if { ![runto known_types] } then { return } +set target_bigendian_p 1 +send_gdb "show endian\n" +gdb_expect { + -re ".*little endian.*$gdb_prompt $" { set target_bigendian_p 0 } + -re ".*big endian.*$gdb_prompt $" { } + -re ".*$gdb_prompt $" { + fail "getting target endian" + } + default { fail "(timeout) getting target endian" } +} + gdb_test "n 4" ".*38.*" "get to known place" # Check the hack for long long prints. @@ -87,76 +98,90 @@ gdb_test "p/a oct" ".*0x.*77053977.*" gdb_test "p/c oct" ".*'w'.*" gdb_test "p/f oct" ".*-5.9822653797615723e-120.*" -gdb_test "p/d *(int *)&oct" ".*-1490098887.*" -gdb_test "p/u *(int *)&oct" ".*2804868409.*" -gdb_test "p/o *(int *)&oct" ".*024713562471.*" -gdb_test "p/t *(int *)&oct" ".*10100111001011101110010100111001.*" -gdb_test "p/a *(int *)&oct" ".*0xf*a72ee539.*" -gdb_test "p/c *(int *)&oct" ".*57 '9'.*" -gdb_test "p/f *(int *)&oct" ".*-2.42716126e-15.*" - -gdb_test "p/d *(short *)&oct" ".*-22738.*" -gdb_test "p/u *(short *)&oct" ".*42798.*" -gdb_test "p/o *(short *)&oct" ".*0123456.*" -gdb_test "p/t *(short *)&oct" ".*1010011100101110.*" -gdb_test "p/a *(short *)&oct" ".*0xf*ffffa72e.*" -gdb_test "p/c *(short *)&oct" ".* 46 '.'.*" -gdb_test "p/a *(short *)&oct" ".*0xf*ffffa72e.*" -gdb_test "p/f *(short *)&oct" ".*-22738.*" - -gdb_test "x/x &oct" ".*0xa72ee539.*" -gdb_test "x/d &oct" ".*.-1490098887*" -gdb_test "x/u &oct" ".*2804868409.*" -gdb_test "x/o &oct" ".*024713562471.*" -gdb_test "x/t &oct" ".*10100111001011101110010100111001.*" -gdb_test "x/a &oct" ".*0xa72ee539.*" -gdb_test "x/c &oct" ".*-89 '\\\\247'.*" -gdb_test "x/f &oct" ".*-5.9822653797615723e-120.*" - -gdb_test "x/2x &oct" ".*.*" -gdb_test "x/2d &oct" ".*.*" -gdb_test "x/2u &oct" ".*.*" -gdb_test "x/2o &oct" ".*.*" -gdb_test "x/2t &oct" ".*.*" -gdb_test "x/2a &oct" ".*.*" -gdb_test "x/2c &oct" ".*.*" -gdb_test "x/2f &oct" ".*.*" - -gdb_test "x/2bx &oct" ".*.*" -gdb_test "x/2bd &oct" ".*.*" -gdb_test "x/2bu &oct" ".*.*" -gdb_test "x/2bo &oct" ".*.*" -gdb_test "x/2bt &oct" ".*.*" -gdb_test "x/2ba &oct" ".*.*" -gdb_test "x/2bc &oct" ".*.*" -gdb_test "x/2bf &oct" ".*.*" - -gdb_test "x/2hx &oct" ".*.*" -gdb_test "x/2hd &oct" ".*.*" -gdb_test "x/2hu &oct" ".*.*" -gdb_test "x/2ho &oct" ".*.*" -gdb_test "x/2ht &oct" ".*.*" -gdb_test "x/2ha &oct" ".*.*" -gdb_test "x/2hc &oct" ".*.*" -gdb_test "x/2hf &oct" ".*.*" - -gdb_test "x/2wx &oct" ".*.*" -gdb_test "x/2wd &oct" ".*.*" -gdb_test "x/2wu &oct" ".*.*" -gdb_test "x/2wo &oct" ".*.*" -gdb_test "x/2wt &oct" ".*.*" -gdb_test "x/2wa &oct" ".*.*" -gdb_test "x/2wc &oct" ".*.*" -gdb_test "x/2wf &oct" ".*.*" - -gdb_test "x/2gx &oct" ".*.*" -gdb_test "x/2gd &oct" ".*.*" -gdb_test "x/2gu &oct" ".*.*" -gdb_test "x/2go &oct" ".*.*" -gdb_test "x/2gt &oct" ".*.*" -gdb_test "x/2ga &oct" ".*.*" -gdb_test "x/2gc &oct" ".*.*" -gdb_test "x/2gf &oct" ".*.*" +if { $target_bigendian_p } { + + gdb_test "p/d *(int *)&oct" ".*-1490098887.*" + gdb_test "p/u *(int *)&oct" ".*2804868409.*" + gdb_test "p/o *(int *)&oct" ".*024713562471.*" + gdb_test "p/t *(int *)&oct" ".*10100111001011101110010100111001.*" + gdb_test "p/a *(int *)&oct" ".*0xf*a72ee539.*" + gdb_test "p/c *(int *)&oct" ".*57 '9'.*" + gdb_test "p/f *(int *)&oct" ".*-2.42716126e-15.*" + + gdb_test "p/d *(short *)&oct" ".*-22738.*" + gdb_test "p/u *(short *)&oct" ".*42798.*" + gdb_test "p/o *(short *)&oct" ".*0123456.*" + gdb_test "p/t *(short *)&oct" ".*1010011100101110.*" + gdb_test "p/a *(short *)&oct" ".*0xf*ffffa72e.*" + gdb_test "p/c *(short *)&oct" ".* 46 '.'.*" + gdb_test "p/a *(short *)&oct" ".*0xf*ffffa72e.*" + gdb_test "p/f *(short *)&oct" ".*-22738.*" + + gdb_test "x/x &oct" ".*0xa72ee539.*" + gdb_test "x/d &oct" ".*.-1490098887*" + gdb_test "x/u &oct" ".*2804868409.*" + gdb_test "x/o &oct" ".*024713562471.*" + gdb_test "x/t &oct" ".*10100111001011101110010100111001.*" + gdb_test "x/a &oct" ".*0xa72ee539.*" + gdb_test "x/c &oct" ".*-89 .*" + # FIXME GDB's output is correct, but this longer match fails. + # gdb_test "x/c &oct" ".*-89 '\\\\247'.*" + gdb_test "x/f &oct" ".*-5.9822653797615723e-120.*" + + # FIXME Fill in the results for all the following tests. (But be careful + # about looking at locations with unspecified contents!) + + gdb_test "x/2x &oct" ".*0xa72ee53977053977.*" + gdb_test "x/2d &oct" ".*-6399925985474168457.*" + gdb_test "x/2u &oct" ".*.*" + gdb_test "x/2o &oct" ".*.*" + gdb_test "x/2t &oct" ".*.*" + gdb_test "x/2a &oct" ".*.*" + gdb_test "x/2c &oct" ".*.*" + gdb_test "x/2f &oct" ".*.*" + + gdb_test "x/2bx &oct" ".*.*" + gdb_test "x/2bd &oct" ".*.*" + gdb_test "x/2bu &oct" ".*.*" + gdb_test "x/2bo &oct" ".*.*" + gdb_test "x/2bt &oct" ".*.*" + gdb_test "x/2ba &oct" ".*.*" + gdb_test "x/2bc &oct" ".*.*" + gdb_test "x/2bf &oct" ".*.*" + + gdb_test "x/2hx &oct" ".*.*" + gdb_test "x/2hd &oct" ".*.*" + gdb_test "x/2hu &oct" ".*.*" + gdb_test "x/2ho &oct" ".*.*" + gdb_test "x/2ht &oct" ".*.*" + gdb_test "x/2ha &oct" ".*.*" + gdb_test "x/2hc &oct" ".*.*" + gdb_test "x/2hf &oct" ".*.*" + + gdb_test "x/2wx &oct" ".*.*" + gdb_test "x/2wd &oct" ".*.*" + gdb_test "x/2wu &oct" ".*.*" + gdb_test "x/2wo &oct" ".*.*" + gdb_test "x/2wt &oct" ".*.*" + gdb_test "x/2wa &oct" ".*.*" + gdb_test "x/2wc &oct" ".*.*" + gdb_test "x/2wf &oct" ".*.*" + + gdb_test "x/2gx &oct" ".*.*" + gdb_test "x/2gd &oct" ".*.*" + gdb_test "x/2gu &oct" ".*.*" + gdb_test "x/2go &oct" ".*.*" + gdb_test "x/2gt &oct" ".*.*" + gdb_test "x/2ga &oct" ".*.*" + gdb_test "x/2gc &oct" ".*.*" + gdb_test "x/2gf &oct" ".*.*" + +} else { + + # FIXME Add little-endian versions of these tests, or define a + # gdb_test_bi with two strings to match on. + +} gdb_exit return 0 diff --git a/gdb/testsuite/gdb.base/step-test.exp b/gdb/testsuite/gdb.base/step-test.exp index 6eeda0b..c8232cb 100644 --- a/gdb/testsuite/gdb.base/step-test.exp +++ b/gdb/testsuite/gdb.base/step-test.exp @@ -149,7 +149,6 @@ test_i "stepi into function" "stepi" \ send_gdb "finish\n" gdb_expect { -re ".*(Program received|Program exited).*$gdb_prompt $" { - puts "*** Matched Program recieved" # Oops... We ran to the end of the program... Better reset if {![runto_main]} then { fail "Can't run to main" @@ -162,13 +161,11 @@ gdb_expect { fail "stepi: finish call" } -re ".*${decimal}.*callee.*NEXTI.*$gdb_prompt $" { - puts "*** Matched success..." pass "stepi: finish call" } -re ".*${decimal}.*callee.*STEPI.*$gdb_prompt $" { # On PA64 we end up at a different instruction than PA32 if { [istarget "hppa2.0w-hp-hpux*"] } { - puts "*** Matched success..." pass "stepi: finish call 2" } else { fail "stepi: finish call 2" diff --git a/gdb/testsuite/gdb.c++/virtfunc.exp b/gdb/testsuite/gdb.c++/virtfunc.exp index e182744..dd73cab 100644 --- a/gdb/testsuite/gdb.c++/virtfunc.exp +++ b/gdb/testsuite/gdb.c++/virtfunc.exp @@ -1,4 +1,4 @@ -# Copyright (C) 1992, 1994, 1997 Free Software Foundation, Inc. +# Copyright (C) 1992, 1994, 1997, 1999 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 @@ -34,6 +34,7 @@ if [get_compiler_info ${binfile} "c++"] { return -1 } +source ${binfile}.ci # Check to see if we have an executable to test. If not, then either we # haven't tried to compile one, or the compilation failed for some reason. @@ -678,6 +679,7 @@ proc test_virtual_calls {} { global gdb_prompt global GDB global nl + global gcc_compiled if [target_info exists gdb,cannot_call_functions] { setup_xfail "*-*-*" 2416 @@ -685,6 +687,12 @@ proc test_virtual_calls {} { return 0 } + # FIXME: In fall 1998, GCC's virtual function type info was changed, + # which causes GDB to be unable to resolve these calls. Until the + # problem is fixed, XFAIL these tests. -sts 1999-08-02 + + if {$gcc_compiled} then { setup_xfail "*-*-*" } + send_gdb "print pAe->f()\n" gdb_expect { -re ".* = 20$nl$gdb_prompt $" { pass "print pAe->f()" } @@ -706,6 +714,8 @@ proc test_virtual_calls {} { eof { fail "print pAe->f() ($GDB dumped core) (FIXME)" ; gdb_virtfunc_restart; return } } + if {$gcc_compiled} then { setup_xfail "*-*-*" } + send_gdb "print pAa->f()\n" gdb_expect { -re ".* = 1$nl$gdb_prompt $" { pass "print pAa->f()" } @@ -718,6 +728,8 @@ proc test_virtual_calls {} { eof { fail "print pAa->f() ($GDB dumped core) (FIXME)" ; gdb_virtfunc_restart; return } } + if {$gcc_compiled} then { setup_xfail "*-*-*" } + send_gdb "print pDe->vg()\n" gdb_expect { -re ".* = 202$nl$gdb_prompt $" { pass "print pDe->vg()" } @@ -730,6 +742,8 @@ proc test_virtual_calls {} { eof { fail "print pDe->vg() ($GDB dumped core) (FIXME)" ; gdb_virtfunc_restart; return } } + if {$gcc_compiled} then { setup_xfail "*-*-*" } + send_gdb "print pADe->vg()\n" gdb_expect { -re ".* = 202$nl$gdb_prompt $" { pass "print pADe->vg()" } @@ -742,6 +756,8 @@ proc test_virtual_calls {} { eof { fail "print pADe->vg() ($GDB dumped core) (FIXME)" ; gdb_virtfunc_restart; return } } + if {$gcc_compiled} then { setup_xfail "*-*-*" } + send_gdb "print pDd->vg()\n" gdb_expect { -re ".* = 101$nl$gdb_prompt $" { pass "print pDd->vg()" } @@ -754,6 +770,8 @@ proc test_virtual_calls {} { eof { fail "print pDd->vg() ($GDB dumped core) (FIXME)" ; gdb_virtfunc_restart; return } } + if {$gcc_compiled} then { setup_xfail "*-*-*" } + send_gdb "print pEe->vvb()\n" gdb_expect { -re ".* = 411$nl$gdb_prompt $" { pass "print pEe->vvb()" } @@ -766,6 +784,8 @@ proc test_virtual_calls {} { eof { fail "print pEe->vvb() ($GDB dumped core) (FIXME)" ; gdb_virtfunc_restart; return } } + if {$gcc_compiled} then { setup_xfail "*-*-*" } + send_gdb "print pVB->vvb()\n" gdb_expect { -re ".* = 407$nl$gdb_prompt $" { pass "print pVB->vvb()" } @@ -778,6 +798,8 @@ proc test_virtual_calls {} { eof { fail "print pVB->vvb() ($GDB dumped core) (FIXME)" ; gdb_virtfunc_restart; return } } + if {$gcc_compiled} then { setup_xfail "*-*-*" } + send_gdb "print pBe->vvb()\n" gdb_expect { -re ".* = 411$nl$gdb_prompt $" { pass "print pBe->vvb()" } @@ -790,6 +812,8 @@ proc test_virtual_calls {} { eof { fail "print pBe->vvb() ($GDB dumped core) (FIXME)" ; gdb_virtfunc_restart; return } } + if {$gcc_compiled} then { setup_xfail "*-*-*" } + send_gdb "print pDe->vvb()\n" gdb_expect { -re ".* = 411$nl$gdb_prompt $" { pass "print pDe->vvb()" } @@ -802,6 +826,8 @@ proc test_virtual_calls {} { eof { fail "print pDe->vvb() ($GDB dumped core) (FIXME)" ; gdb_virtfunc_restart; return } } + if {$gcc_compiled} then { setup_xfail "*-*-*" } + send_gdb "print pEe->vd()\n" gdb_expect { -re ".* = 282$nl$gdb_prompt $" { pass "print pEe->vd()" } @@ -814,6 +840,8 @@ proc test_virtual_calls {} { eof { fail "print pEe->vd() ($GDB dumped core) (FIXME)" ; gdb_virtfunc_restart; return } } + if {$gcc_compiled} then { setup_xfail "*-*-*" } + send_gdb "print pEe->fvb()\n" gdb_expect { -re ".* = 311$nl$gdb_prompt $" { pass "print pEe->fvb()" } @@ -826,6 +854,8 @@ proc test_virtual_calls {} { eof { fail "print pEe->fvb() ($GDB dumped core) (FIXME)" ; gdb_virtfunc_restart; return } } + if {$gcc_compiled} then { setup_xfail "*-*-*" } + send_gdb "print pEe->D::vg()\n" setup_xfail "*-*-*" gdb_expect { |