# This testcase is part of GDB, the GNU debugger. # Copyright 2012-2017 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 3 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, see . # Test printing of various values. # NOTE: The tests here intentionally do not require a go compiler. load_lib "go.exp" if { [skip_go_tests] } { continue } proc test_float_accepted {} { global gdb_prompt # Test parsing of fp value with legit text following. gdb_test "p 1234.5+1" " = 1235.5" "check fp + text" # Test all the suffixes (including no suffix). gdb_test "p 1." " = 1" gdb_test "p 1.5" " = 1.5" gdb_test "p 1.f" " = 1" gdb_test "p 1.5f" " = 1.5" gdb_test "p 1.l" " = 1" gdb_test "p 1.5l" " = 1.5" # Test hexadecimal floating point. set test "p 0x1.1" gdb_test_multiple $test $test { -re " = 1\\.0625\r\n$gdb_prompt $" { pass $test } -re "Invalid number \"0x1\\.1\"\\.\r\n$gdb_prompt $" { # Older glibc does not support hex float, newer does. xfail $test } } } proc test_float_rejected {} { # Test bad suffixes. test_print_reject "p 1.1x" test_print_reject "p 1.1ff" test_print_reject "p 1.1ll" } # Start with a fresh gdb. gdb_exit gdb_start gdb_reinitialize_dir $srcdir/$subdir if [set_lang_go] { test_float_accepted test_float_rejected } else { warning "Go print tests suppressed" }