Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | Merge testing changes. Rename the XML configuration file to 'System.Data.SQLite.dll.config'. Break out shared native library pre-loading code to fix compilation issues. |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | refactorNativeLibraryPreLoader |
Files: | files | file ages | folders |
SHA1: |
c43afb58ea18ac318a8715b79a8db517 |
User & Date: | mistachkin 2013-12-27 04:03:17.894 |
Context
2013-12-27
| ||
04:55 | Fix reading setting values from the XML configuration file and allow for a default value to be specified. check-in: 2b37dc7c86 user: mistachkin tags: refactorNativeLibraryPreLoader | |
04:03 | Merge testing changes. Rename the XML configuration file to 'System.Data.SQLite.dll.config'. Break out shared native library pre-loading code to fix compilation issues. check-in: c43afb58ea user: mistachkin tags: refactorNativeLibraryPreLoader | |
2013-12-26
| ||
23:48 | More work-in-progress on refactoring the native library pre-loader. check-in: 60011bd9e5 user: mistachkin tags: refactorNativeLibraryPreLoader | |
03:57 | Enhance the test suite infrastructure to support easier testing of the native library pre-loading code. Closed-Leaf check-in: 54d66e2b47 user: mistachkin tags: testNativeLibraryPreLoader | |
Changes
Changes to SQLite.NET.Settings.targets.
︙ | ︙ | |||
441 442 443 444 445 446 447 448 449 450 451 452 453 454 | <!-- NOTE: Enable tracing of events related to the native library pre-loading code? By default, this is enabled. --> <TracePreLoad Condition="'$(TracePreLoad)' == ''">true</TracePreLoad> <!-- NOTE: Enable tracing of events related to the prepared statements? By default, this is disabled. --> <TraceStatement Condition="'$(TraceStatement)' == ''">false</TraceStatement> <!-- | > > > > > > | 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 | <!-- NOTE: Enable tracing of events related to the native library pre-loading code? By default, this is enabled. --> <TracePreLoad Condition="'$(TracePreLoad)' == ''">true</TracePreLoad> <!-- NOTE: Enable tracing of events related to the shared native library pre-loading code? By default, this is enabled. --> <TraceShared Condition="'$(TraceShared)' == ''">true</TraceShared> <!-- NOTE: Enable tracing of events related to the prepared statements? By default, this is disabled. --> <TraceStatement Condition="'$(TraceStatement)' == ''">false</TraceStatement> <!-- |
︙ | ︙ |
Changes to System.Data.SQLite/SQLiteDefineConstants.cs.
︙ | ︙ | |||
107 108 109 110 111 112 113 114 115 116 117 118 119 120 | #if TRACE_HANDLE "TRACE_HANDLE", #endif #if TRACE_PRELOAD "TRACE_PRELOAD", #endif #if TRACE_STATEMENT "TRACE_STATEMENT", #endif #if TRACE_WARNING "TRACE_WARNING", | > > > > | 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 | #if TRACE_HANDLE "TRACE_HANDLE", #endif #if TRACE_PRELOAD "TRACE_PRELOAD", #endif #if TRACE_SHARED "TRACE_SHARED", #endif #if TRACE_STATEMENT "TRACE_STATEMENT", #endif #if TRACE_WARNING "TRACE_WARNING", |
︙ | ︙ |
Changes to System.Data.SQLite/System.Data.SQLite.Files.targets.
︙ | ︙ | |||
10 11 12 13 14 15 16 | <!-- ****************************************************************************** ** Core Files (Common) ** ****************************************************************************** --> <ItemGroup> | | | 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | <!-- ****************************************************************************** ** Core Files (Common) ** ****************************************************************************** --> <ItemGroup> <None Include="System.Data.SQLite.dll.config"> <CopyToOutputDirectory>Always</CopyToOutputDirectory> </None> <Compile Include="AssemblyInfo.cs" /> <Compile Include="AssemblySourceIdAttribute.cs" /> <Compile Include="AssemblySourceTimeStampAttribute.cs" /> <Compile Include="SQLite3.cs" /> <Compile Include="SQLite3_UTF16.cs" /> |
︙ | ︙ |
Changes to System.Data.SQLite/System.Data.SQLite.Properties.targets.
︙ | ︙ | |||
216 217 218 219 220 221 222 223 224 225 226 227 228 229 | <PropertyGroup Condition="'$(TraceHandle)' != 'false'"> <DefineConstants>$(DefineConstants);TRACE_HANDLE</DefineConstants> </PropertyGroup> <PropertyGroup Condition="'$(TracePreLoad)' != 'false'"> <DefineConstants>$(DefineConstants);TRACE_PRELOAD</DefineConstants> </PropertyGroup> <PropertyGroup Condition="'$(TraceStatement)' != 'false'"> <DefineConstants>$(DefineConstants);TRACE_STATEMENT</DefineConstants> </PropertyGroup> <PropertyGroup Condition="'$(TraceWarning)' != 'false'"> <DefineConstants>$(DefineConstants);TRACE_WARNING</DefineConstants> | > > > > | 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 | <PropertyGroup Condition="'$(TraceHandle)' != 'false'"> <DefineConstants>$(DefineConstants);TRACE_HANDLE</DefineConstants> </PropertyGroup> <PropertyGroup Condition="'$(TracePreLoad)' != 'false'"> <DefineConstants>$(DefineConstants);TRACE_PRELOAD</DefineConstants> </PropertyGroup> <PropertyGroup Condition="'$(TraceShared)' != 'false'"> <DefineConstants>$(DefineConstants);TRACE_SHARED</DefineConstants> </PropertyGroup> <PropertyGroup Condition="'$(TraceStatement)' != 'false'"> <DefineConstants>$(DefineConstants);TRACE_STATEMENT</DefineConstants> </PropertyGroup> <PropertyGroup Condition="'$(TraceWarning)' != 'false'"> <DefineConstants>$(DefineConstants);TRACE_WARNING</DefineConstants> |
︙ | ︙ |
Name change from System.Data.SQLite/System.Data.SQLite.config to System.Data.SQLite/System.Data.SQLite.dll.config.
1 2 3 | <?xml version="1.0"?> <!-- * | | | 1 2 3 4 5 6 7 8 9 10 11 | <?xml version="1.0"?> <!-- * * System.Data.SQLite.dll.config - * * Written by Joe Mistachkin. * Released to the public domain, use at your own risk! * --> <configuration> <appSettings> |
︙ | ︙ |
Changes to System.Data.SQLite/UnsafeNativeMethods.cs.
︙ | ︙ | |||
52 53 54 55 56 57 58 59 60 61 62 63 64 65 | internal static int statementCount; internal static int backupCount; #endif #endregion ///////////////////////////////////////////////////////////////////////// #region Optional Native SQLite Library Pre-Loading Code // // NOTE: If we are looking for the standard SQLite DLL ("sqlite3.dll"), // the interop DLL ("SQLite.Interop.dll"), or we are running on the // .NET Compact Framework, we should include this code (only if the // feature has actually been enabled). This code would be totally // redundant if this module has been bundled into the mixed-mode | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 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 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 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 | internal static int statementCount; internal static int backupCount; #endif #endregion ///////////////////////////////////////////////////////////////////////// #region Shared Native SQLite Library Pre-Loading Code private static readonly string DllFileExtension = ".dll"; private static readonly string ConfigFileExtension = ".config"; ///////////////////////////////////////////////////////////////////////// // // NOTE: This is the name of the XML configuration file specific to the // System.Data.SQLite assembly. // private static readonly string XmlConfigFileName = typeof(UnsafeNativeMethods).Namespace + DllFileExtension + ConfigFileExtension; ///////////////////////////////////////////////////////////////////////// /// <summary> /// Queries and returns the XML configuration file name for the assembly /// containing the managed System.Data.SQLite components. /// </summary> /// <returns> /// The XML configuration file name -OR- null if it cannot be determined /// or does not exist. /// </returns> private static string GetXmlConfigFileName() { string directory; string fileName; #if !PLATFORM_COMPACTFRAMEWORK directory = AppDomain.CurrentDomain.BaseDirectory; fileName = Path.Combine(directory, XmlConfigFileName); if (File.Exists(fileName)) return fileName; #endif directory = GetAssemblyDirectory(); fileName = Path.Combine(directory, XmlConfigFileName); if (File.Exists(fileName)) return fileName; return null; } ///////////////////////////////////////////////////////////////////////// /// <summary> /// Queries and returns the value of the specified "configuration" /// variable, using the XML configuration file and/or the environment /// variables for the current process and/or the current system, when /// available. /// </summary> /// <param name="name"> /// The name of the configuration variable. /// </param> /// <returns> /// The value of the configuration variable -OR- null if it cannot be /// determined. By default, references to existing environment will /// be expanded within the returned value unless either the "No_Expand" /// or "No_Expand_<paramref name="name" />" environment variables are /// set. /// </returns> internal static string GetSettingValue( string name ) { string value = null; if (name == null) return value; #if !PLATFORM_COMPACTFRAMEWORK bool expand = true; if (Environment.GetEnvironmentVariable("No_Expand") != null) { expand = false; } else if (Environment.GetEnvironmentVariable(String.Format( "No_Expand_{0}", name)) != null) { expand = false; } value = Environment.GetEnvironmentVariable(name); if (expand && !String.IsNullOrEmpty(value)) value = Environment.ExpandEnvironmentVariables(value); if (value != null) return value; #endif try { string fileName = GetXmlConfigFileName(); if (fileName == null) return value; XmlDocument document = new XmlDocument(); document.Load(fileName); XmlElement element = document.SelectSingleNode(String.Format( "/configuration/appSettings/add[@key='{0}']")) as XmlElement; if (element != null) { if (element.HasAttribute("value")) value = element.GetAttribute("value"); #if !PLATFORM_COMPACTFRAMEWORK if (expand && !String.IsNullOrEmpty(value)) value = Environment.ExpandEnvironmentVariables(value); #endif } } #if !NET_COMPACT_20 && TRACE_SHARED catch (Exception e) #else catch (Exception) #endif { #if !NET_COMPACT_20 && TRACE_SHARED try { Trace.WriteLine(String.Format( CultureInfo.CurrentCulture, "Native library pre-loader failed to get variable " + "\"{0}\" value: {1}", name, e)); /* throw */ } catch { // do nothing. } #endif } return value; } ///////////////////////////////////////////////////////////////////////// /// <summary> /// Queries and returns the directory for the assembly currently being /// executed. /// </summary> /// <returns> /// The directory for the assembly currently being executed -OR- null if /// it cannot be determined. /// </returns> private static string GetAssemblyDirectory() { try { Assembly assembly = Assembly.GetExecutingAssembly(); if (assembly == null) return null; string fileName; #if PLATFORM_COMPACTFRAMEWORK AssemblyName assemblyName = assembly.GetName(); if (assemblyName == null) return null; fileName = assemblyName.CodeBase; #else fileName = assembly.Location; #endif if (String.IsNullOrEmpty(fileName)) return null; string directory = Path.GetDirectoryName(fileName); if (String.IsNullOrEmpty(directory)) return null; return directory; } #if !NET_COMPACT_20 && TRACE_SHARED catch (Exception e) #else catch (Exception) #endif { #if !NET_COMPACT_20 && TRACE_SHARED try { Trace.WriteLine(String.Format( CultureInfo.CurrentCulture, "Native library pre-loader failed to get directory " + "for currently executing assembly: {0}", e)); /* throw */ } catch { // do nothing. } #endif } return null; } #endregion ///////////////////////////////////////////////////////////////////////// #region Optional Native SQLite Library Pre-Loading Code // // NOTE: If we are looking for the standard SQLite DLL ("sqlite3.dll"), // the interop DLL ("SQLite.Interop.dll"), or we are running on the // .NET Compact Framework, we should include this code (only if the // feature has actually been enabled). This code would be totally // redundant if this module has been bundled into the mixed-mode |
︙ | ︙ | |||
75 76 77 78 79 80 81 | /// <summary> /// The name of the environment variable containing the processor /// architecture of the current process. /// </summary> private static readonly string PROCESSOR_ARCHITECTURE = "PROCESSOR_ARCHITECTURE"; | < < < < < < < < < | 285 286 287 288 289 290 291 292 293 294 295 296 297 298 | /// <summary> /// The name of the environment variable containing the processor /// architecture of the current process. /// </summary> private static readonly string PROCESSOR_ARCHITECTURE = "PROCESSOR_ARCHITECTURE"; ///////////////////////////////////////////////////////////////////////// /// <summary> /// This is the P/Invoke method that wraps the native Win32 LoadLibrary /// function. See the MSDN documentation for full details on what it /// does. /// </summary> /// <param name="fileName"> |
︙ | ︙ | |||
245 246 247 248 249 250 251 | // BUGBUG: What about other application domains? // if (_SQLiteModule == IntPtr.Zero) _SQLiteModule = PreLoadSQLiteDll(null, null); } } | < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < < | 446 447 448 449 450 451 452 453 454 455 456 457 458 459 | // BUGBUG: What about other application domains? // if (_SQLiteModule == IntPtr.Zero) _SQLiteModule = PreLoadSQLiteDll(null, null); } } ///////////////////////////////////////////////////////////////////////// /// <summary> /// Queries and returns the base directory of the current application /// domain. /// </summary> /// <returns> /// The base directory for the current application domain -OR- null if it |
︙ | ︙ |
Changes to Tests/common.eagle.
︙ | ︙ | |||
497 498 499 500 501 502 503 | # # NOTE: No release version is available, return an empty string. # return "" } } | | | | 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 | # # NOTE: No release version is available, return an empty string. # return "" } } proc getBuildFileName { fileName {platform ""} } { # # NOTE: Returns the specified file name as if it were located in the # build directory, discarding any directory information present # in the file name as provided by our caller. # return [file nativename \ [file join [getBuildDirectory] $platform [file tail $fileName]]] } proc getBinaryDirectory {} { # # NOTE: This procedure returns the directory where the test application # itself (i.e. the Eagle shell) is located. This will be used as # the destination for the copied System.Data.SQLite native and |
︙ | ︙ | |||
527 528 529 530 531 532 533 | # return $::binary_directory } else { return [info binary] } } | | | | | | | | 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 | # return $::binary_directory } else { return [info binary] } } proc getBinaryFileName { fileName {platform ""} } { # # NOTE: Returns the specified file name as if it were located in the # binary directory, discarding any directory information present # in the file name as provided by our caller. # return [file nativename \ [file join [getBinaryDirectory] $platform [file tail $fileName]]] } proc getCoreBinaryFileName { {platform ""} {standard false} } { # # NOTE: Returns the full path for the file containing the core SQLite # library code for this platform. # if {[hasRuntimeOption native]} then { # # NOTE: Return the mixed-mode assembly file name. # return [file nativename \ [file join [getBinaryDirectory] $platform System.Data.SQLite.dll]] } elseif {$standard} then { # # NOTE: Return the native-only standard SQLite library file name. # return [file nativename \ [file join [getBinaryDirectory] $platform sqlite3.dll]] } else { # # NOTE: Return the native-only interop assembly file name. # return [file nativename \ [file join [getBinaryDirectory] $platform SQLite.Interop.dll]] } } proc getCommonDirectory {} { # # NOTE: This procedure returns the directory where the test scripts # should be located. By default, this just returns the Eagle |
︙ | ︙ | |||
739 740 741 742 743 744 745 | return [uplevel 1 [list subst [appendArgs $prefix { if {[hasRuntimeOption native]} then { object invoke Interpreter.GetActive AddRuntimeOption native } } [getTestOverridesPreamble [list path test_channel]] $suffix]]] } | | | | | | | | | | | | | | | | > | | | > | | | 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 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 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 | return [uplevel 1 [list subst [appendArgs $prefix { if {[hasRuntimeOption native]} then { object invoke Interpreter.GetActive AddRuntimeOption native } } [getTestOverridesPreamble [list path test_channel]] $suffix]]] } proc tryCopyBinaryFile { fileName {platform ""} {newFileName ""} } { set sourceFileName [getBinaryFileName $fileName $platform] if {![file exists $sourceFileName]} then { tputs $::test_channel [appendArgs \ "---- skipped copying binary file \"" $sourceFileName \ "\", it does not exist\n"] return } if {[string length $newFileName] > 0} then { set targetFileName [getBuildFileName $newFileName $platform] } else { set targetFileName [getBuildFileName $fileName $platform] } if {[catch { file copy -force $sourceFileName $targetFileName}] == 0} then { tputs $::test_channel [appendArgs \ "---- copied binary file from \"" $sourceFileName "\" to \"" \ $targetFileName \"\n] } else { tputs $::test_channel [appendArgs \ "---- failed to copy binary file from \"" $sourceFileName \ "\" to \"" $targetFileName \"\n] } } proc tryCopyBuildFile { fileName {platform ""} {newFileName ""} } { set sourceFileName [getBuildFileName $fileName $platform] if {![file exists $sourceFileName]} then { tputs $::test_channel [appendArgs \ "---- skipped copying build file \"" $sourceFileName \ "\", it does not exist\n"] return } if {[string length $newFileName] > 0} then { set targetFileName [getBinaryFileName $newFileName $platform] } else { set targetFileName [getBinaryFileName $fileName $platform] } if {[catch { file copy -force $sourceFileName $targetFileName}] == 0} then { tputs $::test_channel [appendArgs \ "---- copied build file from \"" $sourceFileName "\" to \"" \ $targetFileName \"\n] } else { tputs $::test_channel [appendArgs \ "---- failed to copy build file from \"" $sourceFileName \ "\" to \"" $targetFileName \"\n] } } proc tryDeleteBinaryFile { fileName {platform ""} } { set fileName [getBinaryFileName $fileName $platform] if {![file exists $fileName]} then { tputs $::test_channel [appendArgs \ "---- skipped deleting binary file \"" $fileName \ "\", it does not exist\n"] return } if {[catch {file delete $fileName}] == 0} then { tputs $::test_channel [appendArgs \ "---- deleted binary file \"" $fileName \"\n] } else { tputs $::test_channel [appendArgs \ "---- failed to delete binary file \"" $fileName \"\n] } } proc tryDeleteBuildFile { fileName {platform ""} } { set fileName [getBuildFileName $fileName $platform] if {![file exists $fileName]} then { tputs $::test_channel [appendArgs \ "---- skipped deleting build file \"" $fileName \ "\", it does not exist\n"] return } if {[catch {file delete $fileName}] == 0} then { tputs $::test_channel [appendArgs \ "---- deleted build file \"" $fileName \"\n] } else { tputs $::test_channel [appendArgs \ "---- failed to delete build file \"" $fileName \"\n] } } proc tryCopyAssembly { fileName {platform ""} {pdb true} } { tryCopyBuildFile $fileName $platform if {$pdb} then { tryCopyBuildFile [appendArgs \ [file rootname $fileName] .pdb] $platform } } proc tryDeleteAssembly { fileName {platform ""} {pdb true} } { tryDeleteBinaryFile $fileName $platform if {$pdb} then { tryDeleteBinaryFile [appendArgs \ [file rootname $fileName] .pdb] $platform } } proc tryLoadAssembly { fileName {platform ""} } { set fileName [getBinaryFileName $fileName $platform] if {[catch {set assembly \ [object load -loadtype File -alias $fileName]}] == 0} then { # # NOTE: Now, add the necessary test constraint. # addConstraint [file rootname [file tail $fileName]] |
︙ | ︙ | |||
2188 2189 2190 2191 2192 2193 2194 2195 2196 2197 2198 2199 | uplevel 1 [list loadSQLiteTestSettings $::test_channel .before] # # NOTE: Skip all System.Data.SQLite related file handling (deleting, # copying, and loading) if we are so instructed. # if {![info exists ::no(sqliteFiles)]} then { # # NOTE: Skip trying to delete any files if we are so instructed. # if {![info exists ::no(deleteSqliteFiles)]} then { tryDeleteAssembly sqlite3.dll | > > > > > | > > > > | | | | | | | | 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 2223 2224 2225 2226 | uplevel 1 [list loadSQLiteTestSettings $::test_channel .before] # # NOTE: Skip all System.Data.SQLite related file handling (deleting, # copying, and loading) if we are so instructed. # if {![info exists ::no(sqliteFiles)]} then { # # NOTE: Determine the name for the current native platform. # set platform [getBuildPlatform true] # # NOTE: Skip trying to delete any files if we are so instructed. # if {![info exists ::no(deleteSqliteFiles)]} then { tryDeleteAssembly sqlite3.dll tryDeleteAssembly SQLite.Interop.dll tryDeleteAssembly System.Data.SQLite.dll tryDeleteAssembly System.Data.SQLite.Linq.dll if {[string length $platform] > 0} then { tryDeleteAssembly sqlite3.dll $platform tryDeleteAssembly SQLite.Interop.dll $platform tryDeleteAssembly System.Data.SQLite.dll $platform } removeConstraint file_sqlite3.dll removeConstraint file_SQLite.Interop.dll removeConstraint file_System.Data.SQLite.dll removeConstraint file_System.Data.SQLite.Linq.dll } # # NOTE: Check for the "autoSelect" runtime option. If present, # attempt to automatically select the first available # build (or "release") of SQLite and System.Data.SQLite |
︙ | ︙ | |||
2253 2254 2255 2256 2257 2258 2259 2260 2261 2262 2263 2264 2265 2266 2267 2268 2269 2270 2271 | } } # # NOTE: Skip trying to copy any files if we are so instructed. # if {![info exists ::no(copySqliteFiles)]} then { tryCopyAssembly sqlite3.dll tryCopyAssembly SQLite.Interop.dll tryCopyAssembly System.Data.SQLite.dll tryCopyAssembly System.Data.SQLite.Linq.dll } # # NOTE: Skip trying to load any files if we are so instructed. # if {![info exists ::no(loadSqliteFiles)]} then { tryLoadAssembly System.Data.SQLite.dll tryLoadAssembly System.Data.SQLite.Linq.dll | > > > > > > > > | > > | > > > > > > > > > > | | < > | | > | > | < > | | > | 2264 2265 2266 2267 2268 2269 2270 2271 2272 2273 2274 2275 2276 2277 2278 2279 2280 2281 2282 2283 2284 2285 2286 2287 2288 2289 2290 2291 2292 2293 2294 2295 2296 2297 2298 2299 2300 2301 2302 2303 2304 2305 2306 2307 2308 2309 2310 2311 2312 2313 2314 2315 2316 2317 2318 2319 2320 2321 2322 2323 2324 2325 2326 2327 2328 2329 2330 2331 2332 2333 2334 2335 2336 | } } # # NOTE: Skip trying to copy any files if we are so instructed. # if {![info exists ::no(copySqliteFiles)]} then { tryCopyBuildFile System.Data.SQLite.dll.config tryCopyAssembly sqlite3.dll tryCopyAssembly SQLite.Interop.dll tryCopyAssembly System.Data.SQLite.dll tryCopyAssembly System.Data.SQLite.Linq.dll if {[string length $platform] > 0} then { tryCopyAssembly sqlite3.dll $platform tryCopyAssembly SQLite.Interop.dll $platform tryCopyAssembly System.Data.SQLite.dll $platform } } # # NOTE: Skip trying to load any files if we are so instructed. # if {![info exists ::no(loadSqliteFiles)]} then { tryLoadAssembly System.Data.SQLite.dll tryLoadAssembly System.Data.SQLite.Linq.dll if {[string length $platform] > 0} then { tryLoadAssembly System.Data.SQLite.dll $platform } } # # NOTE: Build a list of auxiliary Managed Debugging Assistants (MDA) # configuration files that may need to be deleted or copied. # set mdaConfigFileNames [list \ Installer.exe.mda.config test.exe.mda.config \ testlinq.exe.mda.config] # # NOTE: Skip trying to delete external files if we are so instructed. # if {![info exists ::no(deleteSqliteExternalFiles)]} then { foreach mdaConfigFileName $mdaConfigFileNames { tryDeleteBuildFile $mdaConfigFileName } } # # NOTE: Skip trying to copy external files if we are so instructed. # if {![info exists ::no(copySqliteExternalFiles)]} then { # # NOTE: Copy the Managed Debugging Assistants (MDA) configuration # file for the Eagle shell to the build output directory, # while using each of the names of the various legacy test # executables. This will help to make sure that all the # legacy tests run with exactly the same set of Managed # Debugging Assistants configured. # foreach mdaConfigFileName $mdaConfigFileNames { tryCopyBinaryFile \ EagleShell.exe.mda.config "" $mdaConfigFileName } } } catch { tputs $::test_channel [appendArgs \ "---- file version of \"sqlite3.dll\"... " \ [file version [getBinaryFileName sqlite3.dll]] \n] |
︙ | ︙ | |||
2315 2316 2317 2318 2319 2320 2321 2322 2323 2324 2325 2326 2327 2328 | } catch { tputs $::test_channel [appendArgs \ "---- file version of \"System.Data.SQLite.Linq.dll\"... " \ [file version [getBinaryFileName System.Data.SQLite.Linq.dll]] \n] } set assemblies [object invoke AppDomain.CurrentDomain GetAssemblies] object foreach assembly $assemblies { if {[string match \{System.Data.SQLite* $assembly]} then { tputs $::test_channel [appendArgs \ "---- found assembly: " $assembly \n] | > > > > > > > > > > > > > > > > > > > > > > > | 2349 2350 2351 2352 2353 2354 2355 2356 2357 2358 2359 2360 2361 2362 2363 2364 2365 2366 2367 2368 2369 2370 2371 2372 2373 2374 2375 2376 2377 2378 2379 2380 2381 2382 2383 2384 2385 | } catch { tputs $::test_channel [appendArgs \ "---- file version of \"System.Data.SQLite.Linq.dll\"... " \ [file version [getBinaryFileName System.Data.SQLite.Linq.dll]] \n] } if {[string length $platform] > 0} then { catch { tputs $::test_channel [appendArgs \ "---- file version of \"" $platform \ "/sqlite3.dll\"... " [file version \ [getBinaryFileName sqlite3.dll $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] } } set assemblies [object invoke AppDomain.CurrentDomain GetAssemblies] object foreach assembly $assemblies { if {[string match \{System.Data.SQLite* $assembly]} then { tputs $::test_channel [appendArgs \ "---- found assembly: " $assembly \n] |
︙ | ︙ | |||
2412 2413 2414 2415 2416 2417 2418 | foreach defineConstant [list \ CHECK_STATE COUNT_HANDLE DEBUG INTEROP_CODEC INTEROP_DEBUG \ INTEROP_EXTENSION_FUNCTIONS 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_HANDLE \ | | | | 2469 2470 2471 2472 2473 2474 2475 2476 2477 2478 2479 2480 2481 2482 2483 2484 | foreach defineConstant [list \ CHECK_STATE COUNT_HANDLE DEBUG INTEROP_CODEC INTEROP_DEBUG \ INTEROP_EXTENSION_FUNCTIONS 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_HANDLE \ TRACE_PRELOAD TRACE_SHARED TRACE_STATEMENT TRACE_WARNING \ TRACK_MEMORY_BYTES 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 } |
︙ | ︙ |