diff options
Diffstat (limited to 'test/unit/_filedir.exp')
-rw-r--r-- | test/unit/_filedir.exp | 82 |
1 files changed, 43 insertions, 39 deletions
diff --git a/test/unit/_filedir.exp b/test/unit/_filedir.exp index 204d31cf..de494084 100644 --- a/test/unit/_filedir.exp +++ b/test/unit/_filedir.exp @@ -20,17 +20,17 @@ proc setup {} { # directories containing `*' or `\' aren't allowed on Cygwin/Windows if {! [is_cygwin]} { # Create directory `a*b' - assert_bash_exec {(cd fixtures/_filedir && [ ! -d a\*b ] && mkdir a\*b && touch a\*b/j || true)} + assert_bash_exec {(cd $TESTDIR/tmp && [ ! -d a\*b ] && mkdir a\*b && touch a\*b/j || true)} # Create directory `a\b' - assert_bash_exec {(cd fixtures/_filedir && [ ! -d a\\b ] && mkdir a\\b && touch a\\b/g || true)} + assert_bash_exec {(cd $TESTDIR/tmp && [ ! -d a\\b ] && mkdir a\\b && touch a\\b/g || true)} } } proc teardown {} { if {! [is_cygwin]} { - assert_bash_exec {(cd fixtures/_filedir && rm -- a\\b/g && rmdir a\\b/ || true)} - assert_bash_exec {(cd fixtures/_filedir && rm -- a\*b/j && rmdir a\*b/ || true)} + assert_bash_exec {(cd $TESTDIR/tmp && rm -- a\\b/g && rmdir a\\b/ || true)} + assert_bash_exec {(cd $TESTDIR/tmp && rm -- a\*b/j && rmdir a\*b/ || true)} } assert_bash_exec {unset COMPREPLY cur} assert_bash_exec {unset -f _f _g} @@ -56,7 +56,7 @@ foreach name {f f2} { set test "completing $name ab/ should return e" set cmd "$name ab/" - assert_complete_dir e $cmd "fixtures/_filedir" $test + assert_complete_dir e $cmd "$::srcdir/fixtures/_filedir" $test sync_after_int @@ -64,7 +64,7 @@ foreach name {f f2} { set test "completing $name a\\ b/ should return i" set cmd "$name a\\ b/" - assert_complete_dir i $cmd "fixtures/_filedir" $test + assert_complete_dir i $cmd "$::srcdir/fixtures/_filedir" $test sync_after_int @@ -72,7 +72,7 @@ foreach name {f f2} { set test "completing $name a\\\'b/ should return c" set cmd "$name a\\\'b/" - assert_complete_dir c $cmd "fixtures/_filedir" $test + assert_complete_dir c $cmd "$::srcdir/fixtures/_filedir" $test sync_after_int @@ -80,7 +80,7 @@ foreach name {f f2} { set test "completing $name a\\\"b/ should return d"; #" set cmd "$name a\\\"b/"; #" - assert_complete_dir d $cmd "fixtures/_filedir" $test + assert_complete_dir d $cmd "$::srcdir/fixtures/_filedir" $test sync_after_int @@ -88,8 +88,8 @@ foreach name {f f2} { set test "completing $name a\\\$b/ should return h" set cmd "$name a\\\$b/" - assert_complete_dir "\b\b\b\b\b$::TESTDIR/fixtures/_filedir/a\\\\\$b/h" \ - $cmd "fixtures/_filedir" $test + assert_complete_dir "\b\b\b\b\b$::srcdirabs/fixtures/_filedir/a\\\\\$b/h" \ + $cmd "$::srcdir/fixtures/_filedir" $test sync_after_int @@ -101,7 +101,7 @@ foreach name {f f2} { if {! [is_cygwin]} { set test "completing $name a\\\\b/ should return g" set cmd "$name a\\\\b/" - assert_complete_dir g $cmd "fixtures/_filedir" $test + assert_complete_dir g $cmd "$TESTDIR/tmp" $test sync_after_int @@ -110,7 +110,7 @@ foreach name {f f2} { set test "completing $name a\\&b/ should return f" set cmd "$name a\\&b/" - assert_complete_dir f $cmd "fixtures/_filedir" $test + assert_complete_dir f $cmd "$::srcdir/fixtures/_filedir" $test sync_after_int @@ -118,7 +118,7 @@ foreach name {f f2} { set test "completing $name a\$ should return a\\\$b/" set cmd "$name a\$" - assert_complete_dir "\b\\\\\$b/" $cmd "fixtures/_filedir" $test + assert_complete_dir "\b\\\\\$b/" $cmd "$::srcdir/fixtures/_filedir" $test -nospace sync_after_int @@ -132,21 +132,21 @@ foreach name {f f2} { [lindex $::BASH_VERSINFO 2] < 35 )} { set cmd "$name 'ab/" - assert_complete_dir {e'} $cmd "fixtures/_filedir" + assert_complete_dir {e'} $cmd "$::srcdir/fixtures/_filedir" sync_after_int set cmd "$name 'a b/" - assert_complete_dir {i'} $cmd "fixtures/_filedir" + assert_complete_dir {i'} $cmd "$::srcdir/fixtures/_filedir" sync_after_int set cmd "$name 'a\"b/"; #" - assert_complete_dir {d'} $cmd "fixtures/_filedir" + assert_complete_dir {d'} $cmd "$::srcdir/fixtures/_filedir" sync_after_int @@ -154,9 +154,9 @@ foreach name {f f2} { set cmd "$name 'a\$b/" if {[lindex $::BASH_VERSINFO 0] == 4} { - assert_complete_dir {h'} $cmd "fixtures/_filedir" + assert_complete_dir {h'} $cmd "$::srcdir/fixtures/_filedir" } else { - assert_complete_dir "\b\b\b\b$::TESTDIR/fixtures/_filedir/a\$b/h'" $cmd "fixtures/_filedir" + assert_complete_dir "\b\b\b\b$::srcdirabs/fixtures/_filedir/a\$b/h'" $cmd "$::srcdir/fixtures/_filedir" } @@ -166,8 +166,8 @@ foreach name {f f2} { # Execute these tests only when not running on Cygwin/Windows, because # directories containing `*' or `\' aren't allowed on Cygwin/Windows if {! [is_cygwin]} { - set cmd "$name 'a\\b/" - assert_complete_dir {g'} $cmd "fixtures/_filedir" + set cmd "$name '$TESTDIR/tmp/a\\b/" + assert_complete_dir {g'} $cmd "$TESTDIR/tmp" sync_after_int @@ -175,63 +175,63 @@ foreach name {f f2} { set cmd "$name 'a&b/" - assert_complete_dir {f'} $cmd "fixtures/_filedir" + assert_complete_dir {f'} $cmd "$::srcdir/fixtures/_filedir" sync_after_int set cmd "$name \"ab/"; #" - assert_complete_dir {e"} $cmd "fixtures/_filedir"; #" + assert_complete_dir {e"} $cmd "$::srcdir/fixtures/_filedir"; #" sync_after_int set cmd "$name \"a b/"; #" - assert_complete_dir {i"} $cmd "fixtures/_filedir"; #" + assert_complete_dir {i"} $cmd "$::srcdir/fixtures/_filedir"; #" sync_after_int set cmd "$name \"a'b/"; #" - assert_complete_dir {c"} $cmd "fixtures/_filedir"; #" + assert_complete_dir {c"} $cmd "$::srcdir/fixtures/_filedir"; #" sync_after_int set cmd "$name \"a\\\"b/"; #" - assert_complete_dir {d"} $cmd "fixtures/_filedir"; #" + assert_complete_dir {d"} $cmd "$::srcdir/fixtures/_filedir"; #" sync_after_int set cmd "$name \"a\\\$b/"; #" - assert_complete_dir "\b\b\b\b\b$::TESTDIR/fixtures/_filedir/a\\\\\$b/h\\\"" $cmd "fixtures/_filedir" + assert_complete_dir "\b\b\b\b\b$::srcdirabs/fixtures/_filedir/a\\\\\$b/h\\\"" $cmd "$::srcdir/fixtures/_filedir" sync_after_int set cmd "$name \"a\\b/"; #" - assert_complete_dir "\b\b\bb/e\\\"" $cmd "fixtures/_filedir" + assert_complete_dir "\b\b\bb/e\\\"" $cmd "$::srcdir/fixtures/_filedir" sync_after_int set cmd "$name \"a\\\\b/"; #" - assert_complete_dir {g"} $cmd "fixtures/_filedir"; #" + assert_complete_dir {g"} $cmd "$TESTDIR/tmp"; #" sync_after_int set cmd "$name \"a&b/"; #" - assert_complete_dir {f"} $cmd "fixtures/_filedir"; #" + assert_complete_dir {f"} $cmd "$::srcdir/fixtures/_filedir"; #" sync_after_int @@ -242,23 +242,27 @@ foreach name {f f2} { set test "completing with filter '.e1' should show completions" -assert_complete_dir {ee.e1 foo/ gg.e1} "g " "fixtures/_filedir/ext" $test +assert_complete_dir {ee.e1 foo/ gg.e1 ii.E1} "g " "$::srcdir/fixtures/_filedir/ext" $test sync_after_int -set test "completing f aé should return g when LC_CTYPE=C" -# Backup/set LC_CTYPE -assert_bash_exec {OLD_CTYPE=$LC_CTYPE; LC_CTYPE=C} -if {[lindex $::BASH_VERSINFO 0] > 3} { - assert_complete_dir g "f aé/" "fixtures/_filedir" +set test "completing f aé should return g" +# 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 +# Don't execute this test on expect-5.44 cause it will segfault +# See also: Alioth #312792 +if { + [lindex $::BASH_VERSINFO 0] >= 4 && + [string first "UTF-8" $::LC_CTYPE] != -1 && + [string first 5.44 [exp_version]] != 0 +} { + assert_complete_dir g "f aé/" "$::srcdir/fixtures/_filedir" } else { - assert_complete_dir "\b\b\b\b$'a\\\\303\\\\251/g'" "f aé/" \ - "fixtures/_filedir" + unsupported "$test" } -# Restore LC_CTYPE -assert_bash_exec {[[ $OLD_CTYPE ]] && LC_CTYPE=$OLD_CTYPE || unset LC_CTYPE} sync_after_int |