###############################################################################
#
# tkt-58ed318f2f.eagle --
#
# Written by Joe Mistachkin.
# Released to the public domain, use at your own risk!
#
###############################################################################
package require Eagle
package require Eagle.Library
package require Eagle.Test
runTestPrologue
###############################################################################
package require System.Data.SQLite.Test
runSQLiteTestPrologue
###############################################################################
proc getSettingReadCount { name {viaFile false} } {
if {[haveConstraint buildConfiguration.Debug] && [catch {
object invoke -flags +NonPublic -alias \
System.Data.SQLite.DebugData [expr {$viaFile ? \
"settingFileReadCounts" : "settingReadCounts"}]
} settingReadCounts] == 0} then {
if {[string length $name] > 0} then {
if {[$settingReadCounts TryGetValue $name value]} then {
tputs $::test_channel [appendArgs \
"---- setting \"" $name "\" was read " $value " times" \
[expr {$viaFile ? " from the configuration file" : ""}] \n]
return $value
}
} else {
set nameCount [$settingReadCounts Count]
set valueCount 0
object foreach -alias pair $settingReadCounts {
incr valueCount [$pair Value]
tputs $::test_channel [appendArgs \
"---- setting \"" [$pair Key] "\" was read " [$pair Value] \
" times" [expr {$viaFile ? " from the configuration file" : \
""}] \n]
}
return [list $nameCount $valueCount]
}
}
if {[string length $name] > 0} then {
tputs $::test_channel [appendArgs \
"---- setting \"" $name "\" was not read" [expr {$viaFile ? \
" from the configuration file" : ""}] \n]
} else {
tputs $::test_channel [appendArgs \
"---- no settings were read" [expr {$viaFile ? \
" from the configuration file" : ""}] \n]
}
return -1
}
###############################################################################
reportSQLiteResources $test_channel true
###############################################################################
runTest {test tkt-58ed318f2f-1.1 {standard GetDefaultDbType usage} -setup {
setupDb [set fileName tkt-58ed318f2f-1.1.db]
} -body {
sql execute $db {
CREATE TABLE t1(x, y);
INSERT INTO t1 (x, y) VALUES(0, 1);
INSERT INTO t1 (x, y) VALUES('0', '1');
}
sql execute -execute reader -format list $db "SELECT x, y FROM t1;"
expr {[getSettingReadCount Use_SQLiteConvert_DefaultDbType] == 1}
} -cleanup {
cleanupDb $fileName
unset -nocomplain db fileName
} -constraints {eagle command.object monoBug28 command.sql compile.DATA SQLite\
System.Data.SQLite buildConfiguration.Debug} -result {True}}
###############################################################################
reportSQLiteResources $test_channel true
###############################################################################
runTest {test tkt-58ed318f2f-1.2 {no property GetDefaultDbType usage} -setup {
setupDb [set fileName tkt-58ed318f2f-1.2.db] "" "" "" UseConnectionTypes
} -body {
sql execute $db {
CREATE TABLE t1(x, y);
INSERT INTO t1 (x, y) VALUES(0, 1);
INSERT INTO t1 (x, y) VALUES('0', '1');
}
sql execute -execute reader -format list $db "SELECT x, y FROM t1;"
expr {[getSettingReadCount Use_SQLiteConvert_DefaultDbType] == 1}
} -cleanup {
cleanupDb $fileName
unset -nocomplain db fileName
} -constraints {eagle command.object monoBug28 command.sql compile.DATA SQLite\
System.Data.SQLite buildConfiguration.Debug} -result {True}}
###############################################################################
reportSQLiteResources $test_channel true
###############################################################################
runTest {test tkt-58ed318f2f-1.3 {no flag GetDefaultDbType usage} -setup {
setupDb [set fileName tkt-58ed318f2f-1.3.db] "" "" "" "" \
"DefaultDbType=String;"
} -body {
sql execute $db {
CREATE TABLE t1(x, y);
INSERT INTO t1 (x, y) VALUES(0, 1);
INSERT INTO t1 (x, y) VALUES('0', '1');
}
sql execute -execute reader -format list $db "SELECT x, y FROM t1;"
expr {[getSettingReadCount Use_SQLiteConvert_DefaultDbType] == -1}
} -cleanup {
cleanupDb $fileName
unset -nocomplain db fileName
} -constraints {eagle command.object monoBug28 command.sql compile.DATA SQLite\
System.Data.SQLite buildConfiguration.Debug} -result {True}}
###############################################################################
reportSQLiteResources $test_channel true
###############################################################################
runTest {test tkt-58ed318f2f-1.4 {zero GetDefaultDbType usage} -setup {
setupDb [set fileName tkt-58ed318f2f-1.4.db] "" "" "" UseConnectionTypes \
"DefaultDbType=String;"
} -body {
sql execute $db {
CREATE TABLE t1(x, y);
INSERT INTO t1 (x, y) VALUES(0, 1);
INSERT INTO t1 (x, y) VALUES('0', '1');
}
sql execute -execute reader -format list $db "SELECT x, y FROM t1;"
expr {[getSettingReadCount Use_SQLiteConvert_DefaultDbType] == -1}
} -cleanup {
cleanupDb $fileName
unset -nocomplain db fileName
} -constraints {eagle command.object monoBug28 command.sql compile.DATA SQLite\
System.Data.SQLite buildConfiguration.Debug} -result {True}}
###############################################################################
reportSQLiteResources $test_channel true
###############################################################################
runTest {test tkt-58ed318f2f-1.5 {standard GetDefaultTypeName usage} -setup {
setupDb [set fileName tkt-58ed318f2f-1.5.db]
} -body {
set connection [getDbConnection]
sql execute $db {
CREATE TABLE t1(x, y);
INSERT INTO t1 (x, y) VALUES(0, 1);
INSERT INTO t1 (x, y) VALUES('0', '1');
}
set columns [$connection GetSchema COLUMNS]
expr {[getSettingReadCount Use_SQLiteConvert_DefaultTypeName] == 1}
} -cleanup {
cleanupDb $fileName
freeDbConnection
unset -nocomplain columns connection db fileName
} -constraints {eagle command.object monoBug28 command.sql compile.DATA SQLite\
System.Data.SQLite buildConfiguration.Debug} -result {True}}
###############################################################################
reportSQLiteResources $test_channel true
###############################################################################
runTest {test tkt-58ed318f2f-1.6 {no property GetDefaultTypeName usage} -setup {
setupDb [set fileName tkt-58ed318f2f-1.6.db] "" "" "" UseConnectionTypes
} -body {
set connection [getDbConnection]
sql execute $db {
CREATE TABLE t1(x, y);
INSERT INTO t1 (x, y) VALUES(0, 1);
INSERT INTO t1 (x, y) VALUES('0', '1');
}
set columns [$connection GetSchema COLUMNS]
expr {[getSettingReadCount Use_SQLiteConvert_DefaultTypeName] == 1}
} -cleanup {
cleanupDb $fileName
freeDbConnection
unset -nocomplain columns connection db fileName
} -constraints {eagle command.object monoBug28 command.sql compile.DATA SQLite\
System.Data.SQLite buildConfiguration.Debug} -result {True}}
###############################################################################
reportSQLiteResources $test_channel true
###############################################################################
runTest {test tkt-58ed318f2f-1.7 {no flag GetDefaultTypeName usage} -setup {
setupDb [set fileName tkt-58ed318f2f-1.7.db] "" "" "" "" \
"DefaultDbType=String;"
} -body {
set connection [getDbConnection]
sql execute $db {
CREATE TABLE t1(x, y);
INSERT INTO t1 (x, y) VALUES(0, 1);
INSERT INTO t1 (x, y) VALUES('0', '1');
}
set columns [$connection GetSchema COLUMNS]
expr {[getSettingReadCount Use_SQLiteConvert_DefaultTypeName] == -1}
} -cleanup {
cleanupDb $fileName
freeDbConnection
unset -nocomplain columns connection db fileName
} -constraints {eagle command.object monoBug28 command.sql compile.DATA SQLite\
System.Data.SQLite buildConfiguration.Debug} -result {True}}
###############################################################################
reportSQLiteResources $test_channel true
###############################################################################
runTest {test tkt-58ed318f2f-1.8 {zero GetDefaultTypeName usage} -setup {
setupDb [set fileName tkt-58ed318f2f-1.8.db] "" "" "" UseConnectionTypes \
"DefaultTypeName=TEXT;"
} -body {
set connection [getDbConnection]
sql execute $db {
CREATE TABLE t1(x, y);
INSERT INTO t1 (x, y) VALUES(0, 1);
INSERT INTO t1 (x, y) VALUES('0', '1');
}
set columns [$connection GetSchema COLUMNS]
expr {[getSettingReadCount Use_SQLiteConvert_DefaultTypeName] == -1}
} -cleanup {
cleanupDb $fileName
freeDbConnection
unset -nocomplain columns connection db fileName
} -constraints {eagle command.object monoBug28 command.sql compile.DATA SQLite\
System.Data.SQLite buildConfiguration.Debug} -result {True}}
###############################################################################
reportSQLiteResources $test_channel true
###############################################################################
runTest {test tkt-58ed318f2f-1.9 {zero DefaultDbType settings read} -setup {
setupDb [set fileName tkt-58ed318f2f-1.9.db] "" "" "" NoConvertSettings
} -body {
sql execute $db {
CREATE TABLE t1(x, y);
INSERT INTO t1 (x, y) VALUES(0, 1);
INSERT INTO t1 (x, y) VALUES('0', '1');
}
sql execute -execute reader -format list $db "SELECT x, y FROM t1;"
expr {[getSettingReadCount Use_SQLiteConvert_DefaultDbType] == -1}
} -cleanup {
cleanupDb $fileName
unset -nocomplain db fileName
} -constraints {eagle command.object monoBug28 command.sql compile.DATA SQLite\
System.Data.SQLite buildConfiguration.Debug} -result {True}}
###############################################################################
reportSQLiteResources $test_channel true
###############################################################################
runTest {test tkt-58ed318f2f-1.10 {zero DefaultTypeName settings read} -setup {
setupDb [set fileName tkt-58ed318f2f-1.10.db] "" "" "" NoConvertSettings
} -body {
set connection [getDbConnection]
sql execute $db {
CREATE TABLE t1(x, y);
INSERT INTO t1 (x, y) VALUES(0, 1);
INSERT INTO t1 (x, y) VALUES('0', '1');
}
set columns [$connection GetSchema COLUMNS]
expr {[getSettingReadCount Use_SQLiteConvert_DefaultTypeName] == -1}
} -cleanup {
cleanupDb $fileName
freeDbConnection
unset -nocomplain columns connection db fileName
} -constraints {eagle command.object monoBug28 command.sql compile.DATA SQLite\
System.Data.SQLite buildConfiguration.Debug} -result {True}}
###############################################################################
reportSQLiteResources $test_channel true
###############################################################################
runTest {test tkt-58ed318f2f-1.11 {normal SQLiteConvert settings usage} -setup {
setupDb [set fileName tkt-58ed318f2f-1.11.db]
} -body {
set connection [getDbConnection]
sql execute $db {
CREATE TABLE t1(x, y);
INSERT INTO t1 (x, y) VALUES(0, 1);
INSERT INTO t1 (x, y) VALUES('0', '1');
}
sql execute -execute reader -format list $db "SELECT x, y FROM t1;"
set columns [$connection GetSchema COLUMNS]
#
# TODO: These counts may need to be updated in future versions.
#
expr {[getSettingReadCount Use_SQLiteConvert_DefaultDbType] == 1 && \
[getSettingReadCount Use_SQLiteConvert_DefaultTypeName] == 1}
} -cleanup {
cleanupDb $fileName
freeDbConnection
unset -nocomplain columns connection db fileName
} -constraints {eagle command.object monoBug28 command.sql compile.DATA SQLite\
System.Data.SQLite buildConfiguration.Debug} -result {True}}
###############################################################################
reportSQLiteResources $test_channel true
###############################################################################
runTest {test tkt-58ed318f2f-1.12 {zero SQLiteConvert settings usage} -setup {
setupDb [set fileName tkt-58ed318f2f-1.12.db] "" "" "" NoConvertSettings
} -body {
set connection [getDbConnection]
sql execute $db {
CREATE TABLE t1(x, y);
INSERT INTO t1 (x, y) VALUES(0, 1);
INSERT INTO t1 (x, y) VALUES('0', '1');
}
sql execute -execute reader -format list $db "SELECT x, y FROM t1;"
set columns [$connection GetSchema COLUMNS]
expr {[getSettingReadCount Use_SQLiteConvert_DefaultDbType] == -1 && \
[getSettingReadCount Use_SQLiteConvert_DefaultTypeName] == -1}
} -cleanup {
cleanupDb $fileName
freeDbConnection
unset -nocomplain columns connection db fileName
} -constraints {eagle command.object monoBug28 command.sql compile.DATA SQLite\
System.Data.SQLite buildConfiguration.Debug} -result {True}}
###############################################################################
reportSQLiteResources $test_channel true
###############################################################################
runTest {test tkt-58ed318f2f-1.13 {zero settings usage} -setup {
saveGetSettingValueEnvironment
set env(No_SQLiteGetSettingValue) 1
setupDb [set fileName tkt-58ed318f2f-1.13.db]
} -body {
sql execute $db {
CREATE TABLE t1(x);
INSERT INTO t1 (x) VALUES(0);
}
sql execute -execute reader -format list $db "SELECT x FROM t1;"
expr {[getSettingReadCount ""] eq "0 0"}
} -cleanup {
cleanupDb $fileName
restoreGetSettingValueEnvironment
unset -nocomplain db fileName
} -constraints {eagle command.object monoBug28 command.sql compile.DATA SQLite\
System.Data.SQLite buildConfiguration.Debug} -result {True}}
###############################################################################
reportSQLiteResources $test_channel true
###############################################################################
runTest {test tkt-58ed318f2f-1.14 {zero XML configuration file usage} -setup {
saveGetSettingValueEnvironment
set env(No_SQLiteXmlConfigFile) 1
setupDb [set fileName tkt-58ed318f2f-1.14.db]
} -body {
sql execute $db {
CREATE TABLE t1(x);
INSERT INTO t1 (x) VALUES(0);
}
sql execute -execute reader -format list $db "SELECT x FROM t1;"
expr {[getSettingReadCount ""] eq ([isMono] ? "10 15" : "10 13") && \
[getSettingReadCount "" true] eq "0 0"}
} -cleanup {
cleanupDb $fileName
restoreGetSettingValueEnvironment
unset -nocomplain db fileName
} -constraints {eagle command.object monoBug28 command.sql compile.DATA SQLite\
System.Data.SQLite buildConfiguration.Debug} -result {True}}
###############################################################################
rename getSettingReadCount ""
###############################################################################
reportSQLiteResources $test_channel true
###############################################################################
runSQLiteTestEpilogue
runTestEpilogue