Annotation of embedaddon/sqlite3/tool/shell3.test, revision 1.1
1.1 ! misho 1: # 2009 Dec 16
! 2: #
! 3: # The author disclaims copyright to this source code. In place of
! 4: # a legal notice, here is a blessing:
! 5: #
! 6: # May you do good and not evil.
! 7: # May you find forgiveness for yourself and forgive others.
! 8: # May you share freely, never taking more than you give.
! 9: #
! 10: #***********************************************************************
! 11: #
! 12: # The focus of this file is testing the CLI shell tool.
! 13: #
! 14: # $Id: shell2.test,v 1.7 2009/07/17 16:54:48 shaneh Exp $
! 15: #
! 16:
! 17: # Test plan:
! 18: #
! 19: # shell3-1.*: Basic tests for running SQL statments from command line.
! 20: # shell3-2.*: Basic tests for running SQL file from command line.
! 21: #
! 22:
! 23: package require sqlite3
! 24:
! 25: set CLI "./sqlite3"
! 26:
! 27: proc do_test {name cmd expected} {
! 28: puts -nonewline "$name ..."
! 29: set res [uplevel $cmd]
! 30: if {$res eq $expected} {
! 31: puts Ok
! 32: } else {
! 33: puts Error
! 34: puts " Got: $res"
! 35: puts " Expected: $expected"
! 36: exit
! 37: }
! 38: }
! 39:
! 40: proc execsql {sql} {
! 41: uplevel [list db eval $sql]
! 42: }
! 43:
! 44: proc catchsql {sql} {
! 45: set rc [catch {uplevel [list db eval $sql]} msg]
! 46: list $rc $msg
! 47: }
! 48:
! 49: proc catchcmd {db {cmd ""}} {
! 50: global CLI
! 51: set out [open cmds.txt w]
! 52: puts $out $cmd
! 53: close $out
! 54: set line "exec $CLI $db < cmds.txt"
! 55: set rc [catch { eval $line } msg]
! 56: list $rc $msg
! 57: }
! 58:
! 59: file delete -force test.db test.db.journal
! 60: sqlite3 db test.db
! 61:
! 62:
! 63: #----------------------------------------------------------------------------
! 64: # shell3-1.*: Basic tests for running SQL statments from command line.
! 65: #
! 66:
! 67: # Run SQL statement from command line
! 68: do_test shell3-1.1 {
! 69: file delete -force foo.db
! 70: set rc [ catchcmd "foo.db \"CREATE TABLE t1(a);\"" ]
! 71: set fexist [file exist foo.db]
! 72: list $rc $fexist
! 73: } {{0 {}} 1}
! 74: do_test shell3-1.2 {
! 75: catchcmd "foo.db" ".tables"
! 76: } {0 t1}
! 77: do_test shell3-1.3 {
! 78: catchcmd "foo.db \"DROP TABLE t1;\""
! 79: } {0 {}}
! 80: do_test shell3-1.4 {
! 81: catchcmd "foo.db" ".tables"
! 82: } {0 {}}
! 83: do_test shell3-1.5 {
! 84: catchcmd "foo.db \"CREATE TABLE t1(a); DROP TABLE t1;\""
! 85: } {0 {}}
! 86: do_test shell3-1.6 {
! 87: catchcmd "foo.db" ".tables"
! 88: } {0 {}}
! 89: do_test shell3-1.7 {
! 90: catchcmd "foo.db \"CREATE TABLE\""
! 91: } {1 {Error: near "TABLE": syntax error}}
! 92:
! 93: #----------------------------------------------------------------------------
! 94: # shell3-2.*: Basic tests for running SQL file from command line.
! 95: #
! 96:
! 97: # Run SQL file from command line
! 98: do_test shell3-2.1 {
! 99: file delete -force foo.db
! 100: set rc [ catchcmd "foo.db" "CREATE TABLE t1(a);" ]
! 101: set fexist [file exist foo.db]
! 102: list $rc $fexist
! 103: } {{0 {}} 1}
! 104: do_test shell3-2.2 {
! 105: catchcmd "foo.db" ".tables"
! 106: } {0 t1}
! 107: do_test shell3-2.3 {
! 108: catchcmd "foo.db" "DROP TABLE t1;"
! 109: } {0 {}}
! 110: do_test shell3-2.4 {
! 111: catchcmd "foo.db" ".tables"
! 112: } {0 {}}
! 113: do_test shell3-2.5 {
! 114: catchcmd "foo.db" "CREATE TABLE t1(a); DROP TABLE t1;"
! 115: } {0 {}}
! 116: do_test shell3-2.6 {
! 117: catchcmd "foo.db" ".tables"
! 118: } {0 {}}
! 119: do_test shell3-2.7 {
! 120: catchcmd "foo.db" "CREATE TABLE"
! 121: } {1 {Error: incomplete SQL: CREATE TABLE}}
! 122:
! 123:
! 124: puts "CLI tests completed successfully"
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>