2022-09-02 07:26:23 +00:00
|
|
|
#!/usr/bin/expect -f
|
|
|
|
|
|
|
|
set basedir [file dirname $argv0]
|
|
|
|
set basename [file tail $argv0]
|
|
|
|
exp_internal -f $env(CLICKHOUSE_TMP)/$basename.debuglog 0
|
2023-02-20 12:55:42 +00:00
|
|
|
set history_file $env(CLICKHOUSE_TMP)/$basename.history
|
2022-09-02 07:26:23 +00:00
|
|
|
|
|
|
|
log_user 0
|
2023-02-20 08:05:48 +00:00
|
|
|
set timeout 60
|
2022-09-02 07:26:23 +00:00
|
|
|
match_max 100000
|
|
|
|
|
|
|
|
expect_after {
|
|
|
|
# Do not ignore eof from expect
|
2023-02-20 14:50:15 +00:00
|
|
|
-i $any_spawn_id eof { exp_continue }
|
2022-09-02 07:26:23 +00:00
|
|
|
# A default timeout action is to do nothing, change it to fail
|
2023-02-20 14:50:15 +00:00
|
|
|
-i $any_spawn_id timeout { exit 1 }
|
2022-09-02 07:26:23 +00:00
|
|
|
}
|
|
|
|
|
2023-02-20 12:55:42 +00:00
|
|
|
spawn bash -c "source $basedir/../shell_config.sh ; \$CLICKHOUSE_CLIENT_BINARY \$CLICKHOUSE_CLIENT_OPT --disable_suggestion --history_file=$history_file"
|
2022-09-02 07:26:23 +00:00
|
|
|
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
|