System.Data.SQLite

Check-in [fbcfe42e02]
Login

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

Overview
Comment:Build system and test suite infrastructure enhancements.
Downloads: Tarball | ZIP archive
Timelines: family | ancestors | descendants | both | netStandard21
Files: files | file ages | folders
SHA1: fbcfe42e027459b825d12975adba3456299b2476
User & Date: mistachkin 2019-10-09 22:43:05.708
Context
2019-10-10
04:09
Add several missing test constraints. check-in: 610ef6001f user: mistachkin tags: netStandard21
2019-10-09
22:43
Build system and test suite infrastructure enhancements. check-in: fbcfe42e02 user: mistachkin tags: netStandard21
22:42
Merge upstream changes to the Eagle shell configuration file from upstream. check-in: 6aee81788f user: mistachkin tags: netStandard21
Changes
Unified Diff Ignore Whitespace Patch
Changes to Externals/Eagle/lib/Eagle1.0/vendor.eagle.
421
422
423
424
425
426
427
428

429
430
431
432
433
434
435
436
437
438
439
440
        connection_flags core_library_version database_directory \
        datetime_format define_constant_prefix execute_on_setup \
        interop_assembly_file_names native_library_file_names \
        release_version scratch_directory temporary_directory test_clr \
        test_clr_v2 test_clr_v4 test_configuration test_configurations \
        test_configuration_suffix test_configuration_suffixes \
        test_constraints test_extra test_extras test_machine test_native \
        test_native_configuration_suffix test_native_year test_net_fx \

        test_net_fx_2005 test_net_fx_2008 test_net_fx_2010 test_net_fx_2012 \
        test_net_fx_2013 test_net_fx_2015 test_net_fx_2017 test_overrides \
        test_platform test_suite test_year test_years test_year_clr_v2 \
        test_year_clr_v4 vendor_directory vendor_test_directory]}] \
        [checkForVendorQuiet checkForTestOverrides]

    #
    # 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"
    }







|
>
|
|
|
|
|







421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
        connection_flags core_library_version database_directory \
        datetime_format define_constant_prefix execute_on_setup \
        interop_assembly_file_names native_library_file_names \
        release_version scratch_directory temporary_directory test_clr \
        test_clr_v2 test_clr_v4 test_configuration test_configurations \
        test_configuration_suffix test_configuration_suffixes \
        test_constraints test_extra test_extras test_machine test_native \
        test_native_configuration_suffix test_native_extra \
        test_native_extras test_native_year test_net_fx test_net_fx_2005 \
        test_net_fx_2008 test_net_fx_2010 test_net_fx_2012 test_net_fx_2013 \
        test_net_fx_2015 test_net_fx_2017 test_overrides test_platform \
        test_suite test_year test_years test_year_clr_v2 test_year_clr_v4 \
        vendor_directory vendor_test_directory]}] [checkForVendorQuiet \
        checkForTestOverrides]

    #
    # 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"
    }
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
      #       before it has been used by the [checkForRuntimeVersion]
      #       procedure.
      #
      set ::test_script(pre) {
        proc getKnownMonoVersions { {force false} } {
          if {$force || ![info exists ::no(monoVersions)]} then {
            return [list \
                [list 2 0] [list 2 2] [list 2 4] [list 2 6] \
                [list 2 8] [list 2 10] [list 2 11] [list 3 0] \
                [list 3 1] [list 3 2] [list 3 4] [list 3 6] \
                [list 3 8] [list 3 10] [list 3 12] [list 4 0] \
                [list 4 2] [list 4 4] [list 4 6] [list 4 8] \
                [list 5 0] [list 5 2] [list 5 4] [list 5 8] \
                [list 5 10] [list 5 12] [list 5 14] [list 5 16] \
                [list 5 18] [list 5 20] [list 5 22]]
          } else {
            return [list]
          }
        }
      }
    }








|
|
<
|
|
|
|
|







528
529
530
531
532
533
534
535
536

537
538
539
540
541
542
543
544
545
546
547
548
      #       before it has been used by the [checkForRuntimeVersion]
      #       procedure.
      #
      set ::test_script(pre) {
        proc getKnownMonoVersions { {force false} } {
          if {$force || ![info exists ::no(monoVersions)]} then {
            return [list \
                [list 2 0] [list 2 2] [list 2 4] [list 2 6] [list 2 8] \
                [list 2 10] [list 2 11] [list 3 0] [list 3 1] [list 3 2] \

                [list 3 4] [list 3 6] [list 3 8] [list 3 10] [list 3 12] \
                [list 4 0] [list 4 2] [list 4 4] [list 4 6] [list 4 8] \
                [list 5 0] [list 5 2] [list 5 4] [list 5 8] [list 5 10] \
                [list 5 12] [list 5 14] [list 5 16] [list 5 18] [list 5 20] \
                [list 6 0] [list 6 4] [list 6 6]]
          } else {
            return [list]
          }
        }
      }
    }

Changes to Setup/build.bat.
577
578
579
580
581
582
583

584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601

602
603
604
605
606
607
608

