#!/usr/bin/expect -f # Tags: no-fasttest # Tag no-fasttest: requires mysql client log_user 0 set timeout 60 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 } } set basedir [file dirname $argv0] spawn bash -c "source $basedir/../shell_config.sh ; \$MYSQL_CLIENT_BINARY \$MYSQL_CLIENT_OPT" expect -nocase -re "mysql.*> " send -- "USE system;\r" expect "Database changed" send -- "SELECT * FROM one;\r" expect "| dummy |" expect "| 0 |" expect "1 row in set" # exception before start send -- "select * from table_that_does_not_exist;\r" expect "ERROR 60 (00000): Code: 60" # exception after start send -- "select throwIf(number) from numbers(2) settings max_block_size=1;\r" expect "ERROR 395 (00000): Code: 395" # other formats send -- "select * from system.one format TSV;\r" expect "ERROR 1 (00000): Code: 1" send -- "select * from system.one format JSON;\r" expect "ERROR 1 (00000): Code: 1" send -- "select * from system.one format MySQLWire;\r" expect "| dummy |" expect "| 0 |" expect "1 row in set" send -- "select count(number), sum(number) from numbers(10);\r" expect "+---------------+-------------+" expect "| count(number) | sum(number) |" expect "+---------------+-------------+" expect "| 10 | 45 |" expect "+---------------+-------------+" expect "1 row in set" expect -nocase -re "mysql.*> " send -- "quit;\r" expect eof