System.Data.SQLite

Check-in [86636b58e2]
Login

Many hyperlinks are disabled.
Use anonymous login to enable hyperlinks.

Overview
Comment:Update Eagle in externals to the beta 43 release.
Downloads: Tarball | ZIP archive
Timelines: family | ancestors | descendants | both | preRelease
Files: files | file ages | folders
SHA1: 86636b58e29f85d17a2194bfacdb3b989a81b2bb
User & Date: mistachkin 2018-08-11 19:58:48.787
Context
2018-08-13
03:07
Make the 'sourceTag.eagle' tool more cross-platform. check-in: d0ff635ec0 user: mistachkin tags: preRelease
2018-08-11
19:58
Update Eagle in externals to the beta 43 release. check-in: 86636b58e2 user: mistachkin tags: preRelease
2018-08-07
00:11
Update SQLite core library docs from upstream. Update version history docs. check-in: 4642ef13b9 user: mistachkin tags: preRelease
Changes
Unified Diff Ignore Whitespace Patch
Changes to Externals/Eagle/bin/netFramework40/Eagle.dll.

cannot compute difference between binary files

Changes to Externals/Eagle/bin/netFramework40/EagleShell.exe.

cannot compute difference between binary files

Changes to Externals/Eagle/bin/netFramework40/EagleShell32.exe.

cannot compute difference between binary files

Changes to Externals/Eagle/bin/netFramework40/x64/Spilornis.dll.

cannot compute difference between binary files

Changes to Externals/Eagle/bin/netFramework40/x86/Spilornis.dll.

cannot compute difference between binary files

Changes to Externals/Eagle/bin/netStandard20/Eagle.dll.

cannot compute difference between binary files

Changes to Externals/Eagle/bin/netStandard20/EagleShell.dll.

cannot compute difference between binary files

