Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Enable easier integration with SEE. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
328517cce9da1643a618b164152a1dd6 |
User & Date: | mistachkin 2015-01-29 00:57:06.268 |
Context
2015-01-29
| ||
05:22 | Escape some reserved characters in the comments for a test. check-in: 15705ce58d user: mistachkin tags: trunk | |
00:57 | Enable easier integration with SEE. check-in: 328517cce9 user: mistachkin tags: trunk | |
2015-01-28
| ||
19:21 | Update version of Inno Setup mentioned in docs. check-in: b3a29a56c9 user: mistachkin tags: trunk | |
Changes
Changes to Externals/Eagle/lib/Eagle1.0/vendor.eagle.
︙ | ︙ | |||
180 181 182 183 184 185 186 | # # NOTE: Check for any overridden settings that may have been specified via # the command line, etc. # checkForTestOverrides stdout [expr {[info exists test_overrides] ? \ $test_overrides : [list binary_directory build_base_directory \ build_directory common_directory connection_flags database_directory \ | | | > | | | 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 | # # NOTE: Check for any overridden settings that may have been specified via # the command line, etc. # checkForTestOverrides stdout [expr {[info exists test_overrides] ? \ $test_overrides : [list binary_directory build_base_directory \ build_directory common_directory connection_flags database_directory \ datetime_format execute_on_setup release_version scratch_directory \ temporary_directory test_configuration test_configurations \ test_constraints test_machine test_net_fx test_overrides \ test_platform test_suite test_year test_years test_year_clr_v2 \ test_year_clr_v4 vendor_directory]}] false # # NOTE: Set the name of the running test suite, if necessary. # if {![info exists test_suite]} then { set test_suite "System.Data.SQLite Test Suite for Eagle" } |
︙ | ︙ |
Changes to SQLite.Interop/src/win/interop.c.
︙ | ︙ | |||
26 27 28 29 30 31 32 | #endif #if defined(INTEROP_EXTENSION_FUNCTIONS) #include "../contrib/extension-functions.c" extern int RegisterExtensionFunctions(sqlite3 *db); #endif | | > > | 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | #endif #if defined(INTEROP_EXTENSION_FUNCTIONS) #include "../contrib/extension-functions.c" extern int RegisterExtensionFunctions(sqlite3 *db); #endif #if defined(SQLITE_OS_WIN) #if defined(INTEROP_CODEC) #include "crypt.c" #elif defined(INTEROP_INCLUDE_SEE) #include "../ext/see.c" #endif #include "interop.h" #define INTEROP_DEBUG_NONE (0x0000) #define INTEROP_DEBUG_CLOSE (0x0001) #define INTEROP_DEBUG_FINALIZE (0x0002) |
︙ | ︙ | |||
83 84 85 86 87 88 89 90 91 92 93 94 95 96 | "CODEC", #endif #ifdef INTEROP_DEBUG "DEBUG=" CTIMEOPT_VAL(INTEROP_DEBUG), #endif #ifdef INTEROP_EXTENSION_FUNCTIONS "EXTENSION_FUNCTIONS", #endif #ifdef INTEROP_LEGACY_CLOSE "LEGACY_CLOSE", #endif #ifdef INTEROP_LOG "LOG", #endif | > > > | 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 | "CODEC", #endif #ifdef INTEROP_DEBUG "DEBUG=" CTIMEOPT_VAL(INTEROP_DEBUG), #endif #ifdef INTEROP_EXTENSION_FUNCTIONS "EXTENSION_FUNCTIONS", #endif #ifdef INTEROP_INCLUDE_SEE "INCLUDE_SEE", #endif #ifdef INTEROP_LEGACY_CLOSE "LEGACY_CLOSE", #endif #ifdef INTEROP_LOG "LOG", #endif |
︙ | ︙ | |||
1050 1051 1052 1053 1054 1055 1056 | interopTestFunc, 0, 0); if( rc==SQLITE_OK ){ rc = sqlite3_create_function(db, "interopSleep", 1, SQLITE_ANY, 0, interopSleepFunc, 0, 0); } return rc; } | | | 1055 1056 1057 1058 1059 1060 1061 1062 | interopTestFunc, 0, 0); if( rc==SQLITE_OK ){ rc = sqlite3_create_function(db, "interopSleep", 1, SQLITE_ANY, 0, interopSleepFunc, 0, 0); } return rc; } #endif /* defined(SQLITE_OS_WIN) */ |
Changes to System.Data.SQLite/SQLite3.cs.
︙ | ︙ | |||
2279 2280 2281 2282 2283 2284 2285 | /// Add a log message via the SQLite sqlite3_log interface. internal static void StaticLogMessage(SQLiteErrorCode iErrCode, string zMessage) { UnsafeNativeMethods.sqlite3_log(iErrCode, ToUTF8(zMessage)); } | | | 2279 2280 2281 2282 2283 2284 2285 2286 2287 2288 2289 2290 2291 2292 2293 | /// Add a log message via the SQLite sqlite3_log interface. internal static void StaticLogMessage(SQLiteErrorCode iErrCode, string zMessage) { UnsafeNativeMethods.sqlite3_log(iErrCode, ToUTF8(zMessage)); } #if INTEROP_CODEC || INTEROP_INCLUDE_SEE internal override void SetPassword(byte[] passwordBytes) { SQLiteErrorCode n = UnsafeNativeMethods.sqlite3_key(_sql, passwordBytes, passwordBytes.Length); if (n != SQLiteErrorCode.Ok) throw new SQLiteException(n, GetLastError()); } internal override void ChangePassword(byte[] newPasswordBytes) |
︙ | ︙ |
Changes to System.Data.SQLite/SQLiteBase.cs.
︙ | ︙ | |||
371 372 373 374 375 376 377 | /// <param name="iErrCode">Error code to be logged with the message.</param> /// <param name="zMessage">String to be logged. Unlike the SQLite sqlite3_log() /// interface, this should be pre-formatted. Consider using the /// String.Format() function.</param> /// <returns></returns> internal abstract void LogMessage(SQLiteErrorCode iErrCode, string zMessage); | | | 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 | /// <param name="iErrCode">Error code to be logged with the message.</param> /// <param name="zMessage">String to be logged. Unlike the SQLite sqlite3_log() /// interface, this should be pre-formatted. Consider using the /// String.Format() function.</param> /// <returns></returns> internal abstract void LogMessage(SQLiteErrorCode iErrCode, string zMessage); #if INTEROP_CODEC || INTEROP_INCLUDE_SEE internal abstract void SetPassword(byte[] passwordBytes); internal abstract void ChangePassword(byte[] newPasswordBytes); #endif internal abstract void SetAuthorizerHook(SQLiteAuthorizerCallback func); internal abstract void SetUpdateHook(SQLiteUpdateCallback func); internal abstract void SetCommitHook(SQLiteCommitCallback func); |
︙ | ︙ |
Changes to System.Data.SQLite/SQLiteConnection.cs.
︙ | ︙ | |||
469 470 471 472 473 474 475 | /// </summary> internal SQLiteBase _sql; /// <summary> /// The database filename minus path and extension /// </summary> private string _dataSource; | | | 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 | /// </summary> internal SQLiteBase _sql; /// <summary> /// The database filename minus path and extension /// </summary> private string _dataSource; #if INTEROP_CODEC || INTEROP_INCLUDE_SEE /// <summary> /// Temporary password storage, emptied after the database has been opened /// </summary> private byte[] _password; #endif /// <summary> |
︙ | ︙ | |||
2575 2576 2577 2578 2579 2580 2581 | if (fullUri) flags |= SQLiteOpenFlagsEnum.Uri; _sql.Open(fileName, _flags, flags, maxPoolSize, usePooling); _binaryGuid = SQLiteConvert.ToBoolean(FindKey(opts, "BinaryGUID", DefaultBinaryGUID.ToString())); | | | 2575 2576 2577 2578 2579 2580 2581 2582 2583 2584 2585 2586 2587 2588 2589 | if (fullUri) flags |= SQLiteOpenFlagsEnum.Uri; _sql.Open(fileName, _flags, flags, maxPoolSize, usePooling); _binaryGuid = SQLiteConvert.ToBoolean(FindKey(opts, "BinaryGUID", DefaultBinaryGUID.ToString())); #if INTEROP_CODEC || INTEROP_INCLUDE_SEE string hexPassword = FindKey(opts, "HexPassword", DefaultHexPassword); if (!String.IsNullOrEmpty(hexPassword)) { string error = null; byte[] hexPasswordBytes = FromHexString(hexPassword, ref error); |
︙ | ︙ | |||
3309 3310 3311 3312 3313 3314 3315 | if (_sql == null) throw new InvalidOperationException("Database connection not valid for logging message."); _sql.LogMessage((SQLiteErrorCode)iErrCode, zMessage); } | | | 3309 3310 3311 3312 3313 3314 3315 3316 3317 3318 3319 3320 3321 3322 3323 | if (_sql == null) throw new InvalidOperationException("Database connection not valid for logging message."); _sql.LogMessage((SQLiteErrorCode)iErrCode, zMessage); } #if INTEROP_CODEC || INTEROP_INCLUDE_SEE /// <summary> /// Change the password (or assign a password) to an open database. /// </summary> /// <remarks> /// No readers or writers may be active for this process. The database must already be open /// and if it already was password protected, the existing password must already have been supplied. /// </remarks> |
︙ | ︙ |
Changes to System.Data.SQLite/SQLiteDefineConstants.cs.
︙ | ︙ | |||
31 32 33 34 35 36 37 38 39 40 41 42 43 44 | #if INTEROP_DEBUG "INTEROP_DEBUG", #endif #if INTEROP_EXTENSION_FUNCTIONS "INTEROP_EXTENSION_FUNCTIONS", #endif #if INTEROP_LEGACY_CLOSE "INTEROP_LEGACY_CLOSE", #endif #if INTEROP_LOG "INTEROP_LOG", | > > > > | 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | #if INTEROP_DEBUG "INTEROP_DEBUG", #endif #if INTEROP_EXTENSION_FUNCTIONS "INTEROP_EXTENSION_FUNCTIONS", #endif #if INTEROP_INCLUDE_SEE "INTEROP_INCLUDE_SEE", #endif #if INTEROP_LEGACY_CLOSE "INTEROP_LEGACY_CLOSE", #endif #if INTEROP_LOG "INTEROP_LOG", |
︙ | ︙ |
Changes to System.Data.SQLite/Targets/System.Data.SQLite.Properties.targets.
︙ | ︙ | |||
152 153 154 155 156 157 158 159 160 161 162 163 164 165 | NOTE: Enable support (in the managed assemblies) for encrypted databases using the CryptoAPI based codec? --> <PropertyGroup Condition="'$(InteropCodec)' != 'false'"> <DefineConstants>$(DefineConstants);INTEROP_CODEC</DefineConstants> </PropertyGroup> <!-- NOTE: Enable extra diagnostics from the custom built interop DLL (see the "SQLite.NET.Settings.targets" file for more information)? --> <PropertyGroup Condition="'$(InteropDebug)' != 'false'"> <DefineConstants>$(DefineConstants);INTEROP_DEBUG</DefineConstants> </PropertyGroup> | > > > > > > > > | 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 | NOTE: Enable support (in the managed assemblies) for encrypted databases using the CryptoAPI based codec? --> <PropertyGroup Condition="'$(InteropCodec)' != 'false'"> <DefineConstants>$(DefineConstants);INTEROP_CODEC</DefineConstants> </PropertyGroup> <!-- NOTE: Enable support (in the managed assemblies) for encrypted databases using SEE? --> <PropertyGroup Condition="'$(InteropIncludeSee)' != 'false'"> <DefineConstants>$(DefineConstants);INTEROP_INCLUDE_SEE</DefineConstants> </PropertyGroup> <!-- NOTE: Enable extra diagnostics from the custom built interop DLL (see the "SQLite.NET.Settings.targets" file for more information)? --> <PropertyGroup Condition="'$(InteropDebug)' != 'false'"> <DefineConstants>$(DefineConstants);INTEROP_DEBUG</DefineConstants> </PropertyGroup> |
︙ | ︙ |
Changes to System.Data.SQLite/UnsafeNativeMethods.cs.
︙ | ︙ | |||
2086 2087 2088 2089 2090 2091 2092 | #if !PLATFORM_COMPACTFRAMEWORK [DllImport(SQLITE_DLL, CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Unicode)] #else [DllImport(SQLITE_DLL, CharSet = CharSet.Unicode)] #endif internal static extern void sqlite3_result_text16(IntPtr context, string strName, int nLen, IntPtr pvReserved); | | | 2086 2087 2088 2089 2090 2091 2092 2093 2094 2095 2096 2097 2098 2099 2100 | #if !PLATFORM_COMPACTFRAMEWORK [DllImport(SQLITE_DLL, CallingConvention = CallingConvention.Cdecl, CharSet = CharSet.Unicode)] #else [DllImport(SQLITE_DLL, CharSet = CharSet.Unicode)] #endif internal static extern void sqlite3_result_text16(IntPtr context, string strName, int nLen, IntPtr pvReserved); #if INTEROP_CODEC || INTEROP_INCLUDE_SEE #if !PLATFORM_COMPACTFRAMEWORK [DllImport(SQLITE_DLL, CallingConvention = CallingConvention.Cdecl)] #else [DllImport(SQLITE_DLL)] #endif internal static extern SQLiteErrorCode sqlite3_key(IntPtr db, byte[] key, int keylen); |
︙ | ︙ |
Changes to Targets/SQLite.NET.Settings.targets.
︙ | ︙ | |||
332 333 334 335 336 337 338 339 340 341 342 343 344 345 | "SQLite.Interop\props\SQLite.Interop.20YY.[vs]props" both for the corresponding version(s) of Visual Studio. --> <InteropCodec Condition="'$(InteropCodec)' == ''">true</InteropCodec> <!-- NOTE: Enable extra diagnostics from the custom built interop DLL (i.e. "SQLite.Interop.dll")? By default, this is enabled in the Debug build configuration. If this is disabled, no extra diagnostics will be emitted. If this is enabled, it must also be enabled via the "INTEROP_DEBUG=XX" preprocessor define being present in the "INTEROP_DEBUG_DEFINES" macro in the build properties file: | > > > > > > > > > > > > > > > > > > > > | 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 | "SQLite.Interop\props\SQLite.Interop.20YY.[vs]props" both for the corresponding version(s) of Visual Studio. --> <InteropCodec Condition="'$(InteropCodec)' == ''">true</InteropCodec> <!-- NOTE: Enable including SEE with the custom built interop DLL (i.e. "SQLite.Interop.dll")? By default, this is disabled. If this is enabled, the "see.c" file will be included from the extensions directory. If this is enabled, it must also be enabled via the "SQLITE_HAS_CODEC=1" preprocessor define being present in the "SQLITE_EXTRA_DEFINES" macro in the build properties file: "SQLite.Interop\props\sqlite3.[vs]props" AND via the "INTEROP_INCLUDE_SEE=1" preprocessor define being present in the "INTEROP_EXTRA_DEFINES" macro in the build properties file: "SQLite.Interop\props\SQLite.Interop.20YY.[vs]props" both for the corresponding version(s) of Visual Studio. --> <InteropIncludeSee Condition="'$(InteropIncludeSee)' == ''">false</InteropIncludeSee> <!-- NOTE: Enable extra diagnostics from the custom built interop DLL (i.e. "SQLite.Interop.dll")? By default, this is enabled in the Debug build configuration. If this is disabled, no extra diagnostics will be emitted. If this is enabled, it must also be enabled via the "INTEROP_DEBUG=XX" preprocessor define being present in the "INTEROP_DEBUG_DEFINES" macro in the build properties file: |
︙ | ︙ |
Changes to Tests/basic.eagle.
︙ | ︙ | |||
1957 1958 1959 1960 1961 1962 1963 | "SELECT COUNT(*) FROM t1;"} error] $error set result } -cleanup { cleanupDb $fileName unset -nocomplain error result db fileName | | | | 1957 1958 1959 1960 1961 1962 1963 1964 1965 1966 1967 1968 1969 1970 1971 1972 | "SELECT COUNT(*) FROM t1;"} error] $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} -match regexp -result {^1\ \{System\.Data\.SQLite\.SQLiteException \(0x80004005\): file is encrypted or is\ not a database.*?\} 1 \{System\.Data\.SQLite\.SQLiteException \(0x80004005\):\ file is encrypted or is not a database.*?\} 0 1 0 2$}} ############################################################################### runTest {test data-1.40 {encrypted database, wrong password} -setup { |
︙ | ︙ | |||
1996 1997 1998 1999 2000 2001 2002 | "SELECT COUNT(*) FROM t1;"} error] $error set result } -cleanup { cleanupDb $fileName unset -nocomplain error result db fileName | | | | 1996 1997 1998 1999 2000 2001 2002 2003 2004 2005 2006 2007 2008 2009 2010 2011 | "SELECT COUNT(*) FROM t1;"} error] $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} -match regexp -result {^1\ \{System\.Data\.SQLite\.SQLiteException \(0x80004005\): file is encrypted or is\ not a database.*?\} 1 \{System\.Data\.SQLite\.SQLiteException \(0x80004005\):\ file is encrypted or is not a database.*?\} 0 1 0 2$}} ############################################################################### runTest {test data-1.41 {encrypted database, password w/start-space} -setup { |
︙ | ︙ | |||
2035 2036 2037 2038 2039 2040 2041 | "SELECT COUNT(*) FROM t1;"} error] $error set result } -cleanup { cleanupDb $fileName unset -nocomplain error result db fileName | | | | 2035 2036 2037 2038 2039 2040 2041 2042 2043 2044 2045 2046 2047 2048 2049 2050 | "SELECT COUNT(*) FROM t1;"} error] $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 {0 1 0 1 0 1 0 3}} ############################################################################### runTest {test data-1.42 {encrypted database, w/quoted-start-space} -setup { setupDb [set fileName data-1.42.db] "" "" "" "" "Password=\" 1234\";" } -body { sql execute $db "CREATE TABLE t1(x);" |
︙ | ︙ | |||
2071 2072 2073 2074 2075 2076 2077 | "SELECT COUNT(*) FROM t1;"} error] $error set result } -cleanup { cleanupDb $fileName unset -nocomplain error result db fileName | | | | 2071 2072 2073 2074 2075 2076 2077 2078 2079 2080 2081 2082 2083 2084 2085 2086 | "SELECT COUNT(*) FROM t1;"} error] $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} -match regexp -result {^1\ \{System\.Data\.SQLite\.SQLiteException \(0x80004005\): file is encrypted or is\ not a database.*?\} 1 \{System\.Data\.SQLite\.SQLiteException \(0x80004005\):\ file is encrypted or is not a database.*?\} 0 1 0 2$}} ############################################################################### runTest {test data-1.43 {encrypted database, password w/mid-space} -setup { |
︙ | ︙ | |||
2110 2111 2112 2113 2114 2115 2116 | "SELECT COUNT(*) FROM t1;"} error] $error set result } -cleanup { cleanupDb $fileName unset -nocomplain error result db fileName | | | | 2110 2111 2112 2113 2114 2115 2116 2117 2118 2119 2120 2121 2122 2123 2124 2125 | "SELECT COUNT(*) FROM t1;"} error] $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} -match regexp -result {^1\ \{System\.Data\.SQLite\.SQLiteException \(0x80004005\): file is encrypted or is\ not a database.*?\} 1 \{System\.Data\.SQLite\.SQLiteException \(0x80004005\):\ file is encrypted or is not a database.*?\} 0 1 0 2$}} ############################################################################### runTest {test data-1.44 {encrypted database, password w/end-space} -setup { |
︙ | ︙ | |||
2149 2150 2151 2152 2153 2154 2155 | "SELECT COUNT(*) FROM t1;"} error] $error set result } -cleanup { cleanupDb $fileName unset -nocomplain error result db fileName | | | | 2149 2150 2151 2152 2153 2154 2155 2156 2157 2158 2159 2160 2161 2162 2163 2164 | "SELECT COUNT(*) FROM t1;"} error] $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 {0 1 0 1 0 1 0 3}} ############################################################################### runTest {test data-1.45 {encrypted database, w/quoted-end-space} -setup { setupDb [set fileName data-1.45.db] "" "" "" "" "Password=\"1234 \";" } -body { sql execute $db "CREATE TABLE t1(x);" |
︙ | ︙ | |||
2185 2186 2187 2188 2189 2190 2191 | "SELECT COUNT(*) FROM t1;"} error] $error set result } -cleanup { cleanupDb $fileName unset -nocomplain error result db fileName | | | | 2185 2186 2187 2188 2189 2190 2191 2192 2193 2194 2195 2196 2197 2198 2199 2200 | "SELECT COUNT(*) FROM t1;"} error] $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} -match regexp -result {^1\ \{System\.Data\.SQLite\.SQLiteException \(0x80004005\): file is encrypted or is\ not a database.*?\} 1 \{System\.Data\.SQLite\.SQLiteException \(0x80004005\):\ file is encrypted or is not a database.*?\} 0 1 0 2$}} ############################################################################### runTest {test data-1.46 {encrypted database, password via builder} -setup { |
︙ | ︙ | |||
2239 2240 2241 2242 2243 2244 2245 | set result } -cleanup { unset -nocomplain connection cleanupDb $fileName; # NOTE: After object disposal. unset -nocomplain connectionStringBuilder error result db fileName | | | | 2239 2240 2241 2242 2243 2244 2245 2246 2247 2248 2249 2250 2251 2252 2253 2254 | set result } -cleanup { unset -nocomplain connection cleanupDb $fileName; # NOTE: After object disposal. unset -nocomplain connectionStringBuilder error result db fileName } -constraints {eagle System.Data.SQLite.Encryption monoBug28 command.sql\ compile.DATA SQLite System.Data.SQLite} -result {0 1 0 1 0 1 0 3}} ############################################################################### runTest {test data-1.47 {quoted connection string properties} -setup { unset -nocomplain result list pair strings string } -body { set result [list] |
︙ | ︙ |
Changes to Tests/common.eagle.
︙ | ︙ | |||
776 777 778 779 780 781 782 783 784 785 786 787 788 789 | # therefore, use it. # return $::scratch_directory } else { return [getTemporaryPath] } } proc getTestOverridesPreamble { {extraVarNames ""} } { set varNames [list] # # NOTE: If available, start with the master list of test override # variables. | > > > > > > > > > > > > > > > > > | 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 | # therefore, use it. # return $::scratch_directory } else { return [getTemporaryPath] } } proc getExecuteOnSetup {} { if {[info exists ::execute_on_setup] && \ [string length $::execute_on_setup] > 0} then { # # NOTE: Return the configured SQL to execute during the connection # setup procedure (i.e. for every test database connection). # return $::execute_on_setup } else { # # NOTE: By default, there is no SQL to execute during the connection # setup procedure (i.e. for every test database connection). # return "" } } proc getTestOverridesPreamble { {extraVarNames ""} } { set varNames [list] # # NOTE: If available, start with the master list of test override # variables. |
︙ | ︙ | |||
1814 1815 1816 1817 1818 1819 1820 1821 1822 1823 1824 1825 1826 1827 | # NOTE: Configure the temporary directory for the newly opened database # connection now unless our caller forbids it. # if {$temporary && ![info exists ::no(setTemporaryDirectory)]} then { sql execute $db [appendArgs \ "PRAGMA temp_store_directory = \"" [getTemporaryDirectory] \"\;] } # # NOTE: Always return the connection handle upon success. # return $db } | > > > > > > > > > > > > > > > > > | 1831 1832 1833 1834 1835 1836 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 | # NOTE: Configure the temporary directory for the newly opened database # connection now unless our caller forbids it. # if {$temporary && ![info exists ::no(setTemporaryDirectory)]} then { sql execute $db [appendArgs \ "PRAGMA temp_store_directory = \"" [getTemporaryDirectory] \"\;] } # # NOTE: Perform any extra per-connection setup for the newly opened # database now unless our caller forbids it. # set executeOnSetup [getExecuteOnSetup] if {[string length $executeOnSetup] > 0 && \ ![info exists ::no(executeOnSetup)]} then { # # NOTE: This command may raise an error; if so, that is fine, as # the enclosing test will then fail. The [subst] command is # used on the SQL in case it needs to refer to state in our # context. # sql execute $db [subst $executeOnSetup] } # # NOTE: Always return the connection handle upon success. # return $db } |
︙ | ︙ | |||
3118 3119 3120 3121 3122 3123 3124 | # are some compile-time options that must also have been enabled # for the interop assembly in order to be effective. For those # options, it will be assumed that it was enabled for the interop # assembly if it was enabled for the managed assembly. # foreach defineConstant [list \ CHECK_STATE COUNT_HANDLE DEBUG INTEROP_CODEC INTEROP_DEBUG \ | | > | | | | | < | > > > > > > > > > > > > > > | 3152 3153 3154 3155 3156 3157 3158 3159 3160 3161 3162 3163 3164 3165 3166 3167 3168 3169 3170 3171 3172 3173 3174 3175 3176 3177 3178 3179 3180 3181 3182 3183 3184 3185 3186 3187 3188 3189 3190 3191 3192 3193 | # are some compile-time options that must also have been enabled # for the interop assembly in order to be effective. For those # options, it will be assumed that it was enabled for the interop # assembly if it was enabled for the managed assembly. # foreach defineConstant [list \ CHECK_STATE COUNT_HANDLE DEBUG INTEROP_CODEC INTEROP_DEBUG \ INTEROP_EXTENSION_FUNCTIONS INTEROP_INCLUDE_SEE \ INTEROP_LEGACY_CLOSE INTEROP_LOG INTEROP_TEST_EXTENSION \ INTEROP_VIRTUAL_TABLE NET_20 NET_35 NET_40 NET_45 NET_451 \ NET_COMPACT_20 PLATFORM_COMPACTFRAMEWORK PRELOAD_NATIVE_LIBRARY \ RETARGETABLE SQLITE_STANDARD THROW_ON_DISPOSED TRACE \ TRACE_CONNECTION TRACE_DETECTION TRACE_HANDLE TRACE_PRELOAD \ TRACE_SHARED TRACE_STATEMENT TRACE_WARNING TRACK_MEMORY_BYTES \ USE_ENTITY_FRAMEWORK_6 USE_INTEROP_DLL USE_PREPARE_V2 WINDOWS] { # # NOTE: Check if the compile-time option is listed in the list of # "define constants" kept track of by the managed assembly. # checkForSQLiteDefineConstant $::test_channel $defineConstant } # # NOTE: Check if the System.Data.SQLite provider was compiled with # support for any encrypted databases. # if {[haveConstraint \ defineConstant.System.Data.SQLite.INTEROP_CODEC] || \ [haveConstraint \ defineConstant.System.Data.SQLite.INTEROP_INCLUDE_SEE]} then { # # NOTE: Yes, add generic constraint for use by the test suite. # addConstraint System.Data.SQLite.Encryption } # # NOTE: Check the current build year. Basically, this indicates # which version of MSBuild and/or Visual Studio was used to # compile the assembly binaries under test. # tputs $::test_channel \ |
︙ | ︙ |
Changes to Tests/tkt-1c456ae75f.eagle.
︙ | ︙ | |||
47 48 49 50 51 52 53 | "SELECT COUNT(*) FROM t1;"} error] $error set result } -cleanup { cleanupDb $fileName unset -nocomplain error result db fileName | | | | 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 | "SELECT COUNT(*) FROM t1;"} error] $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} -match regexp -result {^1\ \{System\.Data\.SQLite\.SQLiteException \(0x80004005\): file is encrypted or is\ not a database.*?\} 1 \{System\.Data\.SQLite\.SQLiteException \(0x80004005\):\ file is encrypted or is not a database.*?\} 0 1 0 2$}} ############################################################################### runTest {test tkt-1c456ae75f-1.2 {database, hex password} -setup { |
︙ | ︙ | |||
87 88 89 90 91 92 93 | "SELECT COUNT(*) FROM t1;"} error] $error set result } -cleanup { cleanupDb $fileName unset -nocomplain error result db fileName | | | | 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 | "SELECT COUNT(*) FROM t1;"} error] $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 {0 1 0 1 0 1 0 3}} ############################################################################### runTest {test tkt-1c456ae75f-1.3 {database, wrong hex password} -setup { setupDb [set fileName tkt-1c456ae75f-1.3.db] "" "" "" "" \ "HexPassword=3132333435;" } -body { |
︙ | ︙ | |||
124 125 126 127 128 129 130 | "SELECT COUNT(*) FROM t1;"} error] $error set result } -cleanup { cleanupDb $fileName unset -nocomplain error result db fileName | | | | 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 | "SELECT COUNT(*) FROM t1;"} error] $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} -match regexp -result {^1\ \{System\.Data\.SQLite\.SQLiteException \(0x80004005\): file is encrypted or is\ not a database.*?\} 1 \{System\.Data\.SQLite\.SQLiteException \(0x80004005\):\ file is encrypted or is not a database.*?\} 0 1 0 2$}} ############################################################################### runTest {test tkt-1c456ae75f-1.4 {database, hex password via builder} -setup { |
︙ | ︙ | |||
179 180 181 182 183 184 185 | set result } -cleanup { unset -nocomplain connection cleanupDb $fileName; # NOTE: After object disposal. unset -nocomplain connectionStringBuilder error result db fileName | | | | 179 180 181 182 183 184 185 186 187 188 189 190 191 192 | set result } -cleanup { unset -nocomplain connection cleanupDb $fileName; # NOTE: After object disposal. unset -nocomplain connectionStringBuilder error result db fileName } -constraints {eagle System.Data.SQLite.Encryption monoBug28 command.sql\ compile.DATA SQLite System.Data.SQLite} -result {0 1 0 1 0 1 0 3}} ############################################################################### runSQLiteTestEpilogue runTestEpilogue |
Changes to test/TestCases.cs.
︙ | ︙ | |||
77 78 79 80 81 82 83 | internal void CheckSQLite() { if (_fact.GetType().Name.IndexOf("SQLite", StringComparison.OrdinalIgnoreCase) == -1) throw new InconclusiveException("Not a SQLite database"); } | > > > > > | | 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 | internal void CheckSQLite() { if (_fact.GetType().Name.IndexOf("SQLite", StringComparison.OrdinalIgnoreCase) == -1) throw new InconclusiveException("Not a SQLite database"); } /* * NOTE: Using SEE for this particular test case is unsupported because we have * no easy way of executing the necessary SQL beforehand. */ #if INTEROP_CODEC // || INTEROP_INCLUDE_SEE /// <summary> /// Tests changing password on an encrypted database. /// </summary> [Test] internal void ChangePasswordTest() { if (_fact.GetType().Name.IndexOf("SQLite", StringComparison.OrdinalIgnoreCase) > -1) |
︙ | ︙ |