Permalink
Switch branches/tags
v2.2.0-alpha.00000000 v2.1.0-beta.20181015 v2.1.0-beta.20181008 v2.1.0-beta.20181001 v2.1.0-beta.20180924 v2.1.0-beta.20180917 v2.1.0-beta.20180910 v2.1.0-beta.20180904 v2.1.0-beta.20180827 v2.1.0-alpha.20180730 v2.1.0-alpha.20180702 v2.1.0-alpha.20180604 v2.1.0-alpha.20180507 v2.1.0-alpha.20180416 v2.1.0-alpha.00000000 v2.0.6 v2.0.6-rc.1 v2.0.5 v2.0.4 v2.0.3 v2.0.2 v2.0.1 v2.0.0 v2.0-rc.1 v2.0-beta.20180326 v2.0-beta.20180319 v2.0-beta.20180312 v2.0-beta.20180305 v2.0-alpha.20180212 v2.0-alpha.20180129 v2.0-alpha.20180122 v2.0-alpha.20180116 v2.0-alpha.20171218 v2.0-alpha.20171218-plus-left-join-fix v1.2-alpha.20171211 v1.2-alpha.20171204 v1.2-alpha.20171113 v1.2-alpha.20171026 v1.2-alpha.20170901 v1.1.9 v1.1.9-rc.1 v1.1.8 v1.1.7 v1.1.6 v1.1.5 v1.1.4 v1.1.3 v1.1.2 v1.1.1 v1.1.0 v1.1.0-rc.1 v1.1-beta.20170928 v1.1-beta.20170921 v1.1-beta.20170907 v1.1-alpha.20170817 v1.1-alpha.20170810 v1.1-alpha.20170803 v1.1-alpha.20170720 v1.1-alpha.20170713 v1.1-alpha.20170629 v1.1-alpha.20170622 v1.1-alpha.20170608 v1.1-alpha.20170601 v1.0.7 v1.0.6 v1.0.5 v1.0.4 v1.0.3 v1.0.2 v1.0.1 v1.0 v1.0-rc.3 v1.0-rc.2 v1.0-rc.1 v0.1-alpha beta-20170420 beta-20170413 beta-20170406 beta-20170330 beta-20170323 beta-20170309 beta-20170223 beta-20170216 beta-20170209 beta-20170126 beta-20170112 beta-20170105 beta-20161215 beta-20161208 beta-20161201 beta-20161110 beta-20161103 beta-20161027 beta-20161013 beta-20161006 beta-20160929 beta-20160915 beta-20160908 beta-20160829 beta-20160728
Nothing to show
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
85 lines (69 sloc) 2.23 KB
#! /usr/bin/env expect -f
source [file join [file dirname $argv0] common.tcl]
start_server $argv
spawn /bin/bash
send "PS1=':''/# '\r"
eexpect ":/# "
send "$argv sql\r"
eexpect root@
start_test "Check that an error in the last statement is propagated to the shell."
send "select ++;\r"
eexpect "syntax error"
eexpect root@
send "\\q\r"
eexpect ":/# "
send "echo hello \$?\r"
eexpect "hello 1"
eexpect ":/# "
end_test
start_test "Check that an incomplete last statement in interactive mode is not executed."
send "$argv sql\r"
eexpect root@
send "drop database if exists t cascade; create database t; create table t.foo(x int);\r"
eexpect "CREATE TABLE"
eexpect root@
send "insert into t.foo(x) values (42)\r"
eexpect " ->"
send_eof
eexpect ":/# "
send "$argv sql\r"
eexpect root@
send "select count(*) from t.foo;\r"
eexpect "0"
eexpect root@
send "\\q\r"
eexpect ":/# "
end_test
start_test "Check that an incomplete last statement in non-interactive mode is not executed, and fails with a warning. #8838"
send "echo 'insert into t.foo(x) values (42)' | $argv sql\r"
eexpect "missing semicolon at end of statement"
eexpect ":/# "
end_test
start_test "Check that a final comment after a missing semicolon and without newline is properly ignored. #9482"
send "echo 'insert into t.foo(x) values (42)--;' | $argv sql\r"
eexpect "missing semicolon at end of statement"
eexpect ":/# "
send "echo 'select count(*) from t.foo;' | $argv sql\r"
eexpect "0"
eexpect ":/# "
end_test
start_test "Check that a complete last statement terminated with a semicolon just before EOF and without a newline is properly executed. #7328"
send "printf 'insert into t.foo(x) values(42);' | $argv sql\r"
eexpect "INSERT"
eexpect ":/# "
send "echo 'select count(*) from t.foo;' | $argv sql\r"
eexpect "1"
eexpect ":/# "
end_test
start_test "Check that a final comment after a final statement does not cause an error message. #9482"
send "printf 'select 1 as woo;-- final comment' | $argv sql | cat\r"
eexpect "woo\r\n1\r\n:/# "
end_test
start_test "Check that a final comment does not cause an error message. #9243"
send "printf 'select 1 as woo;\\n-- final comment' | $argv sql | cat\r"
eexpect "woo\r\n1\r\n:/# "
end_test
# Finally terminate with Ctrl+C
send "exit\r"
eexpect eof
stop_server $argv