diff options
author | Fred Fish <fnf@specifix.com> | 2004-02-16 19:04:52 +0000 |
---|---|---|
committer | Fred Fish <fnf@specifix.com> | 2004-02-16 19:04:52 +0000 |
commit | 344c97118d14fbbc1e156e459a046f63bab99d9a (patch) | |
tree | 7c49eaf280e5adab7e47e0198af69aa5d9ffe553 /gdb/testsuite | |
parent | 2d822687d5e7ad4192bbb98bf80ed69dd3cbcc7d (diff) | |
download | gdb-344c97118d14fbbc1e156e459a046f63bab99d9a.zip gdb-344c97118d14fbbc1e156e459a046f63bab99d9a.tar.gz gdb-344c97118d14fbbc1e156e459a046f63bab99d9a.tar.bz2 |
2004-02-16 Fred Fish <fnf@redhat.com>
* gdb.arch/gdb1291.c: Remove
* gdb.arch/gdb1291.s: New test input file.
* gdb.arch/gdb1291.exp: Expand test to check case that should not
fail. Test for correct result, known incorrect result, other
failures and timeouts.
Diffstat (limited to 'gdb/testsuite')
-rw-r--r-- | gdb/testsuite/ChangeLog | 8 | ||||
-rwxr-xr-x | gdb/testsuite/gdb.arch/gdb1291.c | 45 | ||||
-rw-r--r-- | gdb/testsuite/gdb.arch/gdb1291.exp | 42 | ||||
-rw-r--r-- | gdb/testsuite/gdb.arch/gdb1291.s | 129 |
4 files changed, 173 insertions, 51 deletions
diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index e607b1c..174a787 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,11 @@ +2004-02-16 Fred Fish <fnf@redhat.com> + + * gdb.arch/gdb1291.c: Remove + * gdb.arch/gdb1291.s: New test input file. + * gdb.arch/gdb1291.exp: Expand test to check case that should not + fail. Test for correct result, known incorrect result, other + failures and timeouts. + 2004-02-16 Andrew Cagney <cagney@redhat.com> * gdb.base/bigcore.exp: New file. diff --git a/gdb/testsuite/gdb.arch/gdb1291.c b/gdb/testsuite/gdb.arch/gdb1291.c deleted file mode 100755 index 7e70e6e..0000000 --- a/gdb/testsuite/gdb.arch/gdb1291.c +++ /dev/null @@ -1,45 +0,0 @@ -/* Copyright 2003, 2004 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
- the Free Software Foundation; either version 2 of the License, or
- (at your option) any later version.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- GNU General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; if not, write to the Free Software
- Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
- Please email any bugs, comments, and/or additions to this file to:
- bug-gdb@gnu.org
-
- This file is part of the gdb testsuite. */
-
-void sub (void);
-
-main()
-{
- sub();
-}
-
-asm(".text\n"
- " .align 5\n"
- "sub:\n"
- "_sub:\n"
- " mov.l r14,@-r15\n"
- " mov.w .STACK2,r3\n"
- " sub r3,r15\n"
- " mov r15,r14\n"
- " mov.w .STACK2,r7\n"
- " add r7,r14\n"
- " mov r14,r15\n"
- " mov.l @r15+,r14\n"
- " rts\n"
- " nop\n"
- " .align 1\n"
- ".STACK2:\n"
- " .short 260\n");
diff --git a/gdb/testsuite/gdb.arch/gdb1291.exp b/gdb/testsuite/gdb.arch/gdb1291.exp index 2c1f4cc..4264d6c 100644 --- a/gdb/testsuite/gdb.arch/gdb1291.exp +++ b/gdb/testsuite/gdb.arch/gdb1291.exp @@ -37,9 +37,9 @@ if ![istarget "sh-*-*"] then { } set testfile "gdb1291" -set srcfile ${testfile}.c +set srcfile ${testfile}.s set binfile ${objdir}/${subdir}/${testfile} -if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable {debug}] != "" } { +if { [gdb_compile "${srcdir}/${subdir}/${srcfile}" "${binfile}" executable ""] != "" } { gdb_suppress_entire_file "Testcase compile failed, so all tests in this file will automatically fail." } @@ -56,7 +56,37 @@ if ![runto_main] then { gdb_suppress_tests } -gdb_test "b sub" "Breakpoint 2*" "set breakpoint" -gdb_test "c" "Breakpoint 2*" "get to sub" -gdb_test "bt" "#0\[ \t\]*$hex \\(\\) at sh-bt.*\r\n#1\[ \t\]*$hex in main.*" \ - "backtrace in gdb1291" +gdb_test "b sub1" "Breakpoint 2.*" "set breakpoint" +gdb_test "c" "Breakpoint 2.* sub1 .*" "get to sub1" + +send_gdb "bt\n" +gdb_expect { + -re "#0.* sub1 .*\r\n#1\[ \t\]*$hex in main \\(\\).*\r\n$gdb_prompt $" { + pass "backtrace with local variable less than or equal to 256 bytes" + } + -re ".*$gdb_prompt $" { + fail "backtrace with local variable less than or equal to 256 bytes" + } + timeout { + fail "backtrace with local variable less than or equal to 256 bytes (timeout)" + } +} + +gdb_test "b sub2" "Breakpoint 3.*" "set breakpoint" +gdb_test "c" "Breakpoint 3.* sub2 .*" "get to sub2" + +send_gdb "bt\n" +gdb_expect { + -re "#0.* sub2 .*\r\n#1\[ \t\]*$hex in main \\(\\).*\r\n$gdb_prompt $" { + pass "backtrace with local variable larger than 256 bytes" + } + -re "#0.* sub2 .*\r\n#1 0x00000000 in \\?\\? \\(\\).*\r\n$gdb_prompt $" { + kfail "gdb/1291" "backtrace with local variable larger than 256 bytes" + } + -re ".*$gdb_prompt $" { + fail "backtrace with local variable larger than 256 bytes" + } + timeout { + fail "backtrace with local variable larger than 256 bytes (timeout)" + } +} diff --git a/gdb/testsuite/gdb.arch/gdb1291.s b/gdb/testsuite/gdb.arch/gdb1291.s new file mode 100644 index 0000000..0f40b8f --- /dev/null +++ b/gdb/testsuite/gdb.arch/gdb1291.s @@ -0,0 +1,129 @@ +! Copyright 2004 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 +! the Free Software Foundation; either version 2 of the License, or +! (at your option) any later version. +! +! This program is distributed in the hope that it will be useful, +! but WITHOUT ANY WARRANTY; without even the implied warranty of +! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +! GNU General Public License for more details. +! +! You should have received a copy of the GNU General Public License +! along with this program; if not, write to the Free Software +! Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. +! +! Please email any bugs, comments, and/or additions to this file to: +! bug-gdb@gnu.org +! +! This file is part of the gdb testsuite. +! +! It was generated using "sh-elf-gcc -S gdb1291.c", using the following +! source file: +! +! #include <stdio.h> +! +! main() +! { +! printf("hello world\n"); +! sub1(); +! sub2(); +! } +! sub1() +! { +! int buf[64]; +! +! } +! +! sub2() +! { +! int buf[65]; +! +! } +! +! We use a pregenerated assembly file as the test input to avoid possible +! problems with future versions of gcc generating different code. + + .file "gdb1291.c" + .text + .section .rodata + .align 2 +.LC0: + .string "hello world\n" + .text + .align 1 + .global _main + .type _main, @function +_main: + mov.l r14,@-r15 + sts.l pr,@-r15 + mov r15,r14 + mov.l .L2,r1 + mov r1,r4 + mov.l .L3,r1 + jsr @r1 + nop + mov.l .L4,r1 + jsr @r1 + nop + mov.l .L5,r1 + jsr @r1 + nop + mov r14,r15 + lds.l @r15+,pr + mov.l @r15+,r14 + rts + nop +.L6: + .align 2 +.L2: + .long .LC0 +.L3: + .long _printf +.L4: + .long _sub1 +.L5: + .long _sub2 + .size _main, .-_main + .align 1 + .global _sub1 + .type _sub1, @function +_sub1: + mov.l r14,@-r15 + sts.l pr,@-r15 + add #-128,r15 + add #-128,r15 + mov r15,r14 + mov.w .L8,r7 + add r7,r14 + mov r14,r15 + lds.l @r15+,pr + mov.l @r15+,r14 + rts + nop + .align 1 +.L8: + .short 256 + .size _sub1, .-_sub1 + .align 1 + .global _sub2 + .type _sub2, @function +_sub2: + mov.l r14,@-r15 + sts.l pr,@-r15 + mov.w .L11,r1 + sub r1,r15 + mov r15,r14 + mov.w .L11,r7 + add r7,r14 + mov r14,r15 + lds.l @r15+,pr + mov.l @r15+,r14 + rts + nop + .align 1 +.L11: + .short 260 + .size _sub2, .-_sub2 + .ident "GCC: (GNU) 3.5.0 20040204 (experimental)" |