609
610
611
612
613
614
615
    IF DEFINED INTEROP_EXTRA_PROPS_FILE (
      REM
      REM HACK: This is used to work around a limitation of Visual Studio 2005
      REM       and 2008 that prevents the "InheritedPropertySheets" attribute
      REM       value from working correctly when it refers to a property that
      REM       evaluates to an empty string.
      REM

      %__ECHO% Externals\Eagle\bin\netFramework40\EagleShell.exe -evaluate "set fileName {SQLite.Interop/props/include.vsprops}; set data [readFile $fileName]; regsub -- {	InheritedPropertySheets=\"\"} $data {	InheritedPropertySheets=\"$^(INTEROP_EXTRA_PROPS_FILE^)\"} data; writeFile $fileName $data"

      IF ERRORLEVEL 1 (
        ECHO Property file modification of "SQLite.Interop\props\include.vsprops" failed.
        GOTO errors
      ) ELSE (
        ECHO Property file modification successful.
      )
    )
  ) ELSE (
    ECHO WARNING: Property file modification skipped, Eagle binaries are not available.
  )
) ELSE (
  ECHO WARNING: Property file modification skipped, disabled via NOPROPS environment variable.
)

IF NOT DEFINED NOTAG (
  IF EXIST Externals\Eagle\bin\netFramework40\EagleShell.exe (

    %__ECHO% Externals\Eagle\bin\netFramework40\EagleShell.exe -file Setup\sourceTag.eagle SourceIdMode SQLite.Interop\src\generic\interop.h

    IF ERRORLEVEL 1 (
      ECHO Source tagging of "SQLite.Interop\src\generic\interop.h" failed.
      GOTO errors
    )


    %__ECHO% Externals\Eagle\bin\netFramework40\EagleShell.exe -file Setup\sourceTag.eagle SourceIdMode System.Data.SQLite\SQLitePatchLevel.cs

    IF ERRORLEVEL 1 (
      ECHO Source tagging of "System.Data.SQLite\SQLitePatchLevel.cs" failed.
      GOTO errors
    )
  ) ELSE (







>


















>







>







577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
    IF DEFINED INTEROP_EXTRA_PROPS_FILE (
      REM
      REM HACK: This is used to work around a limitation of Visual Studio 2005
      REM       and 2008 that prevents the "InheritedPropertySheets" attribute
      REM       value from working correctly when it refers to a property that
      REM       evaluates to an empty string.
      REM
      %_CECHO% Externals\Eagle\bin\netFramework40\EagleShell.exe -evaluate "set fileName {SQLite.Interop/props/include.vsprops}; set data [readFile $fileName]; regsub -- {	InheritedPropertySheets=\"\"} $data {	InheritedPropertySheets=\"$^(INTEROP_EXTRA_PROPS_FILE^)\"} data; writeFile $fileName $data"
      %__ECHO% Externals\Eagle\bin\netFramework40\EagleShell.exe -evaluate "set fileName {SQLite.Interop/props/include.vsprops}; set data [readFile $fileName]; regsub -- {	InheritedPropertySheets=\"\"} $data {	InheritedPropertySheets=\"$^(INTEROP_EXTRA_PROPS_FILE^)\"} data; writeFile $fileName $data"

      IF ERRORLEVEL 1 (
        ECHO Property file modification of "SQLite.Interop\props\include.vsprops" failed.
        GOTO errors
      ) ELSE (
        ECHO Property file modification successful.
      )
    )
  ) ELSE (
    ECHO WARNING: Property file modification skipped, Eagle binaries are not available.
  )
) ELSE (
  ECHO WARNING: Property file modification skipped, disabled via NOPROPS environment variable.
)

