test: Add test for '.' and '/' repeat commands in client interactive mode

This commit is contained in:
Robert Schulze 2022-09-02 07:26:23 +00:00
parent 319d8b00a7
commit a0544b2a01
No known key found for this signature in database
GPG Key ID: 26703B55FB13728A
2 changed files with 81 additions and 0 deletions

View File

@ -0,0 +1,81 @@
#!/usr/bin/expect -f
set basedir [file dirname $argv0]
set basename [file tail $argv0]
exp_internal -f $env(CLICKHOUSE_TMP)/$basename.debuglog 0
log_user 0
set timeout 10
match_max 100000
expect_after {
# Do not ignore eof from expect
eof { exp_continue }
# A default timeout action is to do nothing, change it to fail
timeout { exit 1 }
}
spawn bash -c "source $basedir/../shell_config.sh ; \$CLICKHOUSE_CLIENT_BINARY \$CLICKHOUSE_CLIENT_OPT --disable_suggestion"
expect ":) "
# -----------------------------------------
# test . and / commands prior to the first query
send -- ".\r"
expect "Empty query"
expect ":) "
send -- "/\r"
expect "Empty query"
expect ":) "
# -----------------------------------------
# test . and / commands after first query
send -- "SELECT 123\r"
expect "│ 123 │"
expect "1 row in set."
expect ":) "
send -- ".\r"
expect "│ 123 │"
expect "1 row in set."
expect ":) "
# test input of . more than once in a row
send -- ".\r"
expect "│ 123 │"
expect "1 row in set."
expect ":) "
send -- "/\r"
expect "│ 123 │"
expect "1 row in set."
expect ":) "
# test input of / more than once in a row
send -- "/\r"
expect "│ 123 │"
expect "1 row in set."
expect ":) "
# -----------------------------------------
# test . and / commands after another query
send -- "SELECT 321\r"
expect "│ 321 │"
expect "1 row in set."
expect ":) "
send -- ".\r"
expect "│ 321 │"
expect "1 row in set."
expect ":) "
send -- "/\r"
expect "│ 321 │"
expect "1 row in set."
expect ":) "
send -- "quit\r"
expect eof