# Copyright 1993, 1997 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 # This file was written by Fred Fish. (fnf@cygnus.com) if $tracelevel then { strace $tracelevel } set prms_id 0 set bug_id 0 proc test_input_radix_2 {} { gdb_test "set radix" \ "Input and output radices now set to decimal 10, hex a, octal 12." \ "set radix #1" gdb_test "set input-radix 2" \ "Input radix now set to decimal 2, hex 2, octal 2." gdb_test "show radix" \ "Input radix set to decimal 2, hex 2, octal 2.\r\nOutput radix set to decimal 10, hex a, octal 12." \ "show radix #1" gdb_test "p 010" "8" gdb_test "p 20." "20" gdb_test "p (int) 20." "20" gdb_test "p 0xf" "15" gdb_test "p 10" "2" gdb_test "p -101" "-5" gdb_test "p 101" "5" gdb_test "p 10101" "21" gdb_test "p 4" "Invalid number \"4\"\\." gdb_test "p -2" "Invalid number \"2\"\\." } # Test input radix 3 (an non-typical radix) proc test_input_radix_3 {} { gdb_test "set radix" \ "Input and output radices now set to decimal 10, hex a, octal 12." \ "set radix #2" gdb_test "set input-radix 3" \ "Input radix now set to decimal 3, hex 3, octal 3." gdb_test "show radix" \ "Input radix set to decimal 3, hex 3, octal 3.\r\nOutput radix set to decimal 10, hex a, octal 12." \ "show radix #2" gdb_test "p 010" "8" gdb_test "p 20." "20" gdb_test "p (int) 20." "20" gdb_test "p 0xf" "15" gdb_test "p 10" "3" gdb_test "p 0" "0" gdb_test "p 1" "1" gdb_test "p 2" "2" gdb_test "p 10" "3" gdb_test "p 20" "6" gdb_test "p 100" "9" gdb_test "p -100" "-9" gdb_test "p 3" "Invalid number \"3\"." gdb_test "p 30" "Invalid number \"30\"." } proc test_input_radix_8 {} { gdb_test "set radix" \ "Input and output radices now set to decimal 10, hex a, octal 12." \ "set radix #3" gdb_test "set input-radix 8" \ "Input radix now set to decimal 8, hex 8, octal 10." gdb_test "show radix" \ "Input radix set to decimal 8, hex 8, octal 10.\r\nOutput radix set to decimal 10, hex a, octal 12." \ "set radix #3" gdb_test "p 010" "8" gdb_test "p 20." "20" gdb_test "p (int) 20." "20" gdb_test "p 0xf" "15" gdb_test "p 10" "8" gdb_test "p 20" "16" gdb_test "p -20" "-16" gdb_test "p 100" "64" gdb_test "p 8" "Invalid number \"8\"." gdb_test "p -9" "Invalid number \"9\"." } proc test_input_radix_10 {} { gdb_test "set radix" \ "Input and output radices now set to decimal 10, hex a, octal 12." \ "set radix #4" gdb_test "set input-radix 10" \ "Input radix now set to decimal 10, hex a, octal 12." gdb_test "show radix" \ "Input and output radices set to decimal 10, hex a, octal 12." \ "show radix #4" gdb_test "p 010" "8" gdb_test "p 20." "20" gdb_test "p (int) 20." "20" gdb_test "p 0xf" "15" gdb_test "p 10" "10" gdb_test "p -12" "-12" } proc test_input_radix_16 {} { gdb_test "set radix" \ "Input and output radices now set to decimal 10, hex a, octal 12." \ "set radix #5" gdb_test "set input-radix 16" \ "Input radix now set to decimal 16, hex 10, octal 20." gdb_test "show radix" \ "Input radix set to decimal 16, hex 10, octal 20.\r\nOutput radix set to decimal 10, hex a, octal 12." \ "show radix #5" gdb_test "p 010" "8" gdb_test "p 20." "20" gdb_test "p (int) 20." "20" gdb_test "p 0xf" "15" gdb_test "p 10" "16" gdb_test "p 100" "256" } proc test_output_radix_8 {} { gdb_test "set radix" \ "Input and output radices now set to decimal 10, hex a, octal 12." \ "set radix #6" gdb_test "set output-radix 8" \ "Output radix now set to decimal 8, hex 8, octal 10." gdb_test "show radix" \ "Input radix set to decimal 10, hex a, octal 12.\r\nOutput radix set to decimal 8, hex 8, octal 10." \ "show radix #6" gdb_test "p 010" "010" # FIXME: If gdb can't handle float printing in different radices, it # should at least warn once the first time that is attempted. setup_xfail "*-*-*" gdb_test "p 20." "24" "Float printing when output radix is 8" gdb_test "p (int) 20." "24" gdb_test "p 0xf" "17" gdb_test "p 10" "12" gdb_test "p 100" "144" } proc test_output_radix_10 {} { gdb_test "set radix" \ "Input and output radices now set to decimal 10, hex a, octal 12." \ "set radix #7" gdb_test "set output-radix 10" \ "Output radix now set to decimal 10, hex a, octal 12." gdb_test "show radix" \ "Input and output radices set to decimal 10, hex a, octal 12." \ "show radix #7" gdb_test "p 010" "8" gdb_test "p 20." "20" gdb_test "p (int) 20." "20" gdb_test "p 0xf" "15" gdb_test "p 10" "10" gdb_test "p 100" "100" } proc test_output_radix_16 {} { gdb_test "set radix" \ "Input and output radices now set to decimal 10, hex a, octal 12." \ "set radix #8" gdb_test "set output-radix 16" \ "Output radix now set to decimal 16, hex 10, octal 20." gdb_test "show radix" \ "Input radix set to decimal 10, hex a, octal 12.\r\nOutput radix set to decimal 16, hex 10, octal 20." \ "show radix #8" gdb_test "p 010" "8" # FIXME: If gdb can't handle float printing in different radices, it # should at least warn once the first time that is attempted. setup_xfail "*-*-*" gdb_test "p 20." "14" "Float printing when output radix is 16" gdb_test "p (int) 20." "14" gdb_test "p 0xf" "f" gdb_test "p 10" "a" gdb_test "p 100" "64" } # Start with a fresh gdb. gdb_exit gdb_start test_input_radix_2 test_input_radix_3 test_input_radix_8 test_input_radix_10 test_input_radix_16 test_output_radix_8 test_output_radix_10 test_output_radix_16