IF NOT DEFINED NOTAG (
  IF EXIST Externals\Eagle\bin\netFramework40\EagleShell.exe (
    %_CECHO% Externals\Eagle\bin\netFramework40\EagleShell.exe -file Setup\sourceTag.eagle SourceIdMode SQLite.Interop\src\generic\interop.h
    %__ECHO% Externals\Eagle\bin\netFramework40\EagleShell.exe -file Setup\sourceTag.eagle SourceIdMode SQLite.Interop\src\generic\interop.h

    IF ERRORLEVEL 1 (
      ECHO Source tagging of "SQLite.Interop\src\generic\interop.h" failed.
      GOTO errors
    )

    %_CECHO% Externals\Eagle\bin\netFramework40\EagleShell.exe -file Setup\sourceTag.eagle SourceIdMode System.Data.SQLite\SQLitePatchLevel.cs
    %__ECHO% Externals\Eagle\bin\netFramework40\EagleShell.exe -file Setup\sourceTag.eagle SourceIdMode System.Data.SQLite\SQLitePatchLevel.cs

    IF ERRORLEVEL 1 (
      ECHO Source tagging of "System.Data.SQLite\SQLitePatchLevel.cs" failed.
      GOTO errors
    )
  ) ELSE (
Changes to Setup/build_nuget.bat.
72
73
74
75
76
77
78

79
80
81
82
83
84
85
86
87

88
89
90
91
92
93
94
  SET MACOS_DIRECTORY=%ROOT%\bin\2016\osx-x64\ReleaseNativeOnly
)

%_VECHO% MacOsUri = '%MACOS_URI%'
%_VECHO% MacOsDirectory = '%MACOS_DIRECTORY%'

IF NOT DEFINED NO_NUGET_XPLATFORM (

  %__ECHO% "%ROOT%\Externals\Eagle\bin\netFramework40\EagleShell.exe" -evaluate "set directory {%LINUX_DIRECTORY%}; set fileName [file join $directory SQLite.Interop.dll]; file mkdir $directory; catch {file delete $fileName}; uri download -- {%LINUX_URI%} $fileName"

  IF ERRORLEVEL 1 (
    ECHO Download of System.Data.SQLite interop assembly "%LINUX_URI%" to "%LINUX_DIRECTORY%" failure.
    GOTO errors
  ) ELSE (
    %_AECHO% Download of System.Data.SQLite interop assembly "%LINUX_URI%" to "%LINUX_DIRECTORY%" success.
  )


  %__ECHO% "%ROOT%\Externals\Eagle\bin\netFramework40\EagleShell.exe" -evaluate "set directory {%MACOS_DIRECTORY%}; set fileName [file join $directory SQLite.Interop.dll]; file mkdir $directory; catch {file delete $fileName}; uri download -- {%MACOS_URI%} $fileName"

  IF ERRORLEVEL 1 (
    ECHO Download of System.Data.SQLite interop assembly "%MACOS_URI%" to "%MACOS_DIRECTORY%" failure.
    GOTO errors
  ) ELSE (
    %_AECHO% Download of System.Data.SQLite interop assembly "%MACOS_URI%" to "%MACOS_DIRECTORY%" success.







>









>







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
  SET MACOS_DIRECTORY=%ROOT%\bin\2016\osx-x64\ReleaseNativeOnly
)

%_VECHO% MacOsUri = '%MACOS_URI%'
%_VECHO% MacOsDirectory = '%MACOS_DIRECTORY%'

IF NOT DEFINED NO_NUGET_XPLATFORM (
  %_CECHO% "%ROOT%\Externals\Eagle\bin\netFramework40\EagleShell.exe" -evaluate "set directory {%LINUX_DIRECTORY%}; set fileName [file join $directory SQLite.Interop.dll]; file mkdir $directory; catch {file delete $fileName}; uri download -- {%LINUX_URI%} $fileName"
  %__ECHO% "%ROOT%\Externals\Eagle\bin\netFramework40\EagleShell.exe" -evaluate "set directory {%LINUX_DIRECTORY%}; set fileName [file join $directory SQLite.Interop.dll]; file mkdir $directory; catch {file delete $fileName}; uri download -- {%LINUX_URI%} $fileName"

  IF ERRORLEVEL 1 (
    ECHO Download of System.Data.SQLite interop assembly "%LINUX_URI%" to "%LINUX_DIRECTORY%" failure.
    GOTO errors
  ) ELSE (
    %_AECHO% Download of System.Data.SQLite interop assembly "%LINUX_URI%" to "%LINUX_DIRECTORY%" success.
  )

  %_CECHO% "%ROOT%\Externals\Eagle\bin\netFramework40\EagleShell.exe" -evaluate "set directory {%MACOS_DIRECTORY%}; set fileName [file join $directory SQLite.Interop.dll]; file mkdir $directory; catch {file delete $fileName}; uri download -- {%MACOS_URI%} $fileName"
  %__ECHO% "%ROOT%\Externals\Eagle\bin\netFramework40\EagleShell.exe" -evaluate "set directory {%MACOS_DIRECTORY%}; set fileName [file join $directory SQLite.Interop.dll]; file mkdir $directory; catch {file delete $fileName}; uri download -- {%MACOS_URI%} $fileName"

  IF ERRORLEVEL 1 (
    ECHO Download of System.Data.SQLite interop assembly "%MACOS_URI%" to "%MACOS_DIRECTORY%" failure.
    GOTO errors
  ) ELSE (
    %_AECHO% Download of System.Data.SQLite interop assembly "%MACOS_URI%" to "%MACOS_DIRECTORY%" success.
Changes to Setup/test.bat.
34
35
36
37
38
39
40





41
42
43
44
45
46
47
48
49
50
51
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

%__ECHO2% PUSHD "%ROOT%"

IF ERRORLEVEL 1 (
  ECHO Could not change directory to "%ROOT%".
  GOTO errors
)






IF NOT DEFINED PREARGS (
  %_AECHO% No pre-arguments specified, using default...
  SET PREARGS=-interactive -noExit -initialize

  IF DEFINED NOAUTOSELECT (
    %_AECHO% Skipping automatic build selection...
  ) ELSE (
    %_AECHO% Enabling automatic build selection...
    CALL :fn_AppendVariable PREARGS " -runtimeOption autoSelect"
  )
)

%_VECHO% PreArgs = '%PREARGS%'

IF NOT DEFINED TEST_FILE (
  %_AECHO% No test file specified, using default...
  SET TEST_FILE=Tests\template\empty.eagle
)

%_VECHO% TestFile = '%TEST_FILE%'

IF NOT DEFINED POSTARGS (
  %_AECHO% No post-arguments specified, using default...
  SET POSTARGS=-file "%TEST_FILE%"
)




%_VECHO% PostArgs = '%POSTARGS%'

IF NOT DEFINED 32BITONLY (
  SET EAGLESHELL=EagleShell.exe
) ELSE (
  SET EAGLESHELL=EagleShell32.exe
)

%_VECHO% EagleShell = '%EAGLESHELL%'

%_CECHO% "Externals\Eagle\bin\netFramework40\%EAGLESHELL%" %PREARGS% %* %POSTARGS%
%__ECHO% "Externals\Eagle\bin\netFramework40\%EAGLESHELL%" %PREARGS% %* %POSTARGS%

IF ERRORLEVEL 1 (
  ECHO Received non-zero return code from the Eagle Shell.
  GOTO errors
)

%__ECHO2% POPD







>
>
>
>
>













<
<
<
<
<
<
<
<
<





>
>
>










|
|







34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
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

%__ECHO2% PUSHD "%ROOT%"

IF ERRORLEVEL 1 (
  ECHO Could not change directory to "%ROOT%".
  GOTO errors
)

IF NOT DEFINED TEST_FILE (
  %_AECHO% No test file specified, using default...
  SET TEST_FILE=Tests\template\empty.eagle
)

IF NOT DEFINED PREARGS (
  %_AECHO% No pre-arguments specified, using default...
  SET PREARGS=-interactive -noExit -initialize

  IF DEFINED NOAUTOSELECT (
    %_AECHO% Skipping automatic build selection...
  ) ELSE (
    %_AECHO% Enabling automatic build selection...
    CALL :fn_AppendVariable PREARGS " -runtimeOption autoSelect"
  )
)










IF NOT DEFINED POSTARGS (
  %_AECHO% No post-arguments specified, using default...
  SET POSTARGS=-file "%TEST_FILE%"
)

%_VECHO% TestFile = '%TEST_FILE%'
%_VECHO% PreArgs = '%PREARGS%'
%_VECHO% MidArgs = '%MIDARGS%'
%_VECHO% PostArgs = '%POSTARGS%'

IF NOT DEFINED 32BITONLY (
  SET EAGLESHELL=EagleShell.exe
) ELSE (
  SET EAGLESHELL=EagleShell32.exe
)

%_VECHO% EagleShell = '%EAGLESHELL%'

%_CECHO% "Externals\Eagle\bin\netFramework40\%EAGLESHELL%" %PREARGS% %* %MIDARGS% %POSTARGS%
%__ECHO% "Externals\Eagle\bin\netFramework40\%EAGLESHELL%" %PREARGS% %* %MIDARGS% %POSTARGS%

IF ERRORLEVEL 1 (
  ECHO Received non-zero return code from the Eagle Shell.
  GOTO errors
)

%__ECHO2% POPD
Changes to Setup/test_all.bat.
98
99
100
101
102
103
104

105
106
107
108
109
110
111

IF NOT DEFINED TEST_FILE (
  SET TEST_FILE=Tests\all.eagle
)

%_VECHO% TestFile = '%TEST_FILE%'
%_VECHO% PreArgs = '%PREARGS%'

%_VECHO% PostArgs = '%POSTARGS%'

IF NOT DEFINED 32BITONLY (
  SET EAGLESHELL=EagleShell.exe
) ELSE (
  SET EAGLESHELL=EagleShell32.exe
)







>







98
99
100
101
102
103
104
105
106
107
108
109
110
111
112

IF NOT DEFINED TEST_FILE (
  SET TEST_FILE=Tests\all.eagle
)

%_VECHO% TestFile = '%TEST_FILE%'
%_VECHO% PreArgs = '%PREARGS%'
%_VECHO% MidArgs = '%MIDARGS%'
%_VECHO% PostArgs = '%POSTARGS%'

IF NOT DEFINED 32BITONLY (
  SET EAGLESHELL=EagleShell.exe
) ELSE (
  SET EAGLESHELL=EagleShell32.exe
)
139
140
141
142
143
144
145

146
147
148
149
150
151
152
153
          IF ERRORLEVEL 1 (
            ECHO Failed to delete "bin\%%Y\%%C\bin\SQLite.Interop.*".
            GOTO errors
          )
        )

        IF NOT DEFINED NOMANAGEDONLY (

          %__ECHO% "Externals\Eagle\bin\netFramework40\%EAGLESHELL%" %PREARGS% -anyInitialize "set test_year {%%Y}; set test_configuration {%%C}" -file "%TEST_FILE%" %POSTARGS%

          IF ERRORLEVEL 1 (
            ECHO Testing of "%%Y/%%C" managed-only assembly failed.
            GOTO errors
          )
        )








>
|







140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
          IF ERRORLEVEL 1 (
            ECHO Failed to delete "bin\%%Y\%%C\bin\SQLite.Interop.*".
            GOTO errors
          )
        )

        IF NOT DEFINED NOMANAGEDONLY (
          %_CECHO% "Externals\Eagle\bin\netFramework40\%EAGLESHELL%" %PREARGS% -anyInitialize "set test_year {%%Y}; set test_configuration {%%C}" %MIDARGS% -file "%TEST_FILE%" %POSTARGS%
          %__ECHO% "Externals\Eagle\bin\netFramework40\%EAGLESHELL%" %PREARGS% -anyInitialize "set test_year {%%Y}; set test_configuration {%%C}" %MIDARGS% -file "%TEST_FILE%" %POSTARGS%

          IF ERRORLEVEL 1 (
            ECHO Testing of "%%Y/%%C" managed-only assembly failed.
            GOTO errors
          )
        )

220
221
222
223
224
225
226

227
228
229
230
231
232
233
234

              IF ERRORLEVEL 1 (
                ECHO Failed to copy "bin\%%Y\%%C\bin\Installer.*" to "bin\%%Y\%PLATFORM%\%%C".
                GOTO errors
              )
            )


            %__ECHO% "Externals\Eagle\bin\netFramework40\%EAGLESHELL%" %PREARGS% -preInitialize "set test_year {%%Y}; set test_configuration {%%C}" -initialize -runtimeOption native -file "%TEST_FILE%" %POSTARGS%

            IF ERRORLEVEL 1 (
              ECHO Testing of "%%Y/%%C" mixed-mode assembly failed.
              GOTO errors
            )
          )
        ) ELSE (







>
|







222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237

              IF ERRORLEVEL 1 (
                ECHO Failed to copy "bin\%%Y\%%C\bin\Installer.*" to "bin\%%Y\%PLATFORM%\%%C".
                GOTO errors
              )
            )

            %_CECHO% "Externals\Eagle\bin\netFramework40\%EAGLESHELL%" %PREARGS% -preInitialize "set test_year {%%Y}; set test_configuration {%%C}" -initialize -runtimeOption native %MIDARGS% -file "%TEST_FILE%" %POSTARGS%
            %__ECHO% "Externals\Eagle\bin\netFramework40\%EAGLESHELL%" %PREARGS% -preInitialize "set test_year {%%Y}; set test_configuration {%%C}" -initialize -runtimeOption native %MIDARGS% -file "%TEST_FILE%" %POSTARGS%

            IF ERRORLEVEL 1 (
              ECHO Testing of "%%Y/%%C" mixed-mode assembly failed.
              GOTO errors
            )
          )
        ) ELSE (
Changes to Setup/test_ce_200x.bat.
99
100
101
102
103
104
105

106
107
108
109
110
111
112
)

