# -*- coding: utf-8 -*- */ # This testcase is part of GDB, the GNU debugger. # Copyright 2017-2021 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 GDB's support for UTF-8 C/C++ identifiers. load_lib completion-support.exp standard_testfile # Enable basic use of UTF-8. LC_ALL gets reset for each testfile. setenv LC_ALL C.UTF-8 if { [prepare_for_testing "failed to prepare" ${testfile} [list $srcfile]] } { return -1 } if ![runto done] { fail "couldn't run to done" return } # Test expressions. gdb_test "print g_s.num_€" " = 1000" gdb_test "print num_€" " = 2000" # Test linespecs/breakpoints. gdb_test "break função2" "Breakpoint $decimal at .*$srcfile.*" set test "info breakpoints" gdb_test_multiple $test $test { -re "in função2 at .*$srcfile.*$gdb_prompt $" { pass $test } } gdb_test "continue" \ "Breakpoint $decimal, função2 \\(\\) at .*$srcfile.*" # Unload symbols from shared libraries to avoid random symbol and file # names getting in the way of completion. gdb_test_no_output "nosharedlibrary" # Tests below are about tab-completion, which doesn't work if readline # library isn't used. Check it first. if { ![readline_is_used] } { untested "no tab completion support without readline" return -1 } # Test linespec completion. # A unique completion. test_gdb_complete_unique "break my_fun" "break my_função" # A multiple-matches completion: # kfailed because gdb/readline display the completion match list like # this, with no separating space: # # (gdb) break função[TAB] # função1função2 # # ... which is bogus. setup_kfail "gdb/23211" "*-*-*" test_gdb_complete_multiple "break " "fun" "ção" {"função1" "função2"} # Test expression completion. test_gdb_complete_unique "print g_s.num" "print g_s.num_€"