From 344c97118d14fbbc1e156e459a046f63bab99d9a Mon Sep 17 00:00:00 2001 From: Fred Fish Date: Mon, 16 Feb 2004 19:04:52 +0000 Subject: [PATCH] 2004-02-16 Fred Fish * 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. --- gdb/testsuite/ChangeLog | 8 ++ gdb/testsuite/gdb.arch/gdb1291.c | 45 ---------- gdb/testsuite/gdb.arch/gdb1291.exp | 42 ++++++++-- gdb/testsuite/gdb.arch/gdb1291.s | 129 +++++++++++++++++++++++++++++ 4 files changed, 173 insertions(+), 51 deletions(-) delete mode 100755 gdb/testsuite/gdb.arch/gdb1291.c create mode 100644 gdb/testsuite/gdb.arch/gdb1291.s diff --git a/gdb/testsuite/ChangeLog b/gdb/testsuite/ChangeLog index e607b1c2deb..174a787d02e 100644 --- a/gdb/testsuite/ChangeLog +++ b/gdb/testsuite/ChangeLog @@ -1,3 +1,11 @@ +2004-02-16 Fred Fish + + * 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 * 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 7e70e6e4bf6..00000000000 --- 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 2c1f4cc41e6..4264d6c01b8 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 00000000000..0f40b8f81cd --- /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 +! +! 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)" -- 2.30.2