[Bash-completion-devel] [bash-completion-Bugs][312477] _filedir unit test fails in C locale with bash 4.1.x, with any locale with bash 3.2.x

bash-completion-bugs at alioth.debian.org bash-completion-bugs at alioth.debian.org
Wed Oct 27 17:36:04 UTC 2010


Bugs item #312477, was changed at 2010-04-26 19:35 by Ville Skyttä 
You can respond by visiting: 
https://alioth.debian.org/tracker/?func=detail&atid=413095&aid=312477&group_id=100114

Status: Open
Priority: 3
Submitted By: Ville Skyttä  (scop-guest)
Assigned to: Nobody (None)
Summary: _filedir unit test fails in C locale with bash 4.1.x, with any locale with bash 3.2.x 
Distribution: None
Originally reported in: None
Milestone: None
Status: None
Original bug number: 


Initial Comment:
With my usual setting (LANG=en_US.UTF-8) it passes, but:

$ LANG=C ./runUnit _filedir.exp
WARNING: Couldn't find the global config file.
Test Run By scop on Mon Apr 26 19:33:04 2010
Native configuration is x86_64-unknown-linux-gnu

                === unit tests ===

Schedule of variations:
    unix

Running target unix
Using /usr/share/dejagnu/baseboards/unix.exp as board description file for target.
Using /usr/share/dejagnu/config/unix.exp as generic interface file for target.
Using ./config/default.exp as tool-and-target-specific interface file.
Running ./unit/_filedir.exp ...
FAIL: f aé/ should show completions at timeout
FAIL: f aé/ should show completions

                === unit Summary ===

# of expected passes            46
# of unexpected failures        2
/home/scop/cvs/bash-completion/test, bash-4.1.2(1)-release


----------------------------------------------------------------------

>Comment By: Ville Skyttä  (scop-guest)
Date: 2010-10-27 20:36

Message:
Thanks, it works as documented in the comments now, and indicates that one test was unsupported when expected. I'll leave it up to you to decide whether to close this bug now.

----------------------------------------------------------------------

Comment By: Freddy Vulto (fvu-guest)
Date: 2010-10-26 23:46

Message:
Improved things in commit 20f7d5c.  Can you give this a try?

-# Execute this test only when LC_CTYPE matches *UTF-8*
-if {[string first "UTF-8" $::LC_CTYPE] != -1} {
-    set test "completing f a<C3><A9> should return g"
+set test "completing f a<C3><A9> should return g when LC_CTYPE=C"
+# Execute this test only on bash >= 4 with LC_CTYPE matching *UTF-8*
+# See also: http://www.mail-archive.com/bash-completion-devel\
+#           @lists.alioth.debian.org/msg02265.html
+if {
+    [lindex $::BASH_VERSINFO 0] >= 4 && 
+    [string first "UTF-8" $::LC_CTYPE] != -1
+} {
     assert_complete_dir g "f a<C3><A9>/" "fixtures/_filedir"
+} else {
+    unsupported "$test"
 }

Todo: also don't execute the test with expect >= 5.44 cause this will probably give a segmentation fault :-(

----------------------------------------------------------------------

Comment By: Ville Skyttä  (scop-guest)
Date: 2010-10-23 13:13

Message:
No crash here (expect 5.43.0).

$ expect -f unicode.exp 
spawn bash
aaébbPASS$

----------------------------------------------------------------------

Comment By: Freddy Vulto (fvu-guest)
Date: 2010-10-23 12:38

Message:
I think I found a bug (segmentation fault) in Expect regarding unicode.  Can you confirm this?

    $ cat unicode.exp
    spawn bash
    send "aaébb"
    expect -ex "aaébb" {send_user "PASS"}
    $ expect -f unicode.exp
    spawn bash
    aaébbSegmentation fault

See also: http://groups.google.com/group/comp.lang.tcl/browse_thread/thread/8ea4b666c2f31cac#

----------------------------------------------------------------------

Comment By: Ville Skyttä  (scop-guest)
Date: 2010-10-21 08:50

Message:
Yes, it works with bash 4.1.7 and en_US.UTF-8 for me, and appears to skip the test with that bash version and LC_ALL=C. I'd expect it to explicitly tell me that some tests were unsupported/skipped though; with en_US.UTF-8 I get:

                === unit Summary ===

# of expected passes            47
/home/scop/cvs/bash-completion/test, bash-4.1.7(1)-release

...and with LC_ALL=C:

                === unit Summary ===
                                                                                                                                                                                                                  
# of expected passes            46                                                                                                                                                                                
/home/scop/cvs/bash-completion/test, bash-4.1.7(1)-release                                                                                                                                                        

----------------------------------------------------------------------

Comment By: Freddy Vulto (fvu-guest)
Date: 2010-10-21 00:23

Message:
I'm running out of options...  But it's working on bash-4.1 now, right?  Then maybe we can skip the unicode test for bash <= 3?

----------------------------------------------------------------------

Comment By: Ville Skyttä  (scop-guest)
Date: 2010-10-21 00:00

Message:
$ locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=

$ LC_ALL=en_US.UTF-8 ./run --tool_exec ~/bin/bash-3.2.39 [...]
# Setting LC_ALL makes no difference

$ expect -v
expect version 5.43.0

$ tclsh
% info patchlevel
8.5.8

Patching test/config/bashrc and test/lib/library.exp with your suggested changes make no difference either :(

----------------------------------------------------------------------

Comment By: Freddy Vulto (fvu-guest)
Date: 2010-10-20 23:49

Message:


More information about the Bash-completion-devel mailing list