[gdb/testsuite] Fix false negative in have_host_locale
authorTom de Vries <tdevries@suse.de>
Tue, 29 Aug 2023 15:27:19 +0000 (17:27 +0200)
committerTom de Vries <tdevries@suse.de>
Tue, 29 Aug 2023 15:27:19 +0000 (17:27 +0200)
In test-case gdb.tui/pr30056.exp we check for:
...
require {have_host_locale C.UTF-8}
...

The "C.UTF-8" is normalized by have_host_locale to "c.utf8", before trying to
find it in the list returned by host_locales.

On my development platform, "locale -a" lists C.utf8, which is normalized to
"c.utf8" by host_locales, so there's a match and have_host_locale returns true.

On another platform however, "locale -a" lists C.UTF-8, which is normalized to
"c.utf-8" by host_locales, so there's no match and have_host_locale returns false.

Fix this by also dropping the dash in host_locales.

Tested on x86_64-linux.

gdb/testsuite/lib/gdb.exp

index bcf536e0cc5206439e9f2ddb2ac4086875cdeff4..1b9179401c456d07263afad0615a686efa761f7b 100644 (file)
@@ -9936,6 +9936,8 @@ gdb_caching_proc host_locales { } {
 
     # Normalize items to lower-case.
     set l [lmap v $l { string tolower $v }]
+    # Normalize items to without dash.
+    set l [lmap v $l { string map { "-" "" } $v }]
 
     return $l
 }