1 changed files with 141 additions and 0 deletions
@ -0,0 +1,141 @@ |
|||
# Copyright (C) 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 |
|||
# 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@prep.ai.mit.edu |
|||
|
|||
if $tracelevel then { |
|||
strace $tracelevel |
|||
} |
|||
|
|||
set prms_id 0 |
|||
set bug_id 0 |
|||
|
|||
# Set the current language to Java. This counts as a test. If it |
|||
# fails, then we skip the other tests. |
|||
|
|||
proc set_lang_java {} { |
|||
global gdb_prompt |
|||
|
|||
if [gdb_test "set language java" "" "set language java"] { |
|||
return 0 |
|||
} |
|||
|
|||
if [gdb_test "show language" ".* source language is \"java\".*"] { |
|||
return 0 |
|||
} |
|||
return 1; |
|||
} |
|||
|
|||
proc test_integer_literals_accepted {} { |
|||
global gdb_prompt |
|||
|
|||
# Test various decimal values. |
|||
|
|||
gdb_test "p 123" " = 123" |
|||
gdb_test "p -123" " = -123" |
|||
gdb_test "p/d 123" " = 123" |
|||
|
|||
# Test various octal values. |
|||
|
|||
gdb_test "p 0123" " = 83" |
|||
gdb_test "p 00123" " = 83" |
|||
gdb_test "p -0123" " = -83" |
|||
gdb_test "p/o 0123" " = 0123" |
|||
|
|||
# Test various hexadecimal values. |
|||
|
|||
gdb_test "p 0x123" " = 291" |
|||
gdb_test "p -0x123" " = -291" |
|||
gdb_test "p 0x0123" " = 291" |
|||
gdb_test "p -0x0123" " = -291" |
|||
gdb_test "p 0xABCDEF" " = 11259375" |
|||
gdb_test "p 0xabcdef" " = 11259375" |
|||
gdb_test "p 0xAbCdEf" " = 11259375" |
|||
gdb_test "p/x 0x123" " = 0x123" |
|||
} |
|||
|
|||
proc test_character_literals_accepted {} { |
|||
global gdb_prompt |
|||
|
|||
gdb_test "p 'a'" " = 'a'" |
|||
gdb_test "p/c 'a'" " = 'a'" |
|||
gdb_test "p/c 70" " = 'F'" |
|||
gdb_test "p/x 'a'" " = 0x61" |
|||
gdb_test "p/d 'a'" " = 97" |
|||
gdb_test "p/t 'a'" " = 1100001" |
|||
gdb_test "p/x '\\377'" " = 0xff" |
|||
gdb_test "p '\\''" " = '\\\\''" |
|||
# Note "p '\\'" => "= 92 '\\'" |
|||
gdb_test "p '\\\\'" " = '\\\\\\\\'" |
|||
|
|||
# Test the /c print format. |
|||
} |
|||
|
|||
proc test_integer_literals_rejected {} { |
|||
global gdb_prompt |
|||
|
|||
test_print_reject "p 0x" |
|||
gdb_test "p ''" "Empty character constant\\." |
|||
gdb_test "p '''" "Empty character constant\\." |
|||
test_print_reject "p '\\'" |
|||
|
|||
# Note that this turns into "p '\\\'" at gdb's input. |
|||
test_print_reject "p '\\\\\\'" |
|||
|
|||
# Test various decimal values. |
|||
|
|||
test_print_reject "p DEADBEEF" |
|||
|
|||
test_print_reject "p 123DEADBEEF" |
|||
test_print_reject "p 123foobar.bazfoo3" |
|||
test_print_reject "p 123EEEEEEEEEEEEEEEEE33333k333" |
|||
gdb_test "p 123.4+56.7" "180.(099\[0-9]*|100\[0-9\]*)" "check for floating addition" |
|||
|
|||
# Test various octal values. |
|||
|
|||
test_print_reject "p 09" |
|||
test_print_reject "p 079" |
|||
|
|||
# Test various hexadecimal values. |
|||
|
|||
test_print_reject "p 0xG" |
|||
test_print_reject "p 0xAG" |
|||
} |
|||
|
|||
|
|||
|
|||
# Start with a fresh gdb. |
|||
|
|||
gdb_exit |
|||
gdb_start |
|||
gdb_reinitialize_dir $srcdir/$subdir |
|||
|
|||
gdb_test "print \$pc" "No registers\\." |
|||
# FIXME: should also test "print $pc" when there is an execfile but no |
|||
# remote debugging target, process or corefile. |
|||
|
|||
gdb_test "set print sevenbit-strings" "" |
|||
gdb_test "set print address off" "" "" |
|||
gdb_test "set width 0" "" |
|||
|
|||
if [set_lang_java] then { |
|||
test_integer_literals_accepted |
|||
test_character_literals_accepted |
|||
test_integer_literals_rejected |
|||
} else { |
|||
fail "Java print command tests suppressed" |
|||
} |
|||
Loading…
Reference in new issue