proc setup {} { save_env } proc teardown {} { assert_env_unmodified } setup set test "Tab should complete usernames" # Build string list of usernames set users {} foreach u [exec bash -c "compgen -A user"] { lappend users $u } assert_complete $users "finger " $test sync_after_int set test "Tab should complete partial username" assert_complete_partial [exec bash -c "compgen -A user"] "finger" "" $test -nospace sync_after_int set test "Tab should complete partial hostname" # Build string list of hostnames, starting with the character of the first # host, unless host starts with a COMP_WORDBREAKS character, e.g. a colon (:). # Hosts starting with a COMP_WORDBREAKS character are left out because these # are exceptional cases, requiring specific tests. set hosts {} set char "" foreach h [get_known_hosts] { set first [string range $h 0 0] if {$char == "" && [string first $first $::COMP_WORDBREAKS] == -1} {set char $first} if {$char != ""} { # Only append unique hostnames starting with $char if {$first == $char && [lsearch -exact $hosts "test@$h"] == -1} { # Prefix hosts with username 'test@' lappend hosts "test@$h" } } } assert_complete $hosts "finger test@$char" $test -expect-cmd-minus "test@$char" sync_after_int teardown