Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Simplify checking for test results that contain exception error messages. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
8732a87f79a527a846468a0cca703078 |
User & Date: | mistachkin 2016-03-22 00:29:43.482 |
Context
2016-03-22
| ||
04:01 | For the test suite, pickup upstream Eagle script library hotfix dealing with Fossil command result handling. check-in: 4d3d734955 user: mistachkin tags: trunk | |
00:29 | Simplify checking for test results that contain exception error messages. check-in: 8732a87f79 user: mistachkin tags: trunk | |
2016-03-21
| ||
21:46 | Preliminary work on getting the test suite to run under Mono on Unix. check-in: 085a9f8b8f user: mistachkin tags: trunk | |
Changes
Changes to Tests/authorizer.eagle.
︙ | ︙ | |||
115 116 117 118 119 120 121 122 123 124 | CreateVtable {CREATE VIRTUAL TABLE t3 USING fts4(x TEXT);} \ DropVtable {DROP TABLE t3;} \ CreateTable {CREATE TABLE tDeny(x);}] foreach {name value} $sql { set filter $name; set data [list] set code [catch {sql execute $db $value} result] set result [lindex [split [string map [list \r\n \n] $result] \n] 0] lappend results [list $name $data $code $result] } | > < < | | 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 | CreateVtable {CREATE VIRTUAL TABLE t3 USING fts4(x TEXT);} \ DropVtable {DROP TABLE t3;} \ CreateTable {CREATE TABLE tDeny(x);}] foreach {name value} $sql { set filter $name; set data [list] set code [catch {sql execute $db $value} result] set result [extractSystemDataSQLiteExceptionMessage $result] set result [lindex [split [string map [list \r\n \n] $result] \n] 0] lappend results [list $name $data $code $result] } lappend results [isTableInDb tDeny]; set results } -cleanup { catch {object invoke $connection remove_Authorize $callback} catch {object removecallback $callback} cleanupDb $fileName freeDbConnection |
︙ | ︙ | |||
157 158 159 160 161 162 163 | {} main {}}} 0 0} {DropTrigger {{0 DropTrigger tr1 t1 main {}}} 0 0} {DropIndex\ {{0 DropIndex i1 t1 main {}}} 0 0} {Recursive {{0 Recursive {} {} {} {}}} 0 -1}\ {DropTable {{0 DropTable t1 {} main {}}} 0 0} {Transaction {{0 Transaction\ BEGIN {} {} {}} {0 Transaction COMMIT {} {} {}}} 0 -1} {Savepoint {{0 Savepoint\ BEGIN s1 {} {}} {0 Savepoint RELEASE s1 {} {}}} 0 -1} {Attach {{0 Attach\ :memory: {} {} {}}} 0 -1} {Detach {{0 Detach d1 {} {} {}}} 0 -1} {CreateVtable\ {{0 CreateVtable t3 fts4 main {}}} 0 0} {DropVtable {{0 DropVtable t3 fts4 main\ | | | | 156 157 158 159 160 161 162 163 164 165 166 167 168 169 | {} main {}}} 0 0} {DropTrigger {{0 DropTrigger tr1 t1 main {}}} 0 0} {DropIndex\ {{0 DropIndex i1 t1 main {}}} 0 0} {Recursive {{0 Recursive {} {} {} {}}} 0 -1}\ {DropTable {{0 DropTable t1 {} main {}}} 0 0} {Transaction {{0 Transaction\ BEGIN {} {} {}} {0 Transaction COMMIT {} {} {}}} 0 -1} {Savepoint {{0 Savepoint\ BEGIN s1 {} {}} {0 Savepoint RELEASE s1 {} {}}} 0 -1} {Attach {{0 Attach\ :memory: {} {} {}}} 0 -1} {Detach {{0 Detach d1 {} {} {}}} 0 -1} {CreateVtable\ {{0 CreateVtable t3 fts4 main {}}} 0 0} {DropVtable {{0 DropVtable t3 fts4 main\ {}}} 0 0} {CreateTable {{0 CreateTable tDeny {} main {}}} 1 {authorization\ denied -- not authorized}} False}} ############################################################################### runSQLiteTestEpilogue runTestEpilogue |
Changes to Tests/backup.eagle.
︙ | ︙ | |||
35 36 37 38 39 40 41 | null "new SQLiteBackupCallback(BackupCallback)"] set params(results) [list \ "0 \\{1 1048576 1048576 1048576 1048576 1048576 1048576 1048576 1048576\ 1048576 1048576 10\\} 0\$" \ "0 \\{1 1048576 1048576 1048576 1048576 1048576 1048576 1048576 1048576\ 1048576 1048576 10\\} 0\$" \ | < < | < < < | < < < | < | 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 | null "new SQLiteBackupCallback(BackupCallback)"] set params(results) [list \ "0 \\{1 1048576 1048576 1048576 1048576 1048576 1048576 1048576 1048576\ 1048576 1048576 10\\} 0\$" \ "0 \\{1 1048576 1048576 1048576 1048576 1048576 1048576 1048576 1048576\ 1048576 1048576 10\\} 0\$" \ "1 \\{SQL logic error or missing database -- no such table: t1" \ "1 \\{SQL logic error or missing database -- no such table: t1" \ "0 \\{1 1048576 1048576 1048576 1048576 1048576 1048576 1048576 1048576\ 1048576 1048576 10\\} 0\$" \ "0 \\{1 1048576 1048576 1048576 1048576 1048576 1048576 1048576 1048576\ 1048576 1048576 10\\} 10283\$" \ "0 \\{1 1048576 1048576 1048576 1048576 1048576 1048576 1048576 1048576\ 1048576 1048576 10\\} 0\$" \ "1 \\{SQL logic error or missing database -- no such table: t1" \ "0 \\{1 1048576 1048576 1048576 1048576 1048576 1048576 1048576 1048576\ 1048576 1048576 10\\} \\{\\}\$" \ "0 \\{1 1048576 1048576 1048576 1048576 1048576 1048576 1048576 1048576\ 1048576 1048576 10\\} \\{System\\.Data\\.SQLite\\.SQLiteConnection main\ System\\.Data\\.SQLite\\.SQLiteConnection main 1000 9284 10284 False\ System\\.Data\\.SQLite\\.SQLiteConnection main\ System\\.Data\\.SQLite\\.SQLiteConnection main 1000 8284 10284 False\ |
︙ | ︙ | |||
209 210 211 212 213 214 215 | set callbackResults [list] list $code $results \ [expr {[info exists errors] ? $errors : ""}] \ [expr {$code eq "Ok" ? [catch { object invoke _Dynamic${id}.Test${id} BackupAndGetData "" $memSource | | > | 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 | set callbackResults [list] list $code $results \ [expr {[info exists errors] ? $errors : ""}] \ [expr {$code eq "Ok" ? [catch { object invoke _Dynamic${id}.Test${id} BackupAndGetData "" $memSource } result] : [set result ""]}] \ [extractSystemDataSQLiteExceptionMessage $result] $callbackResults } -cleanup { cleanupDb $fileName(2) cleanupDb $fileName(1) memDb freeDbConnection memSource unset -nocomplain result results errors code index memSource dataSource \ |
︙ | ︙ |
Changes to Tests/basic.eagle.
︙ | ︙ | |||
1293 1294 1295 1296 1297 1298 1299 | } }] true true true results errors System.Data.SQLite.dll] list $code $results \ [expr {[info exists errors] ? $errors : ""}] \ [expr {$code eq "Ok" ? [catch { object invoke _Dynamic${id}.Test${id} Main | | > | < < < | 1293 1294 1295 1296 1297 1298 1299 1300 1301 1302 1303 1304 1305 1306 1307 1308 1309 1310 1311 1312 1313 1314 1315 | } }] true true true results errors System.Data.SQLite.dll] list $code $results \ [expr {[info exists errors] ? $errors : ""}] \ [expr {$code eq "Ok" ? [catch { object invoke _Dynamic${id}.Test${id} Main } result] : [set result ""]}] \ [extractSystemDataSQLiteExceptionMessage $result] } -cleanup { cleanupDb $fileName unset -nocomplain result results errors code sql dataSource id db fileName } -constraints {eagle command.object monoBug28 command.sql compile.DATA SQLite\ System.Data.SQLite compileCSharp} -match regexp -result {^Ok\ System#CodeDom#Compiler#CompilerResults#\d+ \{\} 1 interrupted$}} ############################################################################### runTest {test data-1.24 {LINQ SQL_CONSTRAINTCOLUMNS resource} -body { object invoke -flags +NonPublic \ System.Data.SQLite.Linq.Properties.Resources SQL_CONSTRAINTCOLUMNS } -constraints {eagle command.object System.Data.SQLite\ |
︙ | ︙ | |||
1949 1950 1951 1952 1953 1954 1955 | cleanupDb $fileName db true false false setupDb $fileName "" "" "" "" "Password=12345;" true false set result [list] lappend result [catch {sql execute -execute scalar $db \ | | > | > | > | > | < < | | > | > | > | > | < < | | 1947 1948 1949 1950 1951 1952 1953 1954 1955 1956 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 1973 1974 1975 1976 1977 1978 1979 1980 1981 1982 1983 1984 1985 1986 1987 1988 1989 1990 1991 1992 1993 1994 1995 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023 2024 2025 2026 2027 | cleanupDb $fileName db true false false setupDb $fileName "" "" "" "" "Password=12345;" true false set result [list] lappend result [catch {sql execute -execute scalar $db \ "SELECT COUNT(*) FROM t1;"} error] \ [extractSystemDataSQLiteExceptionMessage $error] lappend result [catch {sql execute $db \ "INSERT INTO t1 (x) VALUES(1);"} error] \ [extractSystemDataSQLiteExceptionMessage $error] cleanupDb $fileName db true false false setupDb $fileName "" "" "" "" "" true false lappend result [catch {sql execute $db \ "INSERT INTO t1 (x) VALUES(1);"} error] \ [extractSystemDataSQLiteExceptionMessage $error] lappend result [catch {sql execute -execute scalar $db \ "SELECT COUNT(*) FROM t1;"} error] \ [extractSystemDataSQLiteExceptionMessage $error] set result } -cleanup { cleanupDb $fileName unset -nocomplain error result db fileName } -constraints {eagle System.Data.SQLite.Encryption monoBug28 command.sql\ compile.DATA SQLite System.Data.SQLite} -result {1 {file is encrypted or is not\ a database} 1 {file is encrypted or is not a database} 0 1 0 2}} ############################################################################### runTest {test data-1.40 {encrypted database, wrong password} -setup { setupDb [set fileName data-1.40.db] "" "" "" "" "Password=12345;" } -body { sql execute $db "CREATE TABLE t1(x);" sql execute $db "INSERT INTO t1 (x) VALUES(1);" cleanupDb $fileName db true false false setupDb $fileName "" "" "" "" "Password=12346;" true false set result [list] lappend result [catch {sql execute -execute scalar $db \ "SELECT COUNT(*) FROM t1;"} error] \ [extractSystemDataSQLiteExceptionMessage $error] lappend result [catch {sql execute $db \ "INSERT INTO t1 (x) VALUES(1);"} error] \ [extractSystemDataSQLiteExceptionMessage $error] cleanupDb $fileName db true false false setupDb $fileName "" "" "" "" "Password=12345;" true false lappend result [catch {sql execute $db \ "INSERT INTO t1 (x) VALUES(1);"} error] \ [extractSystemDataSQLiteExceptionMessage $error] lappend result [catch {sql execute -execute scalar $db \ "SELECT COUNT(*) FROM t1;"} error] \ [extractSystemDataSQLiteExceptionMessage $error] set result } -cleanup { cleanupDb $fileName unset -nocomplain error result db fileName } -constraints {eagle System.Data.SQLite.Encryption monoBug28 command.sql\ compile.DATA SQLite System.Data.SQLite} -result {1 {file is encrypted or is not\ a database} 1 {file is encrypted or is not a database} 0 1 0 2}} ############################################################################### runTest {test data-1.41 {encrypted database, password w/start-space} -setup { setupDb [set fileName data-1.41.db] "" "" "" "" "Password= 1234;" } -body { sql execute $db "CREATE TABLE t1(x);" |
︙ | ︙ | |||
2063 2064 2065 2066 2067 2068 2069 | cleanupDb $fileName db true false false setupDb $fileName "" "" "" "" "Password=1234;" true false set result [list] lappend result [catch {sql execute -execute scalar $db \ | | > | > | > | > | < < | | > | > | > | > | < < | | 2065 2066 2067 2068 2069 2070 2071 2072 2073 2074 2075 2076 2077 2078 2079 2080 2081 2082 2083 2084 2085 2086 2087 2088 2089 2090 2091 2092 2093 2094 2095 2096 2097 2098 2099 2100 2101 2102 2103 2104 2105 2106 2107 2108 2109 2110 2111 2112 2113 2114 2115 2116 2117 2118 2119 2120 2121 2122 2123 2124 2125 2126 2127 2128 2129 2130 2131 2132 2133 2134 2135 2136 2137 2138 2139 2140 2141 2142 2143 2144 2145 | cleanupDb $fileName db true false false setupDb $fileName "" "" "" "" "Password=1234;" true false set result [list] lappend result [catch {sql execute -execute scalar $db \ "SELECT COUNT(*) FROM t1;"} error] \ [extractSystemDataSQLiteExceptionMessage $error] lappend result [catch {sql execute $db \ "INSERT INTO t1 (x) VALUES(1);"} error] \ [extractSystemDataSQLiteExceptionMessage $error] cleanupDb $fileName db true false false setupDb $fileName "" "" "" "" "Password=\" 1234\";" true false lappend result [catch {sql execute $db \ "INSERT INTO t1 (x) VALUES(1);"} error] \ [extractSystemDataSQLiteExceptionMessage $error] lappend result [catch {sql execute -execute scalar $db \ "SELECT COUNT(*) FROM t1;"} error] \ [extractSystemDataSQLiteExceptionMessage $error] set result } -cleanup { cleanupDb $fileName unset -nocomplain error result db fileName } -constraints {eagle System.Data.SQLite.Encryption monoBug28 command.sql\ compile.DATA SQLite System.Data.SQLite} -result {1 {file is encrypted or is not\ a database} 1 {file is encrypted or is not a database} 0 1 0 2}} ############################################################################### runTest {test data-1.43 {encrypted database, password w/mid-space} -setup { setupDb [set fileName data-1.43.db] "" "" "" "" "Password=12 45;" } -body { sql execute $db "CREATE TABLE t1(x);" sql execute $db "INSERT INTO t1 (x) VALUES(1);" cleanupDb $fileName db true false false setupDb $fileName "" "" "" "" "Password=1245;" true false set result [list] lappend result [catch {sql execute -execute scalar $db \ "SELECT COUNT(*) FROM t1;"} error] \ [extractSystemDataSQLiteExceptionMessage $error] lappend result [catch {sql execute $db \ "INSERT INTO t1 (x) VALUES(1);"} error] \ [extractSystemDataSQLiteExceptionMessage $error] cleanupDb $fileName db true false false setupDb $fileName "" "" "" "" "Password=12 45;" true false lappend result [catch {sql execute $db \ "INSERT INTO t1 (x) VALUES(1);"} error] \ [extractSystemDataSQLiteExceptionMessage $error] lappend result [catch {sql execute -execute scalar $db \ "SELECT COUNT(*) FROM t1;"} error] \ [extractSystemDataSQLiteExceptionMessage $error] set result } -cleanup { cleanupDb $fileName unset -nocomplain error result db fileName } -constraints {eagle System.Data.SQLite.Encryption monoBug28 command.sql\ compile.DATA SQLite System.Data.SQLite} -result {1 {file is encrypted or is not\ a database} 1 {file is encrypted or is not a database} 0 1 0 2}} ############################################################################### runTest {test data-1.44 {encrypted database, password w/end-space} -setup { setupDb [set fileName data-1.44.db] "" "" "" "" "Password=1234 ;" } -body { sql execute $db "CREATE TABLE t1(x);" |
︙ | ︙ | |||
2177 2178 2179 2180 2181 2182 2183 | cleanupDb $fileName db true false false setupDb $fileName "" "" "" "" "Password=1234;" true false set result [list] lappend result [catch {sql execute -execute scalar $db \ | | > | > | > | > | < < | | 2183 2184 2185 2186 2187 2188 2189 2190 2191 2192 2193 2194 2195 2196 2197 2198 2199 2200 2201 2202 2203 2204 2205 2206 2207 2208 2209 2210 2211 2212 2213 2214 2215 2216 2217 2218 2219 2220 2221 2222 | cleanupDb $fileName db true false false setupDb $fileName "" "" "" "" "Password=1234;" true false set result [list] lappend result [catch {sql execute -execute scalar $db \ "SELECT COUNT(*) FROM t1;"} error] \ [extractSystemDataSQLiteExceptionMessage $error] lappend result [catch {sql execute $db \ "INSERT INTO t1 (x) VALUES(1);"} error] \ [extractSystemDataSQLiteExceptionMessage $error] cleanupDb $fileName db true false false setupDb $fileName "" "" "" "" "Password=\"1234 \";" true false lappend result [catch {sql execute $db \ "INSERT INTO t1 (x) VALUES(1);"} error] \ [extractSystemDataSQLiteExceptionMessage $error] lappend result [catch {sql execute -execute scalar $db \ "SELECT COUNT(*) FROM t1;"} error] \ [extractSystemDataSQLiteExceptionMessage $error] set result } -cleanup { cleanupDb $fileName unset -nocomplain error result db fileName } -constraints {eagle System.Data.SQLite.Encryption monoBug28 command.sql\ compile.DATA SQLite System.Data.SQLite} -result {1 {file is encrypted or is not\ a database} 1 {file is encrypted or is not a database} 0 1 0 2}} ############################################################################### runTest {test data-1.46 {encrypted database, password via builder} -setup { setupDb [set fileName data-1.46.db] "" "" "" "" "Password=67 89;" } -body { sql execute $db "CREATE TABLE t1(x);" |
︙ | ︙ | |||
2322 2323 2324 2325 2326 2327 2328 | runTest {test data-1.49 {NoExtensionFunctions connection flag} -setup { setupDb [set fileName data-1.49.db] } -body { set result [list] lappend result [catch {sql execute -execute scalar $db \ | | > | > | > | | | | | 2330 2331 2332 2333 2334 2335 2336 2337 2338 2339 2340 2341 2342 2343 2344 2345 2346 2347 2348 2349 2350 2351 2352 2353 2354 2355 2356 2357 2358 2359 2360 2361 2362 2363 2364 2365 2366 2367 2368 2369 2370 | runTest {test data-1.49 {NoExtensionFunctions connection flag} -setup { setupDb [set fileName data-1.49.db] } -body { set result [list] lappend result [catch {sql execute -execute scalar $db \ "SELECT replicate('1234', 2);"} error] \ [extractSystemDataSQLiteExceptionMessage $error] cleanupDb $fileName setupDb $fileName "" "" "" NoExtensionFunctions lappend result [catch {sql execute -execute scalar $db \ "SELECT replicate('1234', 3);"} error] \ [extractSystemDataSQLiteExceptionMessage $error] cleanupDb $fileName setupDb $fileName lappend result [catch {sql execute -execute scalar $db \ "SELECT replicate('1234', 4);"} error] \ [extractSystemDataSQLiteExceptionMessage $error] set result } -cleanup { cleanupDb $fileName unset -nocomplain error result db fileName } -constraints {eagle monoBug28 command.sql compile.DATA SQLite\ System.Data.SQLite SQLiteInterop\ defineConstant.System.Data.SQLite.INTEROP_EXTENSION_FUNCTIONS} -result {0\ 12341234 1 {SQL logic error or missing database -- no such function: replicate}\ 0 1234123412341234}} ############################################################################### runTest {test data-1.50 {column name and index lookup} -setup { setupDb [set fileName data-1.50.db] } -body { sql execute $db { |
︙ | ︙ | |||
2407 2408 2409 2410 2411 2412 2413 | set x [$dataReader GetOrdinal x] foreach {a b c e} [list \ [$dataReader GetName $x] [$dataReader GetValue $x] \ [catch {$dataReader GetInt64 $x} d] [$dataReader Item x]] break | | > | 2418 2419 2420 2421 2422 2423 2424 2425 2426 2427 2428 2429 2430 2431 2432 2433 | set x [$dataReader GetOrdinal x] foreach {a b c e} [list \ [$dataReader GetName $x] [$dataReader GetValue $x] \ [catch {$dataReader GetInt64 $x} d] [$dataReader Item x]] break lappend result [list \ $x $a $b $c [extractSystemDataSQLiteExceptionMessage $d] $e] } set result } -cleanup { unset -nocomplain dataReader cleanupDb $fileName |
︙ | ︙ | |||
2568 2569 2570 2571 2572 2573 2574 | } }] true true true results errors System.Data.SQLite.dll] list $code $results \ [expr {[info exists errors] ? $errors : ""}] \ [expr {$code eq "Ok" ? [catch { object invoke _Dynamic${id}.Test${id} DoTest false | | > | > | > | | < < < | < < < | | 2580 2581 2582 2583 2584 2585 2586 2587 2588 2589 2590 2591 2592 2593 2594 2595 2596 2597 2598 2599 2600 2601 2602 2603 2604 2605 2606 2607 2608 2609 2610 2611 2612 | } }] true true true results errors System.Data.SQLite.dll] list $code $results \ [expr {[info exists errors] ? $errors : ""}] \ [expr {$code eq "Ok" ? [catch { object invoke _Dynamic${id}.Test${id} DoTest false } result] : [set result ""]}] \ [extractSystemDataSQLiteExceptionMessage $result] \ [expr {$code eq "Ok" ? [catch { object invoke _Dynamic${id}.Test${id} DoTest true } result] : [set result ""]}] \ [extractSystemDataSQLiteExceptionMessage $result] \ [expr {$code eq "Ok" ? [catch { object invoke _Dynamic${id}.Test${id} DoTest false } result] : [set result ""]}] \ [extractSystemDataSQLiteExceptionMessage $result] } -cleanup { cleanupDb $fileName unset -nocomplain result code results errors sql dataSource id fileName } -constraints {eagle command.object monoBug28 command.sql compile.DATA SQLite\ System.Data.SQLite compileCSharp} -match regexp -result {^Ok\ System#CodeDom#Compiler#CompilerResults#\d+ \{\} 1 \{SQL logic error or missing\ database -- no such function: MyRandom\} 0 (?:-)?\d+ 1 \{SQL logic error or\ missing database -- no such function: MyRandom\}$}} ############################################################################### runTest {test data-1.55 {SQLiteConvert TypeNameToDbType} -setup { unset -nocomplain result typeName } -body { foreach typeName [list \ |
︙ | ︙ | |||
3363 3364 3365 3366 3367 3368 3369 | } }] true true true results errors System.Data.SQLite.dll] list $code $results \ [expr {[info exists errors] ? $errors : ""}] \ [expr {$code eq "Ok" ? [catch { object invoke _Dynamic${id}.Test${id} BindFunction | | > | > | > | > | > | > | > | < | < < | | | 3372 3373 3374 3375 3376 3377 3378 3379 3380 3381 3382 3383 3384 3385 3386 3387 3388 3389 3390 3391 3392 3393 3394 3395 3396 3397 3398 3399 3400 3401 3402 3403 3404 3405 3406 3407 3408 3409 3410 3411 3412 3413 3414 3415 3416 3417 3418 3419 3420 | } }] true true true results errors System.Data.SQLite.dll] list $code $results \ [expr {[info exists errors] ? $errors : ""}] \ [expr {$code eq "Ok" ? [catch { object invoke _Dynamic${id}.Test${id} BindFunction } result] : [set result ""]}] \ [extractSystemDataSQLiteExceptionMessage $result] \ [expr {$code eq "Ok" ? [catch { object invoke _Dynamic${id}.Test${id} CallFunction } result] : [set result ""]}] \ [extractSystemDataSQLiteExceptionMessage $result] \ [expr {$code eq "Ok" ? [catch { object invoke _Dynamic${id}.Test${id} UnbindFunction } result] : [set result ""]}] \ [extractSystemDataSQLiteExceptionMessage $result] \ [expr {$code eq "Ok" ? [catch { object invoke _Dynamic${id}.Test${id} CallFunction } result] : [set result ""]}] \ [extractSystemDataSQLiteExceptionMessage $result] \ [expr {$code eq "Ok" ? [catch { object invoke _Dynamic${id}.Test${id} BindFunction } result] : [set result ""]}] \ [extractSystemDataSQLiteExceptionMessage $result] \ [expr {$code eq "Ok" ? [catch { object invoke _Dynamic${id}.Test${id} CallFunction } result] : [set result ""]}] \ [extractSystemDataSQLiteExceptionMessage $result] \ [expr {$code eq "Ok" ? [catch { object invoke _Dynamic${id}.Test${id} Uninitialize } result] : [set result ""]}] \ [extractSystemDataSQLiteExceptionMessage $result] } -cleanup { cleanupDb $fileName unset -nocomplain result code results errors sql dataSource id fileName } -constraints {eagle command.object monoBug28 command.sql compile.DATA SQLite\ System.Data.SQLite compileCSharp} -match regexp -result {^Ok\ System#CodeDom#Compiler#CompilerResults#\d+ \{\} 0 \{\} 0 (?:-)?\d+ 0 True 1\ \{SQL logic error or missing database -- no such function: MyRandom\} 0 \{\} 0\ (?:-)?\d+ 0 \{\}$}} ############################################################################### runTest {test data-1.73 {unbind functions from a connection on close} -setup { set fileName data-1.73.db } -body { set id [object invoke Interpreter.GetActive NextId] |
︙ | ︙ | |||
3517 3518 3519 3520 3521 3522 3523 | } }] true true true results errors System.Data.SQLite.dll] list $code $results \ [expr {[info exists errors] ? $errors : ""}] \ [expr {$code eq "Ok" ? [catch { object invoke _Dynamic${id}.Test${id} BindFunction | | > | > | > | > | > | > | > | < | < < | | | 3530 3531 3532 3533 3534 3535 3536 3537 3538 3539 3540 3541 3542 3543 3544 3545 3546 3547 3548 3549 3550 3551 3552 3553 3554 3555 3556 3557 3558 3559 3560 3561 3562 3563 3564 3565 3566 3567 3568 3569 3570 3571 3572 3573 3574 3575 3576 3577 3578 | } }] true true true results errors System.Data.SQLite.dll] list $code $results \ [expr {[info exists errors] ? $errors : ""}] \ [expr {$code eq "Ok" ? [catch { object invoke _Dynamic${id}.Test${id} BindFunction } result] : [set result ""]}] \ [extractSystemDataSQLiteExceptionMessage $result] \ [expr {$code eq "Ok" ? [catch { object invoke _Dynamic${id}.Test${id} CallFunction } result] : [set result ""]}] \ [extractSystemDataSQLiteExceptionMessage $result] \ [expr {$code eq "Ok" ? [catch { object invoke _Dynamic${id}.Test${id} CloseAndReopen } result] : [set result ""]}] \ [extractSystemDataSQLiteExceptionMessage $result] \ [expr {$code eq "Ok" ? [catch { object invoke _Dynamic${id}.Test${id} CallFunction } result] : [set result ""]}] \ [extractSystemDataSQLiteExceptionMessage $result] \ [expr {$code eq "Ok" ? [catch { object invoke _Dynamic${id}.Test${id} BindFunction } result] : [set result ""]}] \ [extractSystemDataSQLiteExceptionMessage $result] \ [expr {$code eq "Ok" ? [catch { object invoke _Dynamic${id}.Test${id} CallFunction } result] : [set result ""]}] \ [extractSystemDataSQLiteExceptionMessage $result] \ [expr {$code eq "Ok" ? [catch { object invoke _Dynamic${id}.Test${id} Uninitialize } result] : [set result ""]}] \ [extractSystemDataSQLiteExceptionMessage $result] } -cleanup { cleanupDb $fileName unset -nocomplain result code results errors sql dataSource id fileName } -constraints {eagle command.object monoBug28 command.sql compile.DATA SQLite\ System.Data.SQLite compileCSharp} -match regexp -result {^Ok\ System#CodeDom#Compiler#CompilerResults#\d+ \{\} 0 \{\} 0 (?:-)?\d+ 0 \{\} 1\ \{SQL logic error or missing database -- no such function: MyRandom\} 0 \{\} 0\ (?:-)?\d+ 0 \{\}$}} ############################################################################### runTest {test data-1.74 {bind functions using delegate} -setup { proc getMyFuncArgs { argumentCount } { set result [list] |
︙ | ︙ |
Changes to Tests/tkt-17045010df.eagle.
︙ | ︙ | |||
39 40 41 42 43 44 45 | [getCoreBinaryFileName] interop_test_extension_init}] lappend result [catchAndReturn {sql execute -execute scalar $db \ "SELECT interopTest('test2');"}] lappend result [catchAndReturn {sql execute -execute scalar $db \ "SELECT interopTest('test2', '5678');"}] | | < < | | < | | | | | < | | 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 | [getCoreBinaryFileName] interop_test_extension_init}] lappend result [catchAndReturn {sql execute -execute scalar $db \ "SELECT interopTest('test2');"}] lappend result [catchAndReturn {sql execute -execute scalar $db \ "SELECT interopTest('test2', '5678');"}] set result } -cleanup { freeDbConnection unset -nocomplain result connection cleanupDb $fileName unset -nocomplain db fileName } -constraints {eagle command.object monoBug28\ defineConstant.System.Data.SQLite.INTEROP_TEST_EXTENSION command.sql\ compile.DATA SQLite System.Data.SQLite} -result {{0 {}} {1 {EXCEPTION\ System.Data.SQLite.SQLiteException System.Data.SQLite.SQLite3.LoadExtension}\ {SQL logic error or missing database -- not authorized}} {1 {EXCEPTION\ System.Data.SQLite.SQLiteException System.Data.SQLite.SQLite3.Prepare} {SQL\ logic error or missing database -- no such function: interopTest}} {1\ {EXCEPTION System.Data.SQLite.SQLiteException\ System.Data.SQLite.SQLite3.Prepare} {SQL logic error or missing database -- no\ such function: interopTest}} {0 {}} {0 {}} {0 test2} {1 {EXCEPTION\ System.Data.SQLite.SQLiteException System.Data.SQLite.SQLite3.Reset} {SQL logic\ error or missing database -- need exactly one argument}}}} ############################################################################### runSQLiteTestEpilogue runTestEpilogue |
Changes to Tests/tkt-1c456ae75f.eagle.
︙ | ︙ | |||
28 29 30 31 32 33 34 | cleanupDb $fileName db true false false setupDb $fileName "" "" "" "" "HexPassword=3132333435;" true false set result [list] lappend result [catch {sql execute -execute scalar $db \ | | > | > | > | > | < < | | 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 | cleanupDb $fileName db true false false setupDb $fileName "" "" "" "" "HexPassword=3132333435;" true false set result [list] lappend result [catch {sql execute -execute scalar $db \ "SELECT COUNT(*) FROM t1;"} error] \ [extractSystemDataSQLiteExceptionMessage $error] lappend result [catch {sql execute $db \ "INSERT INTO t1 (x) VALUES(1);"} error] \ [extractSystemDataSQLiteExceptionMessage $error] cleanupDb $fileName db true false false setupDb $fileName "" "" "" "" "" true false lappend result [catch {sql execute $db \ "INSERT INTO t1 (x) VALUES(1);"} error] \ [extractSystemDataSQLiteExceptionMessage $error] lappend result [catch {sql execute -execute scalar $db \ "SELECT COUNT(*) FROM t1;"} error] \ [extractSystemDataSQLiteExceptionMessage $error] set result } -cleanup { cleanupDb $fileName unset -nocomplain error result db fileName } -constraints {eagle System.Data.SQLite.Encryption monoBug28 command.sql\ compile.DATA SQLite System.Data.SQLite} -result {1 {file is encrypted or is not\ a database} 1 {file is encrypted or is not a database} 0 1 0 2}} ############################################################################### runTest {test tkt-1c456ae75f-1.2 {database, hex password} -setup { setupDb [set fileName tkt-1c456ae75f-1.2.db] "" "" "" "" \ "HexPassword=3132333435;" } -body { |
︙ | ︙ | |||
105 106 107 108 109 110 111 | cleanupDb $fileName db true false false setupDb $fileName "" "" "" "" "HexPassword=3132333436;" true false set result [list] lappend result [catch {sql execute -execute scalar $db \ | | > | > | > | > | < < | | 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 | cleanupDb $fileName db true false false setupDb $fileName "" "" "" "" "HexPassword=3132333436;" true false set result [list] lappend result [catch {sql execute -execute scalar $db \ "SELECT COUNT(*) FROM t1;"} error] \ [extractSystemDataSQLiteExceptionMessage $error] lappend result [catch {sql execute $db \ "INSERT INTO t1 (x) VALUES(1);"} error] \ [extractSystemDataSQLiteExceptionMessage $error] cleanupDb $fileName db true false false setupDb $fileName "" "" "" "" "HexPassword=3132333435;" true false lappend result [catch {sql execute $db \ "INSERT INTO t1 (x) VALUES(1);"} error] \ [extractSystemDataSQLiteExceptionMessage $error] lappend result [catch {sql execute -execute scalar $db \ "SELECT COUNT(*) FROM t1;"} error] \ [extractSystemDataSQLiteExceptionMessage $error] set result } -cleanup { cleanupDb $fileName unset -nocomplain error result db fileName } -constraints {eagle System.Data.SQLite.Encryption monoBug28 command.sql\ compile.DATA SQLite System.Data.SQLite} -result {1 {file is encrypted or is not\ a database} 1 {file is encrypted or is not a database} 0 1 0 2}} ############################################################################### runTest {test tkt-1c456ae75f-1.4 {database, hex password via builder} -setup { setupDb [set fileName tkt-1c456ae75f-1.4.db] "" "" "" "" \ "HexPassword=3132333435;" } -body { |
︙ | ︙ |
Changes to Tests/tkt-ccfa69fc32.eagle.
︙ | ︙ | |||
43 44 45 46 47 48 49 | tlog "---- BEGIN STDOUT OUTPUT\n" tlog $output tlog "\n---- END STDOUT OUTPUT\n" lappend result $code if {$code == 0} then { | | > | > | | < < | | | 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 | tlog "---- BEGIN STDOUT OUTPUT\n" tlog $output tlog "\n---- END STDOUT OUTPUT\n" lappend result $code if {$code == 0} then { lappend result [string trim \ [extractSystemDataSQLiteExceptionMessage $output]] } else { lappend result [string trim \ [extractSystemDataSQLiteExceptionMessage $error]] } } set result } -cleanup { unset -nocomplain code output error result add } -constraints {eagle monoToDo SQLite file_System.Data.SQLite.dll testExec\ file_System.Data.SQLite.Linq.dll file_testlinq.exe file_northwindEF.db} \ -result {0 {1581 1730 1833 2116 2139} 0 {constraint failed -- UNIQUE constraint\ failed: Territories.TerritoryID} 0 {1 2 3 4 5 6 7 8 9 10 1576 1577 1578 1579\ 1580 1581 1730 1833 2116 2139}}} ############################################################################### runTest {test tkt-ccfa69fc32-1.2 {EF6 Transaction Scope} -body { # # NOTE: Re-copy the reference database file used for this unit test to the # build directory in case it has been changed by a previous test run. |
︙ | ︙ | |||
88 89 90 91 92 93 94 | tlog "---- BEGIN STDOUT OUTPUT\n" tlog $output tlog "\n---- END STDOUT OUTPUT\n" lappend result $code if {$code == 0} then { | | > | > | | < < | | | 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 | tlog "---- BEGIN STDOUT OUTPUT\n" tlog $output tlog "\n---- END STDOUT OUTPUT\n" lappend result $code if {$code == 0} then { lappend result [string trim \ [extractSystemDataSQLiteExceptionMessage $output]] } else { lappend result [string trim \ [extractSystemDataSQLiteExceptionMessage $error]] } } set result } -cleanup { unset -nocomplain code output error result add } -constraints {eagle monoToDo SQLite file_System.Data.SQLite.dll testExec\ file_System.Data.SQLite.EF6.dll file_testef6.exe file_northwindEF.db} \ -result {0 {1581 1730 1833 2116 2139} 0 {constraint failed -- UNIQUE constraint\ failed: Territories.TerritoryID} 0 {1 2 3 4 5 6 7 8 9 10 1576 1577 1578 1579\ 1580 1581 1730 1833 2116 2139}}} ############################################################################### runSQLiteTestFilesEpilogue runSQLiteTestEpilogue runTestEpilogue |
Changes to Tests/tkt-e06c4caff3.eagle.
︙ | ︙ | |||
21 22 23 24 25 26 27 | ############################################################################### runTest {test tkt-e06c4caff3-1.1 {NaN to NULL constraint failure} -setup { setupDb [set fileName tkt-e06c4caff3-1.1.db] } -body { sql execute $db "CREATE TABLE t1(x REAL NOT NULL);" | > | | > | | < | < | 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | ############################################################################### runTest {test tkt-e06c4caff3-1.1 {NaN to NULL constraint failure} -setup { setupDb [set fileName tkt-e06c4caff3-1.1.db] } -body { sql execute $db "CREATE TABLE t1(x REAL NOT NULL);" list [catch { sql execute $db "INSERT INTO t1 (x) VALUES(?);" \ [list param1 Double [set NaN [object invoke Double NaN]]] } error] [extractSystemDataSQLiteExceptionMessage $error] } -cleanup { cleanupDb $fileName unset -nocomplain NaN error db fileName } -constraints {eagle command.object monoBug40 command.sql compile.DATA SQLite\ System.Data.SQLite} -result \ {1 {constraint failed -- NOT NULL constraint failed: t1.x}}} ############################################################################### runTest {test tkt-e06c4caff3-1.2 {NaN to NULL} -setup { setupDb [set fileName tkt-e06c4caff3-1.2.db] } -body { sql execute $db "CREATE TABLE t1(x REAL);" |
︙ | ︙ |
Changes to Tests/tkt-f8dbab8baf.eagle.
︙ | ︙ | |||
116 117 118 119 120 121 122 | {True 0 x}} ############################################################################### runTest {test tkt-f8dbab8baf-1.6 {SchemaOnly CREATE/SELECT failure} -setup { setupDb [set fileName tkt-f8dbab8baf-1.6.db] } -body { | > | | | | | > | | < < | < | 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 | {True 0 x}} ############################################################################### runTest {test tkt-f8dbab8baf-1.6 {SchemaOnly CREATE/SELECT failure} -setup { setupDb [set fileName tkt-f8dbab8baf-1.6.db] } -body { list [catch { sql execute -execute reader -format none -behavior SchemaOnly $db \ "CREATE TABLE t1(x); SELECT x FROM t1;" list [isTableInDb t1] \ [expr {[info exists rows(count)] ? $rows(count) : -1}] \ [expr {[info exists rows(names)] ? $rows(names) : ""}] } error] [extractSystemDataSQLiteExceptionMessage $error] } -cleanup { cleanupDb $fileName unset -nocomplain error rows db fileName } -constraints \ {eagle monoBug40 command.sql compile.DATA SQLite System.Data.SQLite} -result \ {1 {SQL logic error or missing database -- no such table: t1}}} ############################################################################### runSQLiteTestEpilogue runTestEpilogue |
Changes to lib/System.Data.SQLite/common.eagle.
︙ | ︙ | |||
1750 1751 1752 1753 1754 1755 1756 | } else { # # NOTE: Failure. Our caller does not want a full stack trace (if # applicable), return a list with the return code, the error # code for the interpreter, and the error message up to the # point where the stack trace should start. # | < < | | | 1750 1751 1752 1753 1754 1755 1756 1757 1758 1759 1760 1761 1762 1763 1764 1765 | } else { # # NOTE: Failure. Our caller does not want a full stack trace (if # applicable), return a list with the return code, the error # code for the interpreter, and the error message up to the # point where the stack trace should start. # return [list $code $::errorCode \ [extractSystemDataSQLiteExceptionMessage $result]] } } proc compileCSharpWith { text memory symbols strict resultsVarName errorsVarName fileNames args } { # |
︙ | ︙ | |||
1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 | # # NOTE: Return non-zero if the named table is present. # return [expr { [sql execute -execute scalar $db $sql [list param1 String $name]] > 0 }] } proc trimSql { sql } { return [regsub -all -- {\s+} [string trim $sql] " "] } proc executeSql { sql {execute none} {format none} {fileName ""} } { if {[string length $fileName] == 0} then {set fileName :memory:} | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 1837 1838 1839 1840 1841 1842 1843 1844 1845 1846 1847 1848 1849 1850 1851 1852 1853 1854 1855 1856 1857 1858 1859 1860 1861 1862 1863 1864 1865 1866 1867 1868 1869 1870 1871 1872 1873 1874 1875 1876 1877 1878 1879 1880 | # # NOTE: Return non-zero if the named table is present. # return [expr { [sql execute -execute scalar $db $sql [list param1 String $name]] > 0 }] } proc extractSystemDataSQLiteExceptionMessage { value } { # # NOTE: If the string conforms to format of the normal exception # error strings, extract and return only the error message # portion itself. # set patterns [list \ {System\.Data\.SQLite\.SQLiteException \(0x80004005\): (.+?) (?: )?at} \ {System\.Data\.SQLite\.SQLiteException: (.+?) (?: )?at}] foreach pattern $patterns { if {[regexp -- $pattern $value dummy message]} then { set message [string map [list \r\n \n] [string trim $message]] set lines [split $message \n] if {[llength $lines] == 2} then { if {[lindex $lines 0] eq [lindex $lines 1]} then { return [lindex $lines 0] } return [appendArgs [lindex $lines 0] " -- " [lindex $lines 1]] } return $message } } return $value } proc trimSql { sql } { return [regsub -all -- {\s+} [string trim $sql] " "] } proc executeSql { sql {execute none} {format none} {fileName ""} } { if {[string length $fileName] == 0} then {set fileName :memory:} |
︙ | ︙ | |||
3610 3611 3612 3613 3614 3615 3616 | } } } foreach fileNameOnly [getCoreBinaryFileNamesOnly] { catch { tputs $::test_channel [appendArgs \ | | | > > > > > > | | | | > | | < | < < < < | | | | | | | | | | | | > | 3638 3639 3640 3641 3642 3643 3644 3645 3646 3647 3648 3649 3650 3651 3652 3653 3654 3655 3656 3657 3658 3659 3660 3661 3662 3663 3664 3665 3666 3667 3668 3669 3670 3671 3672 3673 3674 3675 3676 3677 3678 3679 3680 3681 3682 3683 3684 3685 3686 3687 3688 3689 3690 3691 3692 3693 3694 3695 3696 3697 3698 3699 3700 3701 3702 3703 3704 3705 3706 3707 3708 3709 3710 3711 3712 3713 3714 3715 3716 3717 3718 3719 3720 3721 3722 3723 3724 3725 3726 3727 3728 3729 3730 | } } } foreach fileNameOnly [getCoreBinaryFileNamesOnly] { catch { tputs $::test_channel [appendArgs \ "---- file version of \"" $fileNameOnly "\"... \"" \ [file version [getBinaryFileName $fileNameOnly]] \"\n] } } catch { tputs $::test_channel [appendArgs \ "---- file version of \"SQLite.Interop.dll\"... \"" \ [file version [getBinaryFileName SQLite.Interop.dll]] \"\n] } catch { tputs $::test_channel [appendArgs \ "---- file version of \"System.Data.SQLite.dll\"... \"" \ [file version [getBinaryFileName System.Data.SQLite.dll]] \"\n] } catch { tputs $::test_channel [appendArgs \ "---- file version of \"System.Data.SQLite.Linq.dll\"... \"" \ [file version [getBinaryFileName System.Data.SQLite.Linq.dll]] \ \"\n] } catch { tputs $::test_channel [appendArgs \ "---- file version of \"System.Data.SQLite.EF6.dll\"... \"" \ [file version [getBinaryFileName System.Data.SQLite.EF6.dll]] \ \"\n] } if {[string length $platform] > 0} then { foreach fileNameOnly [getCoreBinaryFileNamesOnly] { catch { tputs $::test_channel [appendArgs \ "---- file version of \"" $platform \ / $fileNameOnly "\"... \"" [file version \ [getBinaryFileName $fileNameOnly $platform]] \"\n] } } catch { tputs $::test_channel [appendArgs \ "---- file version of \"" $platform \ "/SQLite.Interop.dll\"... \"" [file version \ [getBinaryFileName SQLite.Interop.dll $platform]] \"\n] } catch { tputs $::test_channel [appendArgs \ "---- file version of \"" $platform \ "/System.Data.SQLite.dll\"... \"" [file version \ [getBinaryFileName System.Data.SQLite.dll $platform]] \"\n] } } if {[string length $architecture] > 0} then { foreach fileNameOnly [getCoreBinaryFileNamesOnly] { catch { tputs $::test_channel [appendArgs \ "---- file version of \"" $architecture \ / $fileNameOnly "\"... \"" [file version \ [getBinaryFileName $fileNameOnly $architecture]] \"\n] } } catch { tputs $::test_channel [appendArgs \ "---- file version of \"" $architecture \ "/SQLite.Interop.dll\"... \"" [file version \ [getBinaryFileName SQLite.Interop.dll $architecture]] \"\n] } catch { tputs $::test_channel [appendArgs \ "---- file version of \"" $architecture \ "/System.Data.SQLite.dll\"... \"" [file version \ [getBinaryFileName System.Data.SQLite.dll $architecture]] \ \"\n] } } # # NOTE: Grab the list of managed assemblies for the current process # and report on the System.Data.SQLite related ones. # |
︙ | ︙ |