(testsuite) Added function `assert_bash_list_dir'

This commit is contained in:
Freddy Vulto 2009-12-24 09:41:22 +01:00
parent e2e1c391ed
commit fec41f3c74

View File

@ -81,10 +81,10 @@ proc assert_bash_type {command} {
# @result boolean True if successful, False if not # @result boolean True if successful, False if not
proc assert_bash_list {expected cmd {test ""} {prompt /@} {size 20}} { proc assert_bash_list {expected cmd {test ""} {prompt /@} {size 20}} {
if {$test == ""} {set test "$cmd should show expected output"} if {$test == ""} {set test "$cmd should show expected output"}
send "$cmd\r\n" send "$cmd\r"
expect -ex "$cmd\r\n" expect -ex "$cmd\r\n"
if {[match_items $expected $test]} { if {[match_items $expected $test $prompt $size]} {
expect { expect {
-re $prompt { pass "$test" } -re $prompt { pass "$test" }
-re eof { unresolved "eof" } -re eof { unresolved "eof" }
@ -95,6 +95,15 @@ proc assert_bash_list {expected cmd {test ""} {prompt /@} {size 20}} {
}; # assert_bash_list() }; # assert_bash_list()
proc assert_bash_list_dir {expected cmd dir {test ""} {prompt /@} {size 20}} {
set prompt "/$dir/@"
assert_bash_exec "cd $dir" "" $prompt
assert_bash_list $expected $cmd $test $prompt $size
sync_after_int $prompt
assert_bash_exec "cd \$TESTDIR"
}; # assert_bash_list_dir()
# Make sure the expected items are returned by TAB-completing the specified # Make sure the expected items are returned by TAB-completing the specified
# command. # command.
# @param list $expected # @param list $expected
@ -142,7 +151,7 @@ proc assert_complete {expected cmd {test ""} {prompt /@} {size 20} {cword ""} {f
_ltrim_colon_completions cword expected _ltrim_colon_completions cword expected
}; # if }; # if
if {[match_items $expected $test]} { if {[match_items $expected $test $prompt $size]} {
if {[llength $expected] == 1} { if {[llength $expected] == 1} {
pass "$test" pass "$test"
} else { } else {
@ -484,7 +493,7 @@ proc init_tcl_bash_globals {} {
# @param list $items # @param list $items
# @param integer $size Chunk size # @param integer $size Chunk size
# @result boolean True if successful, False if not # @result boolean True if successful, False if not
proc match_items {items test {size 20}} { proc match_items {items test {prompt /@} {size 20}} {
# NOTE: `exec sort' is used instead of `lsort' to achieve exactly the # NOTE: `exec sort' is used instead of `lsort' to achieve exactly the
# same sort order as in bash -- FVu, Wed Nov 25 22:25:28 CET 2009 # same sort order as in bash -- FVu, Wed Nov 25 22:25:28 CET 2009
set items [bash_sort $items] set items [bash_sort $items]
@ -501,8 +510,10 @@ proc match_items {items test {size 20}} {
}; # for }; # for
if {[llength $items] == 1} { if {[llength $items] == 1} {
expect { expect {
-re "^$expected\r\n$" { set result true }
# NOTE: The optional space ( ?) depends on whether -o nospace is active # NOTE: The optional space ( ?) depends on whether -o nospace is active
-re "^$expected ?$" { set result true } -re "^$expected ?$" { set result true }
-re "^$prompt$" {set result false; break }
"\r\n" { set result false; break } "\r\n" { set result false; break }
default { set result false; break } default { set result false; break }
timeout { set result false; break } timeout { set result false; break }