Changes to Externals/Eagle/lib/Eagle1.0/pkgt.eagle.
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
  #       to use.  By default, the [package unknown] handler is hooked to add
  #       the remote package repository lookup functionality.  Eagle supports
  #       extra script security via signed script certificates, which will be
  #       enabled by default, unless it is unavailable.
  #
  proc loadPackageClientToolset {
          {directory auto} {apiKeys ""} {hookUnknown true} {enableSecurity true}
          {strictSecurity false} {debug false} } {
    #
    # NOTE: When running in Eagle, namespace support must be available and
    #       enabled.
    #
    if {[isEagle] && ![namespace enable]} then {
      error "namespace support must be enabled"
    }







|







195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
  #       to use.  By default, the [package unknown] handler is hooked to add
  #       the remote package repository lookup functionality.  Eagle supports
  #       extra script security via signed script certificates, which will be
  #       enabled by default, unless it is unavailable.
  #
  proc loadPackageClientToolset {
          {directory auto} {apiKeys ""} {hookUnknown true} {enableSecurity true}
          {isolateSecurity false} {strictSecurity false} {debug false} } {
    #
    # NOTE: When running in Eagle, namespace support must be available and
    #       enabled.
    #
    if {[isEagle] && ![namespace enable]} then {
      error "namespace support must be enabled"
    }
324
325
326
327
328
329
330









331






332
333
334
335
336
337
338
    #
    # NOTE: If the caller wants to enable the extra Eagle script security,
    #       attempt to do that now.  Only treat a failure here as fatal if
    #       the caller said so.
    #
    if {[isEagle] && $enableSecurity} then {
      if {[catch {









        uplevel 1 [list source enableSecurity]






      } error] && $strictSecurity} then {
        error $error
      }
    }

    #
    # NOTE: In Eagle, to actually enable make use of the [package unknown]







>
>
>
>
>
>
>
>
>
|
>
>
>
>
>
>







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
    #
    # NOTE: If the caller wants to enable the extra Eagle script security,
    #       attempt to do that now.  Only treat a failure here as fatal if
    #       the caller said so.
    #
    if {[isEagle] && $enableSecurity} then {
      if {[catch {
        try {
          if {$isolateSecurity} then {
            set savedPluginFlags [object invoke -flags +NonPublic \
                Interpreter.GetActive PluginFlags]

            object invoke -flags +NonPublic Interpreter.GetActive \
                PluginFlags [combineFlags $savedPluginFlags Isolated]
          }

          uplevel 1 [list source enableSecurity]
        } finally {
          if {$isolateSecurity && [info exists savedPluginFlags]} then {
            object invoke -flags +NonPublic Interpreter.GetActive \
                PluginFlags [appendArgs = $savedPluginFlags]
          }
        }
      } error] && $strictSecurity} then {
        error $error
      }
    }

    #
    # NOTE: In Eagle, to actually enable make use of the [package unknown]
Changes to Externals/Eagle/lib/Eagle1.0/test.eagle.
691
692
693
694
695
696
697
698
699
700
701

702
703
704
705
706
707
708
    }

    #
    # TODO: Add more support for standard "tcltest" options here.
    #
    set options [list \
        -breakOnLeak -configuration -constraints -exitOnComplete \
        -file -logFile -machine -match -namePrefix -no -notFile \
        -platform -postTest -preTest -postWait -preWait -randomOrder \
        -skip -startFile -stopFile -stopOnFailure -stopOnLeak -suffix \
        -suite -tclsh -threshold -uncountedLeaks -verbose]


    set length [llength $args]

    for {set index 0} {$index < $length} {incr index} {
      #
      # NOTE: Grab the current list element, which should be the name of
      #       the test option.







|
|
|
|
>







691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
    }

    #
    # TODO: Add more support for standard "tcltest" options here.
    #
    set options [list \
        -breakOnLeak -configuration -constraints -exitOnComplete \
        -file -logFile -logId -logPath -machine -match -namePrefix \
        -no -notFile -platform -postTest -preTest -postWait -preWait \
        -randomOrder -skip -startFile -stopFile -stopOnFailure \
        -stopOnLeak -suffix -suite -tclsh -threshold -uncountedLeaks \
        -verbose]

    set length [llength $args]

    for {set index 0} {$index < $length} {incr index} {
      #
      # NOTE: Grab the current list element, which should be the name of
      #       the test option.
1206
1207
1208
1209
1210
1211
1212

























1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241

      return [appendArgs \
          $host [format [appendArgs % [getLengthModifier $pid] X% \
          [getLengthModifier $seconds] X% [getLengthModifier $clicks] X% \
          [getLengthModifier $random] X] $pid $seconds $clicks $random]]
    }
  }


























  proc getTestLogId {} {
    return [expr {[info exists ::test_log_id] ? \
        [append result . $::test_log_id] : ""}]
  }

  proc getDefaultTestLog {} {
    set executable [info nameofexecutable]

    if {![info exists ::no(temporaryTestLog)]} then {
      set path [getTemporaryPath]
    } else {
      #
      # HACK: It seems that .NET Core considers itself to be the
      #       executable-of-record for the process; in that case,
      #       relocate the log file to be nearer the assemblies.
      #
      if {[isEagle] && [isDotNetCore]} then {
        set path [info binary]
      } else {
        set path [file dirname $executable]
      }
    }

    return [file normalize [file join $path [appendArgs \
        [file tail $executable] [getTestLogId] .test. [pid] .log]]]
  }

  proc getTestLog {} {







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>









|
<
<
<
<
<
<
<
<
|
|
|
<







1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248








1249
1250
1251

1252
1253
1254
1255
1256
1257
1258

      return [appendArgs \
          $host [format [appendArgs % [getLengthModifier $pid] X% \
          [getLengthModifier $seconds] X% [getLengthModifier $clicks] X% \
          [getLengthModifier $random] X] $pid $seconds $clicks $random]]
    }
  }

  proc getDefaultTestLogPath { executable } {
    #
    # NOTE: By default, use the configured temporary directory for
    #       test log files unless we are forbidden from doing so.
    #
    if {![info exists ::no(temporaryTestLog)]} then {
      return [getTemporaryPath]
    } else {
      #
      # HACK: It seems that .NET Core considers itself to be the
      #       executable-of-record for the process; in that case,
      #       relocate the log file to be nearer the assemblies.
      #
      if {[isEagle] && [isDotNetCore]} then {
        return [info binary]
      } else {
        return [file dirname $executable]
      }
    }
  }

  proc getTestLogPath {} {
    return [expr {[info exists ::test_log_path] ? $test_log_path : ""}]
  }

  proc getTestLogId {} {
    return [expr {[info exists ::test_log_id] ? \
        [append result . $::test_log_id] : ""}]
  }

  proc getDefaultTestLog {} {
    set executable [info nameofexecutable]

    if {[info exists ::test_log_path]} then {








      set path $::test_log_path
    } else {
      set path [getDefaultTestLogPath $executable]

    }

    return [file normalize [file join $path [appendArgs \
        [file tail $executable] [getTestLogId] .test. [pid] .log]]]
  }

  proc getTestLog {} {
4267
4268
4269
4270
4271
4272
4273
4274
4275
4276
4277
4278
4279
4280
4281

4282
4283
4284
4285
4286
4287
4288
4289
4290
4291
4292
4293
4294
4295
4296
4297
4298
4299
4300
4301
4302
4303
    #
    exportAndImportPackageCommands [namespace current] [list \
        tputs ttclLog doesTestLogHaveStartSentry tlog \
        getSoftwareRegistryKey haveConstraint addConstraint \
        haveOrAddConstraint getConstraints getCachedConstraints \
        useCachedConstraints removeConstraint fixConstraints \
        fixTimingConstraints calculateBogoCops calculateRelativePerformance \
        formatTimeStamp formatElapsedTime sourceIfValid \
        processTestArguments getTclShellFileName getTemporaryPath \
        getFiles getTestFiles getTestRunId getNewTestRunId getTestLogId \
        getDefaultTestLog getTestLog getLastTestLog getTestSuite \
        getTestMachine getTestPlatform getTestConfiguration getTestNamePrefix \
        getTestSuffix getTestUncountedLeaks getRuntimeAssemblyName \
        getTestAssemblyName canTestExec testExec testClrExec execTestShell \
        isRandomOrder isBreakOnDemand isBreakOnLeak isStopOnFailure \

        isStopOnLeak isExitOnComplete returnInfoScript runTestPrologue \
        runTestEpilogue hookPuts unhookPuts runTest testDebugBreak \
        testArrayGet testShim tsource recordTestStatistics \
        reportTestStatistics formatList formatListAsDict pathToRegexp \
        assemblyNameToRegexp inverseLsearchGlob removePathFromFileNames \
        formatDecimal clearTestPercent reportTestPercent runAllTests \
        isTestSuiteRunning getTestChannelOrDefault tryVerifyTestPath \
        checkForAndSetTestPath configureTcltest machineToPlatform \
        getPassPercentage getSkipPercentage] false false

    ###########################################################################
    ############################## END Tcl ONLY ###############################
    ###########################################################################
  }

  #
  # NOTE: Provide the Eagle "test" package to the interpreter.
  #
  package provide Eagle.Test \
    [expr {[isEagle] ? [info engine PatchLevel] : "1.0"}]
}








