[gdb/testsuite] Add have_host_locale
With test-case gdb.tui/pr30056.exp, I run into: ... sh: warning: setlocale: LC_ALL: cannot change locale (C.UTF-8)^M ... and then subsequently into: ... WARNING: timeout in accept_gdb_output FAIL: gdb.tui/pr30056.exp: Control-C ... This is on a CentOS 7 distro for powerpc64le. Either it has no C.UTF-8 support, or it's not installed: ... $ locale -a | grep ^C C $ ... Fix this by: - adding a new proc have_host_locale, and - using it in all test-cases using setenv LC_ALL. Tested on powerpc64le-linux and x86_64-linux.
This commit is contained in:
parent
b96cac1607
commit
83aa25512d
7 changed files with 42 additions and 0 deletions
|
@ -18,6 +18,7 @@
|
||||||
load_lib "ada.exp"
|
load_lib "ada.exp"
|
||||||
|
|
||||||
require allow_ada_tests
|
require allow_ada_tests
|
||||||
|
require {have_host_locale C.UTF-8}
|
||||||
|
|
||||||
# Enable basic use of UTF-8. LC_ALL gets reset for each testfile. We
|
# Enable basic use of UTF-8. LC_ALL gets reset for each testfile. We
|
||||||
# want this despite the program itself using Latin-1, as this test is
|
# want this despite the program itself using Latin-1, as this test is
|
||||||
|
|
|
@ -18,6 +18,7 @@
|
||||||
load_lib "ada.exp"
|
load_lib "ada.exp"
|
||||||
|
|
||||||
require allow_ada_tests
|
require allow_ada_tests
|
||||||
|
require {have_host_locale C.UTF-8}
|
||||||
|
|
||||||
# Enable basic use of UTF-8. LC_ALL gets reset for each testfile. We
|
# Enable basic use of UTF-8. LC_ALL gets reset for each testfile. We
|
||||||
# want this despite the program itself using Latin-1, as this test is
|
# want this despite the program itself using Latin-1, as this test is
|
||||||
|
|
|
@ -18,6 +18,7 @@
|
||||||
load_lib "ada.exp"
|
load_lib "ada.exp"
|
||||||
|
|
||||||
require allow_ada_tests
|
require allow_ada_tests
|
||||||
|
require {have_host_locale C.UTF-8}
|
||||||
|
|
||||||
# Enable basic use of UTF-8. LC_ALL gets reset for each testfile.
|
# Enable basic use of UTF-8. LC_ALL gets reset for each testfile.
|
||||||
setenv LC_ALL C.UTF-8
|
setenv LC_ALL C.UTF-8
|
||||||
|
|
|
@ -25,6 +25,7 @@ if { [is_c_compiler_gcc] } {
|
||||||
# Gcc fully supports fextended-identifiers starting GCC 5.
|
# Gcc fully supports fextended-identifiers starting GCC 5.
|
||||||
require {expr [gcc_major_version] >= 5}
|
require {expr [gcc_major_version] >= 5}
|
||||||
}
|
}
|
||||||
|
require {have_host_locale C.UTF-8}
|
||||||
|
|
||||||
standard_testfile
|
standard_testfile
|
||||||
|
|
||||||
|
|
|
@ -18,6 +18,7 @@
|
||||||
load_lib rust-support.exp
|
load_lib rust-support.exp
|
||||||
require allow_rust_tests
|
require allow_rust_tests
|
||||||
require {can_compile rust}
|
require {can_compile rust}
|
||||||
|
require {have_host_locale C.UTF-8}
|
||||||
|
|
||||||
# Non-ASCII identifiers were allowed starting in 1.53.
|
# Non-ASCII identifiers were allowed starting in 1.53.
|
||||||
require {rust_at_least 1.53}
|
require {rust_at_least 1.53}
|
||||||
|
|
|
@ -18,6 +18,7 @@
|
||||||
# This PR is fixed in the in-repo copy of readline. System readline may or
|
# This PR is fixed in the in-repo copy of readline. System readline may or
|
||||||
# may not be fixed, so skip this test-case.
|
# may not be fixed, so skip this test-case.
|
||||||
require !with_system_readline
|
require !with_system_readline
|
||||||
|
require {have_host_locale C.UTF-8}
|
||||||
|
|
||||||
tuiterm_env
|
tuiterm_env
|
||||||
|
|
||||||
|
|
|
@ -9794,5 +9794,41 @@ proc lappend_include_file { flags file } {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Return a list of supported host locales.
|
||||||
|
|
||||||
|
gdb_caching_proc host_locales { } {
|
||||||
|
set result [remote_exec host "locale -a"]
|
||||||
|
set status [lindex $result 0]
|
||||||
|
set output [lindex $result 1]
|
||||||
|
|
||||||
|
if { $status != 0 } {
|
||||||
|
return {}
|
||||||
|
}
|
||||||
|
|
||||||
|
# Split into list.
|
||||||
|
set output [string trim $output]
|
||||||
|
set l [split $output \n]
|
||||||
|
|
||||||
|
# Trim items.
|
||||||
|
set l [lmap v $l { string trim $v }]
|
||||||
|
|
||||||
|
# Normalize items to lower-case.
|
||||||
|
set l [lmap v $l { string tolower $v }]
|
||||||
|
|
||||||
|
return $l
|
||||||
|
}
|
||||||
|
|
||||||
|
# Return 1 if host locale LOCALE is supported.
|
||||||
|
|
||||||
|
proc have_host_locale { locale } {
|
||||||
|
# Normalize to lower-case.
|
||||||
|
set locale [string tolower $locale]
|
||||||
|
# Normalize to without dash.
|
||||||
|
set locale [string map { "-" "" } $locale]
|
||||||
|
|
||||||
|
set idx [lsearch [host_locales] $locale]
|
||||||
|
return [expr $idx != -1]
|
||||||
|
}
|
||||||
|
|
||||||
# Always load compatibility stuff.
|
# Always load compatibility stuff.
|
||||||
load_lib future.exp
|
load_lib future.exp
|
||||||
|
|
Loading…
Add table
Reference in a new issue