############################################################################### # # version.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 ############################################################################### # ******************** BEGIN VOLATILE VERSION INFORMATION ********************* ############################################################################### # # NOTE: For these unit tests to be useful and accurate, the following version # numbers must be manually kept synchronized with the version numbers for # the source code files, the built binaries, and the release packages. # set version(major) 1 set version(minor) 0 set version(build) 91; # NOTE: Incremented with each release. set version(revision) 0 ############################################################################### # ********************* END VOLATILE VERSION INFORMATION ********************** ############################################################################### # # NOTE: Build the full version number using the components setup above. This # should not have to be changed. # set version(full) [appendArgs $version(major) . $version(minor) . \ $version(build) . $version(revision)] ############################################################################### # # NOTE: Setup the variables that refer to the various files required by the # tests in this file. # set systemDataSQLiteDllFile [getBuildFileName System.Data.SQLite.dll] set systemDataSQLiteLinqDllFile [getBuildFileName System.Data.SQLite.Linq.dll] set systemDataSQLiteEf6DllFile [getBuildFileName System.Data.SQLite.EF6.dll] set sqliteDesignerDllFile [getBuildFileName SQLite.Designer.dll] set testExeFile [getBuildFileName test.exe] set testLinqExeFile [getBuildFileName testlinq.exe] set testEf6ExeFile [getBuildFileName testef6.exe] # # NOTE: Setup the test constraints specific to the tests in this file. # if {![haveConstraint [appendArgs file_ \ [file tail $systemDataSQLiteDllFile]]]} then { checkForFile $test_channel $systemDataSQLiteDllFile } if {![haveConstraint [appendArgs file_ \ [file tail $systemDataSQLiteLinqDllFile]]]} then { checkForFile $test_channel $systemDataSQLiteLinqDllFile } if {![haveConstraint [appendArgs file_ \ [file tail $systemDataSQLiteEf6DllFile]]]} then { checkForFile $test_channel $systemDataSQLiteEf6DllFile } if {![haveConstraint [appendArgs file_ \ [file tail $sqliteDesignerDllFile]]]} then { checkForFile $test_channel $sqliteDesignerDllFile } if {![haveConstraint [appendArgs file_ [file tail $testExeFile]]]} then { checkForFile $test_channel $testExeFile test.exe } if {![haveConstraint [appendArgs file_ [file tail $testLinqExeFile]]]} then { checkForFile $test_channel $testLinqExeFile testlinq.exe } if {![haveConstraint [appendArgs file_ [file tail $testEf6ExeFile]]]} then { checkForFile $test_channel $testEf6ExeFile testef6.exe } ############################################################################### runTest {test version-1.1 {'System.Data.SQLite' binary version} -body { file version $systemDataSQLiteDllFile } -constraints {eagle file_System.Data.SQLite.dll} -result $version(full)} ############################################################################### runTest {test version-1.2 {'System.Data.SQLite' assembly version} -body { set assemblyName [object invoke -alias System.Reflection.AssemblyName \ GetAssemblyName $systemDataSQLiteDllFile] $assemblyName Version.ToString } -cleanup { unset -nocomplain assemblyName } -constraints {eagle file_System.Data.SQLite.dll} -result $version(full)} ############################################################################### runTest {test version-1.3 {'System.Data.SQLite.Linq' binary version} -body { file version $systemDataSQLiteLinqDllFile } -constraints {eagle file_System.Data.SQLite.Linq.dll} -result $version(full)} ############################################################################### runTest {test version-1.4 {'System.Data.SQLite.Linq' assembly version} -body { set assemblyName [object invoke -alias System.Reflection.AssemblyName \ GetAssemblyName $systemDataSQLiteLinqDllFile] $assemblyName Version.ToString } -cleanup { unset -nocomplain assemblyName } -constraints {eagle file_System.Data.SQLite.Linq.dll} -result $version(full)} ############################################################################### runTest {test version-1.5 {'System.Data.SQLite.EF6' binary version} -body { file version $systemDataSQLiteEf6DllFile } -constraints {eagle file_System.Data.SQLite.EF6.dll} -result $version(full)} ############################################################################### runTest {test version-1.6 {'System.Data.SQLite.EF6' assembly version} -body { set assemblyName [object invoke -alias System.Reflection.AssemblyName \ GetAssemblyName $systemDataSQLiteEf6DllFile] $assemblyName Version.ToString } -cleanup { unset -nocomplain assemblyName } -constraints {eagle file_System.Data.SQLite.EF6.dll} -result $version(full)} ############################################################################### runTest {test version-1.7 {'SQLite.Designer' binary version} -body { file version $sqliteDesignerDllFile } -constraints {eagle file_SQLite.Designer.dll} -result $version(full)} ############################################################################### runTest {test version-1.8 {'SQLite.Designer' assembly version} -body { set assemblyName [object invoke -alias System.Reflection.AssemblyName \ GetAssemblyName $sqliteDesignerDllFile] $assemblyName Version.ToString } -cleanup { unset -nocomplain assemblyName } -constraints {eagle file_SQLite.Designer.dll} -result $version(full)} ############################################################################### runTest {test version-1.9 {'test' binary version} -body { file version $testExeFile } -constraints {eagle file_test.exe} -result $version(full)} ############################################################################### runTest {test version-1.10 {'test' assembly version} -body { set assemblyName [object invoke -alias System.Reflection.AssemblyName \ GetAssemblyName $testExeFile] $assemblyName Version.ToString } -cleanup { unset -nocomplain assemblyName } -constraints {eagle file_test.exe} -result $version(full)} ############################################################################### runTest {test version-1.11 {'testlinq' binary version} -body { file version $testLinqExeFile } -constraints {eagle file_testlinq.exe} -result $version(full)} ############################################################################### runTest {test version-1.12 {'testlinq' assembly version} -body { set assemblyName [object invoke -alias System.Reflection.AssemblyName \ GetAssemblyName $testLinqExeFile] $assemblyName Version.ToString } -cleanup { unset -nocomplain assemblyName } -constraints {eagle file_testlinq.exe} -result $version(full)} ############################################################################### runTest {test version-1.13 {'testef6' binary version} -body { file version $testEf6ExeFile } -constraints {eagle file_testef6.exe} -result $version(full)} ############################################################################### runTest {test version-1.14 {'testef6' assembly version} -body { set assemblyName [object invoke -alias System.Reflection.AssemblyName \ GetAssemblyName $testEf6ExeFile] $assemblyName Version.ToString } -cleanup { unset -nocomplain assemblyName } -constraints {eagle file_testef6.exe} -result $version(full)} ############################################################################### runTest {test version-1.15 {SQLiteVersion} -body { object invoke System.Data.SQLite.SQLiteConnection SQLiteVersion } -constraints {eagle SQLite System.Data.SQLite} -match regexp -result \ {^\d+\.\d+\.\d+(?:\.\d+)?$}} ############################################################################### runTest {test version-1.16 {SQLiteSourceId} -body { object invoke System.Data.SQLite.SQLiteConnection SQLiteSourceId } -constraints {eagle SQLite System.Data.SQLite} -match regexp -result \ {^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2} [0-9a-f]{40}$}} ############################################################################### runTest {test version-1.17 {InteropVersion} -body { object invoke System.Data.SQLite.SQLiteConnection InteropVersion } -constraints {eagle SQLiteInterop System.Data.SQLite} -result $version(full)} ############################################################################### runTest {test version-1.18 {InteropSourceId} -body { object invoke System.Data.SQLite.SQLiteConnection InteropSourceId } -constraints {eagle SQLiteInterop System.Data.SQLite} -match regexp -result \ {^[0-9a-f]{40} \d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2} UTC$}} ############################################################################### runTest {test version-1.19 {ProviderVersion} -body { object invoke System.Data.SQLite.SQLiteConnection ProviderVersion } -constraints {eagle System.Data.SQLite} -result $version(full)} ############################################################################### runTest {test version-1.20 {ProviderSourceId} -body { # # NOTE: The ProviderSourceId property value may be null, which # would result in an empty string being returned here. # object invoke System.Data.SQLite.SQLiteConnection ProviderSourceId } -constraints {eagle System.Data.SQLite} -match regexp -result \ {^(?:|[0-9a-f]{40} \d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2} UTC)$}} ############################################################################### set patterns [list \ [appendArgs Version= [string map [list . \\.] $version(full)] ,] \ [appendArgs Version= [string map [list . \\.] $version(full)] ,] \ [appendArgs "\; [format %03d $version(build)] "\;] \ [appendArgs [string map [list . \\.] $version(full)] \ ] \ [appendArgs [string map [list . \\.] $version(full)] \ ] \ [appendArgs [string map [list . \\.] $version(full)] \ ] \ [appendArgs [string map [list . \\.] $version(full)] \ ] \ [appendArgs [string map [list . \\.] $version(full)] \ ] \ [appendArgs AssemblyVersion\\(\" [string map [list . \\.] \ $version(full)] \"\\)] \ [appendArgs AssemblyFileVersion\\(\" [string map [list . \\.] \ $version(full)] \"\\)] \ [appendArgs [string map [list . \\.] \ $version(full)] ] \ [appendArgs Value=\" [format %03d $version(build)] \"] \ [appendArgs Value=\" [string map [list . \\.] $version(full)] \"] \ [appendArgs Value=\" [string map [list . ,] $version(full)] \"] \ [appendArgs Value=\" [format %03d $version(build)] \"] \ [appendArgs Value=\" [string map [list . \\.] $version(full)] \"] \ [appendArgs Value=\" [string map [list . ,] $version(full)] \"] \ [appendArgs [format %03d $version(build)] \ ] \ [appendArgs [string map [list . \\.] \ $version(full)] ] \ [appendArgs [string map [list . ,] \ $version(full)] ] \ [appendArgs [format %03d $version(build)] \ ] \ [appendArgs [string map [list . \\.] \ $version(full)] ] \ [appendArgs [string map [list . ,] \ $version(full)] ] \ [appendArgs \" [string map [list . \\.] $version(full)] \"] \ [appendArgs AssemblyVersion\\(\" [string map [list . \\.] \ $version(full)] \"\\)] \ [appendArgs AssemblyFileVersion\\(\" [string map [list . \\.] \ $version(full)] \"\\)] \ [appendArgs \" [string map [list . \\.] $version(full)] \"] \ [appendArgs \"SQLite.Interop. [format %03d $version(build)] .dll\"] \ [appendArgs AssemblyVersion\\(\" [string map [list . \\.] \ $version(full)] \"\\)] \ [appendArgs AssemblyFileVersion\\(\" [string map [list . \\.] \ $version(full)] \"\\)] \ [appendArgs AssemblyVersion\\(\" [string map [list . \\.] \ $version(full)] \"\\)] \ [appendArgs AssemblyFileVersion\\(\" [string map [list . \\.] \ $version(full)] \"\\)] \ [appendArgs Version= [string map [list . \\.] $version(full)] ,] \ [appendArgs AssemblyVersion\\(\" [string map [list . \\.] \ $version(full)] \"\\)] \ [appendArgs AssemblyFileVersion\\(\" [string map [list . \\.] \ $version(full)] \"\\)] \ [appendArgs \ "SQLiteFactory, System\\.Data\\.SQLite, " \ "Version=" [string map [list . \\.] $version(full)] ,] \ [appendArgs \ "SQLiteProviderFactory, System\\.Data\\.SQLite\\.Linq, " \ "Version=" [string map [list . \\.] $version(full)] ,] \ [appendArgs \ "SQLiteProviderFactory, System\\.Data\\.SQLite\\.EF6, " \ "Version=" [string map [list . \\.] $version(full)] ,] \ [appendArgs \ "SQLiteProviderServices, System\\.Data\\.SQLite\\.EF6, " \ "Version=" [string map [list . \\.] $version(full)] ,] \ [appendArgs \ "SQLiteFactory, System\\.Data\\.SQLite, " \ "Version=" [string map [list . \\.] $version(full)] ,] \ [appendArgs \ "SQLiteProviderFactory, System\\.Data\\.SQLite\\.Linq, " \ "Version=" [string map [list . \\.] $version(full)] ,] \ [appendArgs \ "SQLiteProviderFactory, System\\.Data\\.SQLite\\.EF6, " \ "Version=" [string map [list . \\.] $version(full)] ,] \ [appendArgs \ "SQLiteProviderServices, System\\.Data\\.SQLite\\.EF6, " \ "Version=" [string map [list . \\.] $version(full)] ,] \ [appendArgs \ "SQLiteFactory, System\\.Data\\.SQLite, " \ "Version=" [string map [list . \\.] $version(full)] ,] \ [appendArgs \ "SQLiteProviderFactory, System\\.Data\\.SQLite\\.Linq, " \ "Version=" [string map [list . \\.] $version(full)] ,] \ [appendArgs \ "SQLiteProviderFactory, System\\.Data\\.SQLite\\.EF6, " \ "Version=" [string map [list . \\.] $version(full)] ,] \ [appendArgs \ "SQLiteProviderServices, System\\.Data\\.SQLite\\.EF6, " \ "Version=" [string map [list . \\.] $version(full)] ,] \ [appendArgs \ "SQLiteFactory, System\\.Data\\.SQLite, " \ "Version=" [string map [list . \\.] $version(full)] ,] \ [appendArgs \ "SQLiteProviderFactory, System\\.Data\\.SQLite\\.Linq, " \ "Version=" [string map [list . \\.] $version(full)] ,] \ [appendArgs AssemblyVersion\\(\" [string map [list . \\.] \ $version(full)] \"\\)] \ [appendArgs AssemblyFileVersion\\(\" [string map [list . \\.] \ $version(full)] \"\\)] \ [appendArgs AssemblyVersion\\(\" [string map [list . \\.] \ $version(full)] \"\\)] \ [appendArgs AssemblyFileVersion\\(\" [string map [list . \\.] \ $version(full)] \"\\)]] set fileNames [list \ readme.htm \ [file join Doc Extra Provider dbfactorysupport.html] \ [file join Doc Extra Provider welcome.html] \ [file join NuGet SQLite.nuspec] \ [file join NuGet SQLite.Beta.nuspec] \ [file join NuGet SQLite.MSIL.nuspec] \ [file join NuGet SQLite.x64.nuspec] \ [file join NuGet SQLite.x86.nuspec] \ [file join SQLite.Designer AssemblyInfo.cs] \ [file join SQLite.Designer AssemblyInfo.cs] \ [file join SQLite.Designer source.extension.vsixmanifest] \ [file join SQLite.Interop props SQLite.Interop.2005.vsprops] \ [file join SQLite.Interop props SQLite.Interop.2005.vsprops] \ [file join SQLite.Interop props SQLite.Interop.2005.vsprops] \ [file join SQLite.Interop props SQLite.Interop.2008.vsprops] \ [file join SQLite.Interop props SQLite.Interop.2008.vsprops] \ [file join SQLite.Interop props SQLite.Interop.2008.vsprops] \ [file join SQLite.Interop props SQLite.Interop.2010.props] \ [file join SQLite.Interop props SQLite.Interop.2010.props] \ [file join SQLite.Interop props SQLite.Interop.2010.props] \ [file join SQLite.Interop props SQLite.Interop.2012.props] \ [file join SQLite.Interop props SQLite.Interop.2012.props] \ [file join SQLite.Interop props SQLite.Interop.2012.props] \ [file join SQLite.Interop src win interop.h] \ [file join System.Data.SQLite AssemblyInfo.cs] \ [file join System.Data.SQLite AssemblyInfo.cs] \ [file join System.Data.SQLite SQLite3.cs] \ [file join System.Data.SQLite UnsafeNativeMethods.cs] \ [file join System.Data.SQLite.Linq AssemblyInfo.cs] \ [file join System.Data.SQLite.Linq AssemblyInfo.cs] \ [file join test AssemblyInfo.cs] \ [file join test AssemblyInfo.cs] \ [file join test app.config] \ [file join testce AssemblyInfo.cs] \ [file join testce AssemblyInfo.cs] \ [file join testlinq 2008 LINQ App.config] \ [file join testlinq 2008 LINQ App.config] \ [file join testlinq 2010 EF6 App.config] \ [file join testlinq 2010 EF6 App.config] \ [file join testlinq 2010 LINQ App.config] \ [file join testlinq 2010 LINQ App.config] \ [file join testlinq 2012 EF6 App.config] \ [file join testlinq 2012 EF6 App.config] \ [file join testlinq 2012 LINQ App.config] \ [file join testlinq 2012 LINQ App.config] \ [file join testlinq 2013 EF6 App.config] \ [file join testlinq 2013 EF6 App.config] \ [file join testlinq 2013 LINQ App.config] \ [file join testlinq 2013 LINQ App.config] \ [file join testlinq Properties AssemblyInfo.cs] \ [file join testlinq Properties AssemblyInfo.cs] \ [file join tools install Properties AssemblyInfo.cs] \ [file join tools install Properties AssemblyInfo.cs]] for {set i 1} {$i <= [llength $fileNames]} {incr i} { set pattern [lindex $patterns [expr {$i - 1}]] set fileName [lindex $fileNames [expr {$i - 1}]] set constraint [string map [list / _ \\ _] $fileName] set fileName [file join $root_path $fileName] if {![haveConstraint [appendArgs file_ $constraint]]} then { checkForFile $test_channel $fileName $constraint } runTest {test [appendArgs version-1.21. $i] \ [appendArgs "pattern {" $pattern "} in file \"" $fileName \"] -body { regexp -- $pattern [readFile $fileName] } -constraints [list eagle [appendArgs file_ $constraint]] -result {1}} } ############################################################################### unset -nocomplain constraint fileName pattern fileNames patterns i version ############################################################################### unset -nocomplain testEf6ExeFile testLinqExeFile testExeFile \ sqliteDesignerDllFile systemDataSQLiteEf6DllFile \ systemDataSQLiteLinqDllFile systemDataSQLiteDllFile ############################################################################### runSQLiteTestEpilogue runTestEpilogue