System.Data.SQLite

Check-in [09c0313477]
Login

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

Overview
Comment:Further test suite refinements.
Downloads: Tarball | ZIP archive
Timelines: family | ancestors | descendants | both | netStandard21
Files: files | file ages | folders
SHA1: 09c03134775727a01b9bf433e37d8fdb0b015862
User & Date: mistachkin 2019-10-12 20:19:16.239
Context
2019-10-12
20:31
Add new test data file missing from the previous check-in. check-in: 3179c8eae5 user: mistachkin tags: netStandard21
20:19
Further test suite refinements. check-in: 09c0313477 user: mistachkin tags: netStandard21
2019-10-10
04:09
Add several missing test constraints. check-in: 610ef6001f user: mistachkin tags: netStandard21
Changes
Unified Diff Ignore Whitespace Patch
Changes to Tests/basic.eagle.
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
      error fileName
} -constraints {eagle SQLite file_System.Data.SQLite.dll file_test.exe\
testExec winForms} -result {0 {}}}

###############################################################################

runTest {test data-1.2 {unit tests from the 'testlinq' project} -setup {











  copySampleDatabaseFiles

  #
  # NOTE: We need to make 100% sure that the console output encoding is the
  #       same as when the 'testlinq.out' file was created.
  #
  set savedEncoding [object invoke Console OutputEncoding]

  set encoding [object invoke System.Text.Encoding GetEncoding \
      [expr {[isDotNetCore] ? "iso-8859-1" : "Windows-1252"}]]

  object invoke Console OutputEncoding $encoding
} -body {
  set output ""

  set code [catch {
    testClrExec $testLinqExeFile [list -eventflags Wait -directory \
        [file dirname $testLinqExeFile] -stdout output -success Success]
  } error]

  tlog "---- BEGIN STDOUT OUTPUT\n"
  tlog $output
  tlog "\n---- END STDOUT OUTPUT\n"

  list $code [string equal $output [readFile $testLinqOutFile]] \
      [expr {$code == 0 ? "" : $error}]
} -cleanup {
  catch {object invoke Console OutputEncoding $savedEncoding}
  catch {info previouspid true}

  unset -nocomplain code output error savedEncoding encoding


} -constraints \
{eagle command.object monoToDo SQLite file_System.Data.SQLite.dll\
file_System.Data.SQLite.Linq.dll file_testlinq.exe file_northwindEF.db\
file_testlinq.out testExec} -result {0 True {}}}

###############################################################################

runTest {test data-1.3 {unit tests from the 'testef6' project} -setup {











  copySampleDatabaseFiles

  #
  # NOTE: We need to make 100% sure that the console output encoding is the
  #       same as when the 'testlinq.out' file was created.
  #
  set savedEncoding [object invoke Console OutputEncoding]

  set encoding [object invoke System.Text.Encoding GetEncoding \
      [expr {[isDotNetCore] ? "iso-8859-1" : "Windows-1252"}]]

  object invoke Console OutputEncoding $encoding
} -body {
  set output ""

  set code [catch {
    testClrExec $testEf6ExeFile [list -eventflags Wait -directory \
        [file dirname $testEf6ExeFile] -stdout output -success Success]
  } error]

  tlog "---- BEGIN STDOUT OUTPUT\n"
  tlog $output
  tlog "\n---- END STDOUT OUTPUT\n"

  list $code [string equal $output [readFile $testLinqOutFile]] \
      [expr {$code == 0 ? "" : $error}]
} -cleanup {
  catch {object invoke Console OutputEncoding $savedEncoding}
  catch {info previouspid true}

  unset -nocomplain code output error savedEncoding encoding


} -constraints \
{eagle command.object monoToDo SQLite file_EntityFramework.dll\
file_System.Data.SQLite.dll file_System.Data.SQLite.EF6.dll file_testef6.exe\
file_northwindEF.db file_testlinq.out testExec} -result {0 True {}}}