|
|
|
|
|
|
|
|
>
|
|
|
|
|
|
|
|
|













4284
4285
4286
4287
4288
4289
4290
4291
4292
4293
4294
4295
4296
4297
4298
4299
4300
4301
4302
4303
4304
4305
4306
4307
4308
4309
4310
4311
4312
4313
4314
4315
4316
4317
4318
4319
4320
4321
    #
    exportAndImportPackageCommands [namespace current] [list \
        tputs ttclLog doesTestLogHaveStartSentry tlog \
        getSoftwareRegistryKey haveConstraint addConstraint \
        haveOrAddConstraint getConstraints getCachedConstraints \
        useCachedConstraints removeConstraint fixConstraints \
        fixTimingConstraints calculateBogoCops calculateRelativePerformance \
        formatTimeStamp formatElapsedTime sourceIfValid processTestArguments \
        getTclShellFileName getTemporaryPath getFiles getTestFiles \
        getTestRunId getNewTestRunId getDefaultTestLogPath getTestLogPath \
        getTestLogId getDefaultTestLog getTestLog getLastTestLog \
        getTestSuite getTestMachine getTestPlatform getTestConfiguration \
        getTestNamePrefix getTestSuffix getTestUncountedLeaks \
        getRuntimeAssemblyName getTestAssemblyName canTestExec testExec \
        testClrExec execTestShell isRandomOrder isBreakOnDemand \
        isBreakOnLeak isStopOnFailure isStopOnLeak isExitOnComplete \
        returnInfoScript runTestPrologue runTestEpilogue hookPuts unhookPuts \
        runTest testDebugBreak testArrayGet testShim tsource \
        recordTestStatistics reportTestStatistics formatList \
        formatListAsDict pathToRegexp assemblyNameToRegexp \
        inverseLsearchGlob removePathFromFileNames formatDecimal \
        clearTestPercent reportTestPercent runAllTests isTestSuiteRunning \
        getTestChannelOrDefault tryVerifyTestPath checkForAndSetTestPath \
        configureTcltest machineToPlatform getPassPercentage \
        getSkipPercentage] false false

    ###########################################################################
    ############################## END Tcl ONLY ###############################
    ###########################################################################
  }

  #
  # NOTE: Provide the Eagle "test" package to the interpreter.
  #
  package provide Eagle.Test \
    [expr {[isEagle] ? [info engine PatchLevel] : "1.0"}]
}