%_VECHO% EagleShell = '%EAGLESHELL%'

FOR %%C IN (%TEST_CONFIGURATIONS%) DO (
  FOR %%P IN (%PLATFORMS%) DO (
    FOR %%Y IN (%YEARS%) DO (

      %__ECHO% "%EAGLESHELL%" -file "%TOOLS%\deployAndTestCe200x.eagle" %%Y %%P %%C

      IF ERRORLEVEL 1 (
        ECHO Tests failed for %%C/%%P/%%Y binaries.
        GOTO errors
      )
    )







>







99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
)

%_VECHO% EagleShell = '%EAGLESHELL%'

FOR %%C IN (%TEST_CONFIGURATIONS%) DO (
  FOR %%P IN (%PLATFORMS%) DO (
    FOR %%Y IN (%YEARS%) DO (
      %_CECHO% "%EAGLESHELL%" -file "%TOOLS%\deployAndTestCe200x.eagle" %%Y %%P %%C
      %__ECHO% "%EAGLESHELL%" -file "%TOOLS%\deployAndTestCe200x.eagle" %%Y %%P %%C

      IF ERRORLEVEL 1 (
        ECHO Tests failed for %%C/%%P/%%Y binaries.
        GOTO errors
      )
    )
Changes to Setup/test_net_standard_20.bat.
107
108
109
110
111
112
113

114
115
116
117
118
119
120

IF NOT DEFINED TEST_FILE (
  SET TEST_FILE=Tests\all.eagle
)

%_VECHO% TestFile = '%TEST_FILE%'
%_VECHO% PreArgs = '%PREARGS%'

%_VECHO% PostArgs = '%POSTARGS%'

IF NOT DEFINED EAGLESHELL (
  SET EAGLESHELL=EagleShell.dll
)

%_VECHO% EagleShell = '%EAGLESHELL%'







>







107
108
109
110
111
112
113
114
115
116
117
118
119
120
121

IF NOT DEFINED TEST_FILE (
  SET TEST_FILE=Tests\all.eagle
)

%_VECHO% TestFile = '%TEST_FILE%'
%_VECHO% PreArgs = '%PREARGS%'
%_VECHO% MidArgs = '%MIDARGS%'
%_VECHO% PostArgs = '%POSTARGS%'

IF NOT DEFINED EAGLESHELL (
  SET EAGLESHELL=EagleShell.dll
)

%_VECHO% EagleShell = '%EAGLESHELL%'
179
180
181
182
183
184
185

186
187
188
189
190
191
192
193
    CALL :fn_SetErrorLevel
    GOTO :EOF
  )
  SET CONFIGURATION=%NATIVE_CONFIGURATION%
  SET CONFIGURATION=%CONFIGURATION:NativeOnly=%
  IF EXIST "bin\%YEAR%\%CONFIGURATION%NetStandard20\bin" (
    IF EXIST "bin\%NATIVE_YEAR%\%PLATFORM%\%NATIVE_CONFIGURATION%" (

      %__ECHO% "%DOTNET%" %SUBCOMMANDS% "Externals\Eagle\bin\netStandard20\%EAGLESHELL%" %PREARGS% -anyInitialize "set test_year {%YEAR%}; set test_native_year {%NATIVE_YEAR%}; set test_configuration {%CONFIGURATION%}; set test_configuration_suffix NetStandard20" -initialize -postInitialize "unset -nocomplain no(deleteSqliteImplicitNativeFiles); unset -nocomplain no(copySqliteImplicitNativeFiles)" -file "%TEST_FILE%" %POSTARGS%
      IF ERRORLEVEL 1 (
        ECHO Testing of "%YEAR%/%NATIVE_YEAR%/%CONFIGURATION%" .NET Standard 2.0 assembly failed.
        CALL :fn_SetErrorLevel
        GOTO :EOF
      )
    ) ELSE (
      %_AECHO% Native directory "bin\%NATIVE_YEAR%\%PLATFORM%\%NATIVE_CONFIGURATION%" not found, skipped.







>
|







180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
    CALL :fn_SetErrorLevel
    GOTO :EOF
  )
  SET CONFIGURATION=%NATIVE_CONFIGURATION%
  SET CONFIGURATION=%CONFIGURATION:NativeOnly=%
  IF EXIST "bin\%YEAR%\%CONFIGURATION%NetStandard20\bin" (
    IF EXIST "bin\%NATIVE_YEAR%\%PLATFORM%\%NATIVE_CONFIGURATION%" (
      %_CECHO% "%DOTNET%" %SUBCOMMANDS% "Externals\Eagle\bin\netStandard20\%EAGLESHELL%" %PREARGS% -anyInitialize "set test_year {%YEAR%}; set test_native_year {%NATIVE_YEAR%}; set test_configuration {%CONFIGURATION%}; set test_configuration_suffix NetStandard20" -initialize -postInitialize "unset -nocomplain no(deleteSqliteImplicitNativeFiles); unset -nocomplain no(copySqliteImplicitNativeFiles)" %MIDARGS% -file "%TEST_FILE%" %POSTARGS%
      %__ECHO% "%DOTNET%" %SUBCOMMANDS% "Externals\Eagle\bin\netStandard20\%EAGLESHELL%" %PREARGS% -anyInitialize "set test_year {%YEAR%}; set test_native_year {%NATIVE_YEAR%}; set test_configuration {%CONFIGURATION%}; set test_configuration_suffix NetStandard20" -initialize -postInitialize "unset -nocomplain no(deleteSqliteImplicitNativeFiles); unset -nocomplain no(copySqliteImplicitNativeFiles)" %MIDARGS% -file "%TEST_FILE%" %POSTARGS%
      IF ERRORLEVEL 1 (
        ECHO Testing of "%YEAR%/%NATIVE_YEAR%/%CONFIGURATION%" .NET Standard 2.0 assembly failed.
        CALL :fn_SetErrorLevel
        GOTO :EOF
      )
    ) ELSE (
      %_AECHO% Native directory "bin\%NATIVE_YEAR%\%PLATFORM%\%NATIVE_CONFIGURATION%" not found, skipped.
Changes to Setup/test_net_standard_21.bat.
107
108
109
110
111
112
113

114
115
116
117
118
119
120

IF NOT DEFINED TEST_FILE (
  SET TEST_FILE=Tests\all.eagle
)

%_VECHO% TestFile = '%TEST_FILE%'
%_VECHO% PreArgs = '%PREARGS%'

%_VECHO% PostArgs = '%POSTARGS%'

IF NOT DEFINED EAGLESHELL (
  SET EAGLESHELL=EagleShell.dll
)

%_VECHO% EagleShell = '%EAGLESHELL%'







>







107
108
109
110
111
112
113
114
115
116
117
118
119
120
121

IF NOT DEFINED TEST_FILE (
  SET TEST_FILE=Tests\all.eagle
)

%_VECHO% TestFile = '%TEST_FILE%'
%_VECHO% PreArgs = '%PREARGS%'
%_VECHO% MidArgs = '%MIDARGS%'
%_VECHO% PostArgs = '%POSTARGS%'

IF NOT DEFINED EAGLESHELL (
  SET EAGLESHELL=EagleShell.dll
)

%_VECHO% EagleShell = '%EAGLESHELL%'
179
180
181
182
183
184
185

186
187
188
189
190
191
192
193
    CALL :fn_SetErrorLevel
    GOTO :EOF
  )
  SET CONFIGURATION=%NATIVE_CONFIGURATION%
  SET CONFIGURATION=%CONFIGURATION:NativeOnly=%
  IF EXIST "bin\%YEAR%\%CONFIGURATION%NetStandard21\bin" (
    IF EXIST "bin\%NATIVE_YEAR%\%PLATFORM%\%NATIVE_CONFIGURATION%" (

      %__ECHO% "%DOTNET%" %SUBCOMMANDS% "Externals\Eagle\bin\netStandard21\%EAGLESHELL%" %PREARGS% -anyInitialize "set test_year {%YEAR%}; set test_native_year {%NATIVE_YEAR%}; set test_configuration {%CONFIGURATION%}; set test_configuration_suffix NetStandard21; set test_extra netstandard2.1" -initialize -postInitialize "unset -nocomplain no(deleteSqliteImplicitNativeFiles); unset -nocomplain no(copySqliteImplicitNativeFiles)" -file "%TEST_FILE%" %POSTARGS%
      IF ERRORLEVEL 1 (
        ECHO Testing of "%YEAR%/%NATIVE_YEAR%/%CONFIGURATION%" .NET Standard 2.1 assembly failed.
        CALL :fn_SetErrorLevel
        GOTO :EOF
      )
    ) ELSE (
      %_AECHO% Native directory "bin\%NATIVE_YEAR%\%PLATFORM%\%NATIVE_CONFIGURATION%" not found, skipped.







>
|







180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
    CALL :fn_SetErrorLevel
    GOTO :EOF
  )
  SET CONFIGURATION=%NATIVE_CONFIGURATION%
  SET CONFIGURATION=%CONFIGURATION:NativeOnly=%
  IF EXIST "bin\%YEAR%\%CONFIGURATION%NetStandard21\bin" (
    IF EXIST "bin\%NATIVE_YEAR%\%PLATFORM%\%NATIVE_CONFIGURATION%" (
      %_CECHO% "%DOTNET%" %SUBCOMMANDS% "Externals\Eagle\bin\netStandard21\%EAGLESHELL%" %PREARGS% -anyInitialize "set test_year {%YEAR%}; set test_native_year {%NATIVE_YEAR%}; set test_configuration {%CONFIGURATION%}; set test_configuration_suffix NetStandard21; set test_extra netstandard2.1" -initialize -postInitialize "unset -nocomplain no(deleteSqliteImplicitNativeFiles); unset -nocomplain no(copySqliteImplicitNativeFiles)" %MIDARGS% -file "%TEST_FILE%" %POSTARGS%
      %__ECHO% "%DOTNET%" %SUBCOMMANDS% "Externals\Eagle\bin\netStandard21\%EAGLESHELL%" %PREARGS% -anyInitialize "set test_year {%YEAR%}; set test_native_year {%NATIVE_YEAR%}; set test_configuration {%CONFIGURATION%}; set test_configuration_suffix NetStandard21; set test_extra netstandard2.1" -initialize -postInitialize "unset -nocomplain no(deleteSqliteImplicitNativeFiles); unset -nocomplain no(copySqliteImplicitNativeFiles)" %MIDARGS% -file "%TEST_FILE%" %POSTARGS%
      IF ERRORLEVEL 1 (
        ECHO Testing of "%YEAR%/%NATIVE_YEAR%/%CONFIGURATION%" .NET Standard 2.1 assembly failed.
        CALL :fn_SetErrorLevel
        GOTO :EOF
      )
    ) ELSE (
      %_AECHO% Native directory "bin\%NATIVE_YEAR%\%PLATFORM%\%NATIVE_CONFIGURATION%" not found, skipped.
Changes to lib/System.Data.SQLite/common.eagle.
498
499
500
501
502
503
504










505
506
507
508
509
510
511
        return NativeOnly; # HACK: Special case, use 2015 native binaries.
      } elseif {[string length $suffix] > 0} then {
        return $suffix
      } else {
        return [getBuildNativeConfigurationSuffix]
      }
    }











    proc getBuildConfigurationSuffixes {} {
      #
      # NOTE: See if the list of test configuration suffixes has been
      #       overridden by the user (e.g. on the command line).
      #
      if {[info exists ::test_configuration_suffixes] && \







>
>
>
>
>
>
>
>
>
>







498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
        return NativeOnly; # HACK: Special case, use 2015 native binaries.
      } elseif {[string length $suffix] > 0} then {
        return $suffix
      } else {
        return [getBuildNativeConfigurationSuffix]
      }
    }

    proc getBuildNativeExtraForDotNetCore { extra } {
      if {[isDotNetCore] && [isWindows]} then {
        return ""
      } elseif {[string length $extra] > 0} then {
        return $extra
      } else {
        return [getBuildNativeExtra]
      }
    }

    proc getBuildConfigurationSuffixes {} {
      #
      # NOTE: See if the list of test configuration suffixes has been
      #       overridden by the user (e.g. on the command line).
      #
      if {[info exists ::test_configuration_suffixes] && \
570
571
572
573
574
575
576































577
578
579
580
581
582
583
        #
        # NOTE: Use default list of extra output directories, which is one
        #       empty string (no-op).
        #
        return [list ""]
      }
    }
































    proc getBuildBaseDirectory {} {
      #
      # NOTE: Figure out the base directory where all the builds should be
      #       located.  This will be the directory that contains the actual
      #       build output directory (e.g. parent of "bin").
      #







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







580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
        #
        # NOTE: Use default list of extra output directories, which is one
        #       empty string (no-op).
        #
        return [list ""]
      }
    }

    proc getBuildNativeExtra {} {
      if {[info exists ::test_native_extra] && \
          [string length $::test_native_extra] > 0} then {
        #
        # NOTE: Use the specified native extra output directory.
        #
        return $::test_native_extra
      } else {
        #
        # NOTE: No native extra output directory is required.
        #
        return ""
      }
    }

    proc getBuildNativeExtras {} {
      if {[info exists ::test_native_extras] && \
          [llength $::test_native_extras] > 0} then {
        #
        # NOTE: Use the specified list of native extra output directories.
        #
        return $::test_native_extras
      } else {
        #
        # NOTE: Use default list of native extra output directories, which
        #       is none.
        #
        return [list]
      }
    }

    proc getBuildBaseDirectory {} {
      #
      # NOTE: Figure out the base directory where all the builds should be
      #       located.  This will be the directory that contains the actual
      #       build output directory (e.g. parent of "bin").
      #
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
        }]

        return [joinBuildDirectory $native [getBuildBaseDirectory] \
            [expr {$managedOnly ? [getBuildYear] : [getBuildNativeYear]}] \
            [getBuildPlatform $native] [appendArgs [getBuildConfiguration] \
            [expr {$managedOnly ? [getBuildConfigurationSuffix] : \
            [getBuildNativeConfigurationSuffix]}]] [expr {$managedOnly ? \
            [getBuildExtra] : ""}]]
      }
    }

    proc getReleaseVersion {} {
      #
      # NOTE: Figure out the release version for use with the build directory
      #       when checking for available releases.







|







1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
        }]

        return [joinBuildDirectory $native [getBuildBaseDirectory] \
            [expr {$managedOnly ? [getBuildYear] : [getBuildNativeYear]}] \
            [getBuildPlatform $native] [appendArgs [getBuildConfiguration] \
            [expr {$managedOnly ? [getBuildConfigurationSuffix] : \
            [getBuildNativeConfigurationSuffix]}]] [expr {$managedOnly ? \
            [getBuildExtra] : [getBuildNativeExtra]}]]
      }
    }

    proc getReleaseVersion {} {
      #
      # NOTE: Figure out the release version for use with the build directory
      #       when checking for available releases.
2003
2004
2005
2006
2007
2008
2009



2010
2011
2012
2013
2014
2015
2016

                    set ::test_native_configuration_suffix \
                        [getBuildNativeConfigurationSuffixForDotNetCore \
                        $suffix]

                    set ::test_extra $extra




                    tputs $channel [appendArgs \
                        "yes, selected (" [expr {$native ? "native/" : ""}] \
                        [expr {[string length $platform] > 0 ? [appendArgs \
                        $platform /] : ""}] $year / [appendArgs \
                        $configuration $suffix] [expr {[string length \
                        $extra] > 0 ? [appendArgs / $extra] : ""}] ")\n"]








>
>
>







2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060

                    set ::test_native_configuration_suffix \
                        [getBuildNativeConfigurationSuffixForDotNetCore \
                        $suffix]

                    set ::test_extra $extra

                    set ::test_native_extra \
                        [getBuildNativeExtraForDotNetCore $extra]

                    tputs $channel [appendArgs \
                        "yes, selected (" [expr {$native ? "native/" : ""}] \
                        [expr {[string length $platform] > 0 ? [appendArgs \
                        $platform /] : ""}] $year / [appendArgs \
                        $configuration $suffix] [expr {[string length \
                        $extra] > 0 ? [appendArgs / $extra] : ""}] ")\n"]

4782
4783
4784
4785
4786
4787
4788

















4789
4790
4791
4792
4793
4794
4795
      if {[string length $extra] > 0} then {
        addConstraint [appendArgs buildExtra. $extra]
        tputs $channel [appendArgs \" $extra \"\n]
      } else {
        addConstraint buildExtra.none
        tputs $channel <none>\n
      }

















    }

    proc runSQLiteTestPrologue {} {
      #
      # NOTE: Skip running our custom prologue if the main one has been
      #       skipped.
      #







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







4826
4827
4828
4829
4830
4831
4832
4833
4834
4835
4836
4837
4838
4839
4840
4841
4842
4843
4844
4845
4846
4847
4848
4849
4850
4851
4852
4853
4854
4855
4856
      if {[string length $extra] > 0} then {
        addConstraint [appendArgs buildExtra. $extra]
        tputs $channel [appendArgs \" $extra \"\n]
      } else {
        addConstraint buildExtra.none
        tputs $channel <none>\n
      }

      #
      # NOTE: Check the current build native extra directory.  This will
      #       normally be an empty string.
      #
      tputs $channel \
          "---- checking for System.Data.SQLite build native extra... "

      set extra [getBuildNativeExtra]

      if {[string length $extra] > 0} then {
        addConstraint [appendArgs buildNativeExtra. $extra]
        tputs $channel [appendArgs \" $extra \"\n]
      } else {
        addConstraint buildNativeExtra.none
        tputs $channel <none>\n
      }
    }

    proc runSQLiteTestPrologue {} {
      #
      # NOTE: Skip running our custom prologue if the main one has been
      #       skipped.
      #
4851
4852
4853
4854
4855
4856
4857
4858
4859
4860
4861
4862
4863
4864
4865
4866
        #       these files may be native and/or managed assemblies that are
        #       required to perform various tests.
        #
        set externalFileNames [list \
            [file join EntityFramework lib [string map [list Fx ""] \
            [string map [list netFx451 netFx45 netFx452 netFx45 netFx46 \
            netFx45 netFx461 netFx45 netFx462 netFx45 netFx47 netFx45 \
            netFx471 netFx45 netFx472 netFx45 netStandard20 netFx45 \
            netStandard21 netFx45] [getBuildNetFx]]] EntityFramework.dll]]

        #
        # NOTE: Build the list of native assembly files that we handle.
        #
        set nativeFileNames [list]

        eval lappend nativeFileNames [getNativeLibraryFileNamesOnly]







|
|







4912
4913
4914
4915
4916
4917
4918
4919
4920
4921
4922
4923
4924
4925
4926
4927
        #       these files may be native and/or managed assemblies that are
        #       required to perform various tests.
        #
        set externalFileNames [list \
            [file join EntityFramework lib [string map [list Fx ""] \
            [string map [list netFx451 netFx45 netFx452 netFx45 netFx46 \
            netFx45 netFx461 netFx45 netFx462 netFx45 netFx47 netFx45 \
            netFx471 netFx45 netFx472 netFx45] [getBuildNetFx]]] \
            EntityFramework.dll]]

        #
        # NOTE: Build the list of native assembly files that we handle.
        #
        set nativeFileNames [list]

        eval lappend nativeFileNames [getNativeLibraryFileNamesOnly]