Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Overview
Comment: | When checking for builds and releases available for testing, make sure the matching interop assembly or core library exists, if necessary (i.e. the primary assembly is not mixed-mode). |
---|---|
Downloads: | Tarball | ZIP archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
5fc3695abff63ded7d59a7ce9c5b73cc |
User & Date: | mistachkin 2013-11-15 08:38:22.827 |
Context
2013-11-15
| ||
20:52 | Add link to Windows Embedded Compact information on the download page. check-in: 294c29fd21 user: mistachkin tags: trunk | |
08:38 | When checking for builds and releases available for testing, make sure the matching interop assembly or core library exists, if necessary (i.e. the primary assembly is not mixed-mode). check-in: 5fc3695abf user: mistachkin tags: trunk | |
2013-11-13
| ||
20:43 | Better handling of non-error log messages from the SQLite core library. Pursuant to [44df10ea90]. check-in: 70d2eddb52 user: mistachkin tags: trunk | |
Changes
Changes to Tests/common.eagle.
︙ | ︙ | |||
228 229 230 231 232 233 234 235 236 237 238 239 240 241 | # # NOTE: No path is available, return an empty string. This point # should not be reached. # return "" } } proc joinBuildDirectory { native path year platform configuration } { # # NOTE: Figure out and then return the fully qualified path to the build # directory based on all the arguments provided by our caller. # if {$native} then { | > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > | 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 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 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 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 | # # NOTE: No path is available, return an empty string. This point # should not be reached. # return "" } } proc isMixedModeAssembly { fileName {varName ""} } { # # NOTE: First, make sure the test suite infrastructure is allowed to # use the [exec] command. # if {![info exists ::no(exec)] && ![info exists ::no(corFlags)]} then { # # NOTE: If the location of CorFlags is present in the environment, # use it; otherwise assume it is in the PATH. # set corFlags [expr { [info exists ::env(CorFlags)] ? $::env(CorFlags) : "CorFlags" }] # # NOTE: Attempt to execute CorFlags on the specified file. # if {[catch { exec -- $corFlags [file nativename $fileName] } exec] == 0} then { # # NOTE: If requested by our caller, attempt to determine the # platform for the specified file as well. # if {[string length $varName] > 0} then { # # NOTE: Store the platform in the named variable in the # context of our caller. # upvar 1 $varName platform # # NOTE: Attempt to extract the PE line from the captured # output. If this value is "PE32" or "PE32+", the # assembly file is 32-bit or 64-bit, respectively; # otherwise, its type is unknown. # set pattern {^PE : (PE32|PE32\+)\s+$} if {[regexp -line -- $pattern $exec dummy pe32]} then { # # HACK: This [switch] assumes that 32-bit executables are # always x86 and that 64-bit executables are always # x64. # switch -exact -- $pe32 { PE32 { set platform Win32 } PE32+ { set platform x64 } default { set platform "" } } } else { set platform "" } } # # NOTE: Attempt to extract the ILONLY line from the captured # output. If this value is zero, the specified file must # be a mixed-mode assembly; otherwise, it contains only # managed components. # set pattern {^ILONLY : (0|1)\s+$} if {![regexp -line -- $pattern $exec dummy ilOnly]} then { return false } if {!$ilOnly} then { return true } } } # # NOTE: If the test suite cannot use [exec] or execution of CorFlags # failed, return false. # return false } proc isBuildAvailable { native directory {varName ""} } { # # NOTE: Build the fully qualified file name for the primary assembly # containing the System.Data.SQLite managed components. It # should be noted that this assembly file may also contain the # native components, if a native build is in use. # set fileName [file nativename [file join $directory \ System.Data.SQLite.dll]] if {![file exists $fileName]} then { return false } # # NOTE: Attempt to automatically detect if the primary assembly # contains any native components, if necessary. # if {[string length $native] == 0} then { if {[string length $varName] > 0} then { upvar 1 $varName $varName } set native [isMixedModeAssembly $fileName $varName] } # # NOTE: If the primary assembly also contains the native components, # we have everything we need. # if {$native} then { return true } # # NOTE: Build the fully qualified file name for the interop assembly # containing the System.Data.SQLite native components. If this # file exists, we should have everything we need. # set fileName [file nativename [file join $directory \ SQLite.Interop.dll]] if {[file exists $fileName]} then { return true } # # NOTE: Build the fully qualified file name for the SQLite core # library. If this file exists, we should have everything we # need. # set fileName [file nativename [file join $directory \ sqlite3.dll]] if {[file exists $fileName]} then { return true } # # NOTE: One or more native components needed by System.Data.SQLite # are missing. # return false } proc isReleaseAvailable { directory {varName ""} } { if {[string length $varName] > 0} then { upvar 1 $varName $varName } return [isBuildAvailable "" $directory $varName] } proc joinBuildDirectory { native path year platform configuration } { # # NOTE: Figure out and then return the fully qualified path to the build # directory based on all the arguments provided by our caller. # if {$native} then { |
︙ | ︙ | |||
778 779 780 781 782 783 784 | tputs $channel [appendArgs \ "---- checking for System.Data.SQLite build \"" [expr \ {$native ? "native/" : ""}] [expr {[string length \ $platform] > 0 ? [appendArgs $platform /] : ""}] $year \ / $configuration "\"... "] # | | | < < < < | | | | | | 937 938 939 940 941 942 943 944 945 946 947 948 949 950 951 952 953 954 955 956 957 958 959 960 961 | tputs $channel [appendArgs \ "---- checking for System.Data.SQLite build \"" [expr \ {$native ? "native/" : ""}] [expr {[string length \ $platform] > 0 ? [appendArgs $platform /] : ""}] $year \ / $configuration "\"... "] # # NOTE: Build the fully qualified directory where the necessary # components for System.Data.SQLite should be found. # set directory [joinBuildDirectory $native \ [getBuildBaseDirectory] $year $platform $configuration] # # NOTE: Do the necessary files exist? Currently, no other steps # are taken to verify this build is actually viable. # if {[isBuildAvailable $native $directory]} then { # # NOTE: When in "select" mode, automatically select the first # available build of System.Data.SQLite and then return # immediately. # if {$select && [matchMachine $platform]} then { # |
︙ | ︙ | |||
838 839 840 841 842 843 844 845 846 847 | # # NOTE: Check for past releases of System.Data.SQLite in the directory # contained in the "System.Data.SQLite" environment variable, if # present. # if {[info exists ::env(System.Data.SQLite)] && \ [string length $::env(System.Data.SQLite)] > 0} then { set directory [file nativename [file join \ $::env(System.Data.SQLite) [getReleaseVersion]]] | > > > > < < < | > > > > | | | | < < < | > > > > | | | | | 993 994 995 996 997 998 999 1000 1001 1002 1003 1004 1005 1006 1007 1008 1009 1010 1011 1012 1013 1014 1015 1016 1017 1018 1019 1020 1021 1022 1023 1024 1025 1026 1027 1028 1029 1030 1031 1032 1033 1034 1035 1036 1037 1038 1039 1040 1041 1042 1043 1044 1045 1046 1047 1048 1049 1050 1051 1052 1053 | # # NOTE: Check for past releases of System.Data.SQLite in the directory # contained in the "System.Data.SQLite" environment variable, if # present. # if {[info exists ::env(System.Data.SQLite)] && \ [string length $::env(System.Data.SQLite)] > 0} then { # # NOTE: Build the fully qualified directory where the necessary # components for System.Data.SQLite should be found. # set directory [file nativename [file join \ $::env(System.Data.SQLite) [getReleaseVersion]]] tputs $channel [appendArgs \ "---- checking for System.Data.SQLite release \"" \ $directory "\"... "] if {[isReleaseAvailable $directory platform]} then { if {[string length $platform] == 0} then { set platform unknown } if {$select && [matchMachine $platform]} then { set ::build_directory $directory tputs $channel [appendArgs "yes, selected (" $platform ")\n"] return true } else { tputs $channel [appendArgs "yes (" $platform ")\n"] } } else { tputs $channel no\n foreach path [lsort -decreasing [file list $directory *]] { if {[file exists $path] && [file isdirectory $path]} then { tputs $channel [appendArgs \ "---- checking for System.Data.SQLite release \"" \ $path "\"... "] if {[isReleaseAvailable $path platform]} then { if {[string length $platform] == 0} then { set platform unknown } if {$select && [matchMachine $platform]} then { set ::build_directory $path tputs $channel [appendArgs "yes, selected (" $platform ")\n"] return true } else { tputs $channel [appendArgs "yes (" $platform ")\n"] } } else { tputs $channel no\n } } } } |
︙ | ︙ |