proc setup {} { save_env } proc teardown {} { assert_env_unmodified { /COMPREPLY=/d } } setup set test "function should run without errors" assert_bash_exec {_tilde > /dev/null} $test sync_after_int set test "function should not pollute environment" # NOTE: A possible environment pollution is detected by assert_env_modified() in teardown() assert_bash_exec {foo() { local aa="~"; _tilde "$aa"; }; foo; unset foo} $test sync_after_int set failed_find_unique_completion 0 assert_bash_exec {compgen -u} {} /@ users if {![find_unique_completion_pair $users part full]} { set failed_find_unique_completion 1 } set test "~full should complete to ~full unmodified" if {$failed_find_unique_completion} { untested "Not running, no suitable test user found: $test" } else { set cmd [format {_tilde "~%s"; printf "%%s\n" "${COMPREPLY[@]}"} $full] assert_bash_list "~$full" $cmd $test sync_after_int } set test "~part should complete to ~full" if {$failed_find_unique_completion} { untested "Not running, no suitable test user found: $test" } else { set cmd [format {_tilde "~%s"; printf "%%s\n" "${COMPREPLY[@]}"} $part] assert_bash_list "~$full" $cmd $test sync_after_int } # Debian #766163 assert_no_complete "_tilde ~-o" sync_after_int teardown