###############################################################################








>
>
>
>
>
>
>
>
>
>
>









|














|
|





>
>








>
>
>
>
>
>
>
>
>
>
>









|














|
|





>
>







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
      error fileName
} -constraints {eagle SQLite file_System.Data.SQLite.dll file_test.exe\
testExec winForms} -result {0 {}}}

###############################################################################

runTest {test data-1.2 {unit tests from the 'testlinq' project} -setup {
  proc getTestLinqOutFileName { encodingName } {
    global testLinqExeFile
    global testLinqOutUtf8File

    if {[regexp -nocase -- {^utf(?:-)?8$} $encodingName]} then {
      return $testLinqOutUtf8File
    } else {
      return $testLinqExeFile
    }
  }

  copySampleDatabaseFiles

  #
  # NOTE: We need to make 100% sure that the console output encoding is the
  #       same as when the 'testlinq.out' file was created.
  #
  set savedEncoding [object invoke Console OutputEncoding]

  set encoding [object invoke System.Text.Encoding GetEncoding \
      [getOutputEncodingName]]

  object invoke Console OutputEncoding $encoding
} -body {
  set output ""

  set code [catch {
    testClrExec $testLinqExeFile [list -eventflags Wait -directory \
        [file dirname $testLinqExeFile] -stdout output -success Success]
  } error]

  tlog "---- BEGIN STDOUT OUTPUT\n"
  tlog $output
  tlog "\n---- END STDOUT OUTPUT\n"

  list $code [string equal $output [readFile [getTestLinqOutFileName \
      [getOutputEncodingName]]]] [expr {$code == 0 ? "" : $error}]
} -cleanup {
  catch {object invoke Console OutputEncoding $savedEncoding}
  catch {info previouspid true}

  unset -nocomplain code output error savedEncoding encoding

  rename getTestLinqOutFileName ""
} -constraints \
{eagle command.object monoToDo SQLite file_System.Data.SQLite.dll\
file_System.Data.SQLite.Linq.dll file_testlinq.exe file_northwindEF.db\
file_testlinq.out testExec} -result {0 True {}}}

###############################################################################

runTest {test data-1.3 {unit tests from the 'testef6' project} -setup {
  proc getTestLinqOutFileName { encodingName } {
    global testLinqExeFile
    global testLinqOutUtf8File

    if {[regexp -nocase -- {^utf(?:-)?8$} $encodingName]} then {
      return $testLinqOutUtf8File
    } else {
      return $testLinqExeFile
    }
  }

  copySampleDatabaseFiles

  #
  # NOTE: We need to make 100% sure that the console output encoding is the
  #       same as when the 'testlinq.out' file was created.
  #
  set savedEncoding [object invoke Console OutputEncoding]

  set encoding [object invoke System.Text.Encoding GetEncoding \
      [getOutputEncodingName]]

  object invoke Console OutputEncoding $encoding
} -body {
  set output ""

  set code [catch {
    testClrExec $testEf6ExeFile [list -eventflags Wait -directory \
        [file dirname $testEf6ExeFile] -stdout output -success Success]
  } error]

  tlog "---- BEGIN STDOUT OUTPUT\n"
  tlog $output
  tlog "\n---- END STDOUT OUTPUT\n"

  list $code [string equal $output [readFile [getTestLinqOutFileName \
      [getOutputEncodingName]]]] [expr {$code == 0 ? "" : $error}]
} -cleanup {
  catch {object invoke Console OutputEncoding $savedEncoding}
  catch {info previouspid true}

  unset -nocomplain code output error savedEncoding encoding

  rename getTestLinqOutFileName ""
} -constraints \
{eagle command.object monoToDo SQLite file_EntityFramework.dll\
file_System.Data.SQLite.dll file_System.Data.SQLite.EF6.dll file_testef6.exe\
file_northwindEF.db file_testlinq.out testExec} -result {0 True {}}}