Changes to Externals/Eagle/lib/Test1.0/constraints.eagle.
987
988
989
990
991
992
993
994
995
996
997
998
999





1000
1001
1002
1003
1004
1005
1006
        if {[isWindows]} then {
          lappend result compile.WINDOWS
          addConstraint compile.WINDOWS
        }
      }

      #
      # NOTE: This test constraint is needed by tests "socket-*.*".
      #
      if {![info exists ::no(compileNetwork)]} then {
        lappend result compile.NETWORK
        addConstraint compile.NETWORK
      }






      #
      # NOTE: Just fake the invariant culture when running in native Tcl.
      #
      if {![info exists ::no(culture)]} then {
        lappend result culture.invariant
        addConstraint culture.invariant







|





>
>
>
>
>







987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
        if {[isWindows]} then {
          lappend result compile.WINDOWS
          addConstraint compile.WINDOWS
        }
      }

      #
      # NOTE: These test constraints are needed by tests "socket-*.*".
      #
      if {![info exists ::no(compileNetwork)]} then {
        lappend result compile.NETWORK
        addConstraint compile.NETWORK
      }

      if {![info exists ::no(compileConfiguration)]} then {
        lappend result compile.CONFIGURATION
        addConstraint compile.CONFIGURATION
      }

      #
      # NOTE: Just fake the invariant culture when running in native Tcl.
      #
      if {![info exists ::no(culture)]} then {
        lappend result culture.invariant
        addConstraint culture.invariant
Changes to Externals/Eagle/lib/Test1.0/prologue.eagle.
462
463
464
465
466
467
468


469
470
471
472
473
474
475
  set test_flags(-notFile) [list l.*.eagle]; # COMPAT: Tcl.
  set test_flags(-startFile) [list]; # start running at these test files.
  set test_flags(-stopFile) [list]; # stop running after these test files.
  set test_flags(-match) [list *]; # default to running all tests.
  set test_flags(-skip) [list]; # default to skipping no tests.
  set test_flags(-constraints) [list]; # default to no manual constraints.
  set test_flags(-verbose) ""; # default to pass, body, skip, start, error.


  set test_flags(-logFile) ""; # default to using standard log file naming.
  set test_flags(-threshold) ""; # default to requiring all tests to pass.
  set test_flags(-randomOrder) ""; # default to deterministic order.
  set test_flags(-uncountedLeaks) ""; # use defaults for uncounted resources.
  set test_flags(-breakOnLeak) ""; # default to continue on leak.
  set test_flags(-stopOnFailure) ""; # default to continue on failure.
  set test_flags(-stopOnLeak) ""; # default to continue on leak.







>
>







462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
  set test_flags(-notFile) [list l.*.eagle]; # COMPAT: Tcl.
  set test_flags(-startFile) [list]; # start running at these test files.
  set test_flags(-stopFile) [list]; # stop running after these test files.
  set test_flags(-match) [list *]; # default to running all tests.
  set test_flags(-skip) [list]; # default to skipping no tests.
  set test_flags(-constraints) [list]; # default to no manual constraints.
  set test_flags(-verbose) ""; # default to pass, body, skip, start, error.
  set test_flags(-logPath) ""; # default to using standard log file path.
  set test_flags(-logId) ""; # default to using no log identifier.
  set test_flags(-logFile) ""; # default to using standard log file naming.
  set test_flags(-threshold) ""; # default to requiring all tests to pass.
  set test_flags(-randomOrder) ""; # default to deterministic order.
  set test_flags(-uncountedLeaks) ""; # use defaults for uncounted resources.
  set test_flags(-breakOnLeak) ""; # default to continue on leak.
  set test_flags(-stopOnFailure) ""; # default to continue on failure.
  set test_flags(-stopOnLeak) ""; # default to continue on leak.
497
498
499
500
501
502
503
















504
505
506
507
508
509
510
      #
      foreach {name value} $test_flags(-no) {
        set no($name) $value
      }

      unset -nocomplain name value
    }

















    if {[info exists test_flags(-logFile)] && \
        [string length $test_flags(-logFile)] > 0} then {
      #
      # NOTE: Set the log file name to the one provided by the command line.
      #
      set test_log $test_flags(-logFile)







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
      #
      foreach {name value} $test_flags(-no) {
        set no($name) $value
      }

      unset -nocomplain name value
    }

    if {[info exists test_flags(-logPath)] && \
        [string length $test_flags(-logPath)] > 0} then {
      #
      # NOTE: Set the log path to the one provided by the command line.
      #
      set test_log_path $test_flags(-logPath)
    }

    if {[info exists test_flags(-logId)] && \
        [string length $test_flags(-logId)] > 0} then {
      #
      # NOTE: Set the log identifier to the one provided by the command line.
      #
      set test_log_id $test_flags(-logId)
    }

    if {[info exists test_flags(-logFile)] && \
        [string length $test_flags(-logFile)] > 0} then {
      #
      # NOTE: Set the log file name to the one provided by the command line.
      #
      set test_log $test_flags(-logFile)
928
929
930
931
932
933
934










935
936
937
938
939
940
941
          $argv : "<none>"}] \n]

  tputs $test_channel [appendArgs "---- unrecognized arguments: " \
      [expr {[info exists test_flags(-bad)] && \
          [string length $test_flags(-bad)] > 0 ? \
              $test_flags(-bad) : "<none>"}] \n]











  tputs $test_channel [appendArgs "---- logging to: " \
      [expr {[info exists test_log] && [string length $test_log] > 0 ? \
          [appendArgs \" $test_log \"] : "<none>"}] \n]

  tputs $test_channel [appendArgs "---- pass threshold: " \
      [expr {[info exists test_threshold] && \
          [string is integer -strict $test_threshold] ? \







>
>
>
>
>
>
>
>
>
>







946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
          $argv : "<none>"}] \n]

  tputs $test_channel [appendArgs "---- unrecognized arguments: " \
      [expr {[info exists test_flags(-bad)] && \
          [string length $test_flags(-bad)] > 0 ? \
              $test_flags(-bad) : "<none>"}] \n]

  tputs $test_channel [appendArgs "---- logging path: " \
      [expr {[info exists test_log_path] && \
          [string length $test_log_path] > 0 ? \
              [appendArgs \" $test_log_path \"] : "<none>"}] \n]

  tputs $test_channel [appendArgs "---- logging identifier: " \
      [expr {[info exists test_log_id] && \
          [string length $test_log_id] > 0 ? \
              [appendArgs \" $test_log_id \"] : "<none>"}] \n]

  tputs $test_channel [appendArgs "---- logging to: " \
      [expr {[info exists test_log] && [string length $test_log] > 0 ? \
          [appendArgs \" $test_log \"] : "<none>"}] \n]

  tputs $test_channel [appendArgs "---- pass threshold: " \
      [expr {[info exists test_threshold] && \
          [string is integer -strict $test_threshold] ? \
Changes to lib/System.Data.SQLite/common.eagle.
4462
4463
4464
4465
4466
4467
4468


















4469
4470
4471
4472
4473
4474
4475
        #       unit test to the build directory in case it has been changed
        #       by a previous test run.
        #
        file copy -force $northwindEfDbFile \
          [file join [getBuildDirectory true] [file tail $northwindEfDbFile]]
      }
    }



















    proc runSQLiteTestPrologue {} {
      #
      # NOTE: Skip running our custom prologue if the main one has been
      #       skipped.
      #
      if {![info exists ::no(prologue.eagle)]} then {







>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>







4462
4463
4464
4465
4466
4467
4468
4469
4470
4471
4472
4473
4474
4475
4476
4477
4478
4479
4480
4481
4482
4483
4484
4485
4486
4487
4488
4489
4490
4491
4492
4493
        #       unit test to the build directory in case it has been changed
        #       by a previous test run.
        #
        file copy -force $northwindEfDbFile \
          [file join [getBuildDirectory true] [file tail $northwindEfDbFile]]
      }
    }

    proc moveTestLogFile { path } {
      if {[info exists ::test_log] && [file exists $::test_log]} then {
        set old_test_log $::test_log
        set new_test_log [file join $path [file tail $old_test_log]]

        file copy $old_test_log $new_test_log; file delete $old_test_log
        set ::test_log $new_test_log

        if {[info exists ::test_log_path]} then {
          set ::test_log_path $path
        }

        tputs $::test_channel [appendArgs \
            "---- moved test log from \"" $old_test_log "\" to \"" \
            $new_test_log \"\n]
      }
    }

    proc runSQLiteTestPrologue {} {
      #
      # NOTE: Skip running our custom prologue if the main one has been
      #       skipped.
      #
      if {![info exists ::no(prologue.eagle)]} then {
4770
4771
4772
4773
4774
4775
4776
4777



4778







4779
4780
4781
4782
4783
4784
4785
              # NOTE: Raising a script error from this point should halt
              #       the testing process.
              #
              error [appendArgs \
                  "could not verify managed build directory \"" \
                  $directory "\", all testing halted"]
            }
          }











          #
          # NOTE: Skip trying to copy any files if instructed.
          #
          if {![info exists ::no(copySqliteFiles)]} then {
            if {![info exists ::no(copySqliteConfigFiles)]} then {
              tputs $::test_channel \
                  "---- copying \"configuration\" files...\n"







|
>
>
>
|
>
>
>
>
>
>
>







4788
4789
4790
4791
4792
4793
4794
4795
4796
4797
4798
4799
4800
4801
4802
4803
4804
4805
4806
4807
4808
4809
4810
4811
4812
4813
              # NOTE: Raising a script error from this point should halt
              #       the testing process.
              #
              error [appendArgs \
                  "could not verify managed build directory \"" \
                  $directory "\", all testing halted"]
            }

            set logDirectory $directory
          } else {
            set logDirectory [getBuildDirectory true]
          }

          #
          # NOTE: We're going to move the test log file to the directory
          #       containing the managed assemblies being tested.
          #
          moveTestLogFile $logDirectory

          #
          # NOTE: Skip trying to copy any files if instructed.
          #
          if {![info exists ::no(copySqliteFiles)]} then {
            if {![info exists ::no(copySqliteConfigFiles)]} then {
              tputs $::test_channel \
                  "---- copying \"configuration\" files...\n"