###############################################################################

Changes to lib/System.Data.SQLite/common.eagle.
2702
2703
2704
2705
2706
2707
2708






















2709
2710
2711
2712
2713
2714
2715
        PRAGMA cache_size = 2000;
      }

      return [list \
          [sql execute -execute scalar $db "PRAGMA page_size;"] \
          [sql execute -execute scalar $db "PRAGMA cache_size;"]]
    }























    proc normalizeExceptionMessage { value } {
      if {[string length $value] == 0} then {return $value}
      return [string map [list \r\n " ==> " \n " ==> "] $value]
    }

    proc extractSystemDataSQLiteExceptionMessage { value } {







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







2702
2703
2704
2705
2706
2707
2708
2709
2710
2711
2712
2713
2714
2715
2716
2717
2718
2719
2720
2721
2722
2723
2724
2725
2726
2727
2728
2729
2730
2731
2732
2733
2734
2735
2736
2737
        PRAGMA cache_size = 2000;
      }

      return [list \
          [sql execute -execute scalar $db "PRAGMA page_size;"] \
          [sql execute -execute scalar $db "PRAGMA cache_size;"]]
    }

    proc getOutputEncodingName {} {
      #
      # HACK: Account for differences between Console output encodings on
      #       the .NET Framework versus .NET Core, on Windows and POSIX.
      #       Mono is not supported by this procedure as it is only used
      #       by tests that do not run on Mono.
      #
      if {[isDotNetCore]} then {
        if {[isWindows]} then {
          #
          # TODO: The reported output encoding for the Console on Windows
          #       is actually "Codepage - 437".  Why?
          #
          return iso-8859-1
        } else {
          return utf-8
        }
      } else {
        return Windows-1252
      }
    }

    proc normalizeExceptionMessage { value } {
      if {[string length $value] == 0} then {return $value}
      return [string map [list \r\n " ==> " \n " ==> "] $value]
    }

    proc extractSystemDataSQLiteExceptionMessage { value } {
4905
4906
4907
4908
4909
4910
4911
4912
4913
4914

4915
4916





4917
4918
4919
4920

4921
4922
4923
4924
4925
4926
4927
        set mdaConfigFileNames [list \
            EagleShell32.exe.mda.config Installer.exe.mda.config \
            test.exe.mda.config testlinq.exe.mda.config \
            testef6.exe.mda.config]

        #
        # NOTE: Build the list of external files that we handle.  Some of
        #       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]







|
|

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







4927
4928
4929
4930
4931
4932
4933
4934
4935
4936
4937
4938
4939
4940
4941
4942
4943
4944
4945
4946
4947
4948
4949
4950
4951
4952
4953
4954
4955
4956
        set mdaConfigFileNames [list \
            EagleShell32.exe.mda.config Installer.exe.mda.config \
            test.exe.mda.config testlinq.exe.mda.config \
            testef6.exe.mda.config]

        #
        # NOTE: Build the list of external files that we handle.  Some of
        #       these files may be native and/or managed assemblies that
        #       are required to perform various tests.
        #
        if {[isDotNetCore]} then {
          set externalFileNames [list \
              [file join EntityFramework lib [string map [list \
              netStandard21 netstandard2.1] [getBuildNetFx]] \
              EntityFramework.dll]]
        } else {
          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]
5799
5800
5801
5802
5803
5804
5805



5806
5807
5808
5809
5810
5811
5812

          #
          # NOTE: Setup the variables that refer to the various data files
          #       required by the tests in this file.
          #
          set testLinqOutFile [file nativename [file join \
              [getSQLiteTestDataPath] testlinq.out]]




          set northwindEfDbFile [file nativename [file join \
              [file dirname [file dirname [getSQLiteTestDataPath]]] \
              testlinq northwindEF.db]]

          set nonWalDbFile [file nativename [file join \
              [getSQLiteTestDataPath] nonWal.db]]







>
>
>







5828
5829
5830
5831
5832
5833
5834
5835
5836
5837
5838
5839
5840
5841
5842
5843
5844

          #
          # NOTE: Setup the variables that refer to the various data files
          #       required by the tests in this file.
          #
          set testLinqOutFile [file nativename [file join \
              [getSQLiteTestDataPath] testlinq.out]]

          set testLinqOutUtf8File [file nativename [file join \
              [getSQLiteTestDataPath] testlinq-utf8.out]]

          set northwindEfDbFile [file nativename [file join \
              [file dirname [file dirname [getSQLiteTestDataPath]]] \
              testlinq northwindEF.db]]

          set nonWalDbFile [file nativename [file join \
              [getSQLiteTestDataPath] nonWal.db]]
5914
5915
5916
5917
5918
5919
5920





5921
5922
5923
5924
5925
5926
5927
              checkForFile $test_channel $testEf6ExeFile testef6.exe
            }

            if {![haveConstraint [appendArgs file_ \
                [file tail $testLinqOutFile]]]} then {
              checkForFile $test_channel $testLinqOutFile
            }






            if {![haveConstraint [appendArgs file_ \
                [file tail $northwindEfDbFile]]]} then {
              checkForFile $test_channel $northwindEfDbFile
            }

            if {![haveConstraint [appendArgs file_ \







>
>
>
>
>







5946
5947
5948
5949
5950
5951
5952
5953
5954
5955
5956
5957
5958
5959
5960
5961
5962
5963
5964
              checkForFile $test_channel $testEf6ExeFile testef6.exe
            }

            if {![haveConstraint [appendArgs file_ \
                [file tail $testLinqOutFile]]]} then {
              checkForFile $test_channel $testLinqOutFile
            }

            if {![haveConstraint [appendArgs file_ \
                [file tail $testLinqOutUtf8File]]]} then {
              checkForFile $test_channel $testLinqOutUtf8File
            }

            if {![haveConstraint [appendArgs file_ \
                [file tail $northwindEfDbFile]]]} then {
              checkForFile $test_channel $northwindEfDbFile
            }

            if {![haveConstraint [appendArgs file_ \
6021
6022
6023
6024
6025
6026
6027
6028
6029
6030
6031
6032
6033
6034
6035
              testUninstallVs2010LogFile testUninstallVs2008LogFile \
              testUninstallVs2005LogFile testInstallVs2017LogFile \
              testInstallVs2015LogFile testInstallVs2013LogFile \
              testInstallVs2012LogFile testInstallVs2010LogFile \
              testInstallVs2008LogFile testInstallVs2005LogFile

          unset -nocomplain \
              northwindEfDbFile testLinqOutFile \
              walDbFile nonWalDbFile

          unset -nocomplain \
              testEf6ExeFile testLinqExeFile \
              testExeFile systemDataSQLiteEf6DllFile \
              systemDataSQLiteLinqDllFile systemDataSQLiteDllFile \
              sqliteDesignerDllFile installerExeFile \







|







6058
6059
6060
6061
6062
6063
6064
6065
6066
6067
6068
6069
6070
6071
6072
              testUninstallVs2010LogFile testUninstallVs2008LogFile \
              testUninstallVs2005LogFile testInstallVs2017LogFile \
              testInstallVs2015LogFile testInstallVs2013LogFile \
              testInstallVs2012LogFile testInstallVs2010LogFile \
              testInstallVs2008LogFile testInstallVs2005LogFile

          unset -nocomplain \
              northwindEfDbFile testLinqOutUtf8File testLinqOutFile \
              walDbFile nonWalDbFile

          unset -nocomplain \
              testEf6ExeFile testLinqExeFile \
              testExeFile systemDataSQLiteEf6DllFile \
              systemDataSQLiteLinqDllFile systemDataSQLiteDllFile \
              sqliteDesignerDllFile installerExeFile \