SQLite

Check-in [5281536327]
Login

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

Overview
Comment:Refactor the TCL extension test procedure to deal with TCL8.6 and TCL9.0 separately, to simplify the procedures and reduce cognative stress on the tester.
Downloads: Tarball | ZIP archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA3-256: 5281536327d244ba9507548f7ed607e86e59b98a003e63f6da767471411c8ffc
User & Date: drh 2025-01-05 17:16:33.231
Context
2025-01-05
19:58
Further refactoring of the TCL extension test procedure document, for improved clarity and usability. (check-in: bcdaef4341 user: drh tags: trunk)
17:16
Refactor the TCL extension test procedure to deal with TCL8.6 and TCL9.0 separately, to simplify the procedures and reduce cognative stress on the tester. (check-in: 5281536327 user: drh tags: trunk)
11:40
Fix typo in the tcl-extension-testing.md document. (check-in: 28150c615c user: drh tags: trunk)
Changes
Unified Diff Ignore Whitespace Patch
Changes to doc/tcl-extension-testing.md.
30
31
32
33
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
87
88
89
90
<li>
    Let **$TCLTD** (mnemonic: "TCL Test Directory") be the name of a directory
    that does not exist at the start of the test, and which will be 
    deleted at the end of the test, that will contain the test builds
    of the TCL libraries and the SQLite TCL Extensions.
</ol>

### 2.2 Building the TCL libraries and tclsh executables

<ol type="1">
<li value="5">  `mkdir $TCLTD $TCLTD/tcl86 $TCLTD/tcl90`
<li>  `cd $TCLCO/unix`
<li>  `fossil up core-8-6-16` <br>
      &uarr; Or some other version of Tcl8.6.
<li>  `fossil clean -x`
<li>  `./configure --prefix=$TCLTD/tcl86`
<li>  `make install`


















<li>  `fossil up core-9-0-0` <br>
      &uarr; Or some other version of Tcl9
<li>  `fossil clean -x`
<li>  `./configure --prefix=$TCLTD/tcl90`
<li>  `make install`
</ol>

### 2.3 Building the SQLite TCL extension

<ol type="1">
<li value="15"> `cd $SRCCO`
<li> `fossil clean -x`
<li> `./configure --with-tclsh=$TCLTD/tcl86/bin/tclsh8.6`
<li> `make tclextension-install` <br>
     &uarr; Verify extension installed at $TCLTD/tcl86/lib/tcl8.6/sqlite3.*
<li> `make tclextension-verify`
<li> `fossil clean -x`
<li> `./configure --with-tclsh=$TCLTD/tcl90/bin/tclsh9.0`
<li> `make tclextension-install` <br>
     &uarr; Verify extension installed at $TCLTD/tcl90/lib/sqlite3.*
<li> `make tclextension-verify`
</ol>

### 2.4 Additional sanity tests

<ol type="1">
<li value="24"> 
     `$TCLTD/tcl86/bin/tclsh8.6 test/testrunner.tcl release --explain` <br>
     &uarr; Verify thousands of lines of output with no errors
<li> `$TCLTD/tcl90/bin/tclsh9.0 test/testrunner.tcl release --explain` <br>
     &uarr; Verify thousands of lines of output with no errors

</ol>

### 2.5 Cleanup

<ol type="1">
<li value="26"> `rm -rf $TCLTD`
</ol>

## 3.0 Testing On Windows

###  3.1 Setup for Windows

<ol type="1">







|


|






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





<
<
<
<
<
|

|

|
|
<
<
<
|

<
<
<
<
<
<
<
<

|
>


|


|







30
31
32
33
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
87
88
89
90
91
92
93
<li>
    Let **$TCLTD** (mnemonic: "TCL Test Directory") be the name of a directory
    that does not exist at the start of the test, and which will be 
    deleted at the end of the test, that will contain the test builds
    of the TCL libraries and the SQLite TCL Extensions.
</ol>

### 2.2 Testing TCL 8.6 on unix

<ol type="1">
<li value="5">  `mkdir $TCLTD/tcl86`
<li>  `cd $TCLCO/unix`
<li>  `fossil up core-8-6-16` <br>
      &uarr; Or some other version of Tcl8.6.
<li>  `fossil clean -x`
<li>  `./configure --prefix=$TCLTD/tcl86`
<li>  `make install`
<li> `cd $SRCCO`
<li> `fossil clean -x`
<li> `./configure --with-tclsh=$TCLTD/tcl86/bin/tclsh8.6`
<li> `make tclextension-install` <br>
     &uarr; Verify extension installed at $TCLTD/tcl86/lib/tcl8.6/sqlite3.*
<li> `makek tclextension-list` <br>
     &uarr; Verify TCL extension correctly installed.
<li> `make tclextension-verify` <br>
     &uarr; Verify that the correct version is installed.
<li> `$TCLTD/tcl86/bin/tclsh8.6 test/testrunner.tcl release --explain` <br>
     &uarr; Verify thousands of lines of output with no errors. Or
     consider running "devtest" without --explain instead of "release".
</ol>

### 2.3 Testing TCL 9.0 on unix

<ol>
<li value="18">  `mkdir $TCLTD/tcl90`
<li>  `fossil up core-9-0-0` <br>
      &uarr; Or some other version of Tcl9
<li>  `fossil clean -x`
<li>  `./configure --prefix=$TCLTD/tcl90`
<li>  `make install`





<li> `cd $SRCCO`
<li> `fossil clean -x`
<li> `./configure --with-tclsh=$TCLTD/tcl90/bin/tclsh9.0`
<li> `make tclextension-install` <br>
     &uarr; Verify extension installed at $TCLTD/tcl90/lib/sqlite3.*
<li> `makek tclextension-list` <br>



     &uarr; Verify TCL extension correctly installed.
<li> `make tclextension-verify`








<li> `$TCLTD/tcl90/bin/tclsh9.0 test/testrunner.tcl release --explain` <br>
     &uarr; Verify thousands of lines of output with no errors.  Or
     consider running "devtest" without --explain instead of "release".
</ol>

### 2.4 Cleanup

<ol type="1">
<li value="30"> `rm -rf $TCLTD`
</ol>

## 3.0 Testing On Windows

###  3.1 Setup for Windows

<ol type="1">
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
169
170
171
172
173
174
    [unxutils](https://unxutils.sourceforge.net/)
<li> [Visual Studio](https://visualstudio.microsoft.com/vs/community/)
     installed.  VS2015 or later required.
<li> `set ORIGINALPATH=%PATH%` <br>
     &uarr; remember the original %PATH% value
</ol>

### 3.2 Building the TCL libraries and tclsh.exe executables on Windows

<ol type="1">
<li value="8">  `mkdir %TCLTD% %TCLTD%\tcl86 %TCLTD%\tcl90`
<li>  `cd %TCLCO%\win`
<li>  `fossil up core-8-6-16` <br>
      &uarr; Or some other version of Tcl8.6.
<li>  `fossil clean -x`
<li>  `set INSTALLDIR=%TCLTD%\tcl86`
<li>  `nmake /f makefile.vc release` <br>
      &udarr; You *must* invoke the "release" and "install" targets
      using separate invocations of "nmake" or tclsh86t.exe won't be
      installed.
<li>  `nmake /f makefile.vc install`


















<li>  `fossil up core-9-0-0` <br>
      &uarr; Or some other version of Tcl9
<li>  `fossil clean -x`
<li>  `set INSTALLDIR=%TCLTD%\tcl90`
<li>  `nmake /f makefile.vc release` <br>
      &udarr; You *must* invoke the "release" and "install" targets
      using separate invocations of "nmake" or tclsh90.exe won't be
      installed.
<li>  `nmake /f makefile.vc install`
</ol>

### 3.3 Building the SQLite TCL extension on Windows

<ol type="1">
<li value="20"> `cd %SRCCO%`
<li> `fossil clean -x`
<li> `set TCLDIR=%TCLTD%\tcl86`
<li> `set PATH=%TCLTD%\tcl86\bin;%ORIGINALPATH%`
<li> `set TCLSH_CMD=%TCLTD%\tcl86\bin\tclsh86t.exe`
<li> `nmake /f Makefile.msc tclextension-install` <br>
     &uarr; Verify extension installed at %TCLTD%\\tcl86\\lib\\tcl8.6\\sqlite3.*
<li> `nmake /f Makefile.msc tclextension-verify`
<li> `fossil clean -x`
<li> `set TCLDIR=%TCLTD%\tcl90`
<li> `set PATH=%TCLTD%\tcl90\bin;%ORIGINALPATH%`
<li> `set TCLSH_CMD=%TCLTD%\tcl90\bin\tclsh90.exe`
<li> `nmake /f Makefile.msc tclextension-install` <br>
     &uarr; Verify extension installed at %TCLTD%\\tcl90\\lib\\sqlite3.*
<li> `nmake /f Makefile.msc tclextension-verify`
</ol>

### 3.4 Additional sanity tests for Windows

<ol type="1">
<li value="33">
   `set PATH=%TCLTD%\tcl86\bin;%ORIGINALPATH%`
<li>`tclsh86t test/testrunner.tcl release --explain` <br>
     &uarr; Verify thousands of lines of output with no errors
<li> `set PATH=%TCLTD%\tcl90\bin;%ORIGINALPATH%`
<li> `tclsh90 test/testrunner.tcl release --explain` <br>
     &uarr; Verify thousands of lines of output with no errors

</ol>

### 3.5 Cleanup

<ol type="1">
<li value="37"> `rm -rf %TCLTD%`
</ol>







|


|










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









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







<
<
<
<
<
<
<
<
<
<

|
>


|


|

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
169
170
171
172
173
174
    [unxutils](https://unxutils.sourceforge.net/)
<li> [Visual Studio](https://visualstudio.microsoft.com/vs/community/)
     installed.  VS2015 or later required.
<li> `set ORIGINALPATH=%PATH%` <br>
     &uarr; remember the original %PATH% value
</ol>

### 3.2 Testing TCL 8.6 on Windows

<ol type="1">
<li value="8">  `mkdir %TCLTD%\tcl86`
<li>  `cd %TCLCO%\win`
<li>  `fossil up core-8-6-16` <br>
      &uarr; Or some other version of Tcl8.6.
<li>  `fossil clean -x`
<li>  `set INSTALLDIR=%TCLTD%\tcl86`
<li>  `nmake /f makefile.vc release` <br>
      &udarr; You *must* invoke the "release" and "install" targets
      using separate invocations of "nmake" or tclsh86t.exe won't be
      installed.
<li>  `nmake /f makefile.vc install`
<li> `cd %SRCCO%`
<li> `fossil clean -x`
<li> `set TCLDIR=%TCLTD%\tcl86`
<li> `set PATH=%TCLTD%\tcl86\bin;%ORIGINALPATH%`
<li> `set TCLSH_CMD=%TCLTD%\tcl86\bin\tclsh86t.exe`
<li> `nmake /f Makefile.msc tclextension-install` <br>
     &uarr; Verify extension installed at %TCLTD%\\tcl86\\lib\\tcl8.6\\sqlite3.*
<li> `nmake /f Makefile.msc tclextension-verify`
<li>`tclsh86t test/testrunner.tcl release --explain` <br>
     &uarr; Verify thousands of lines of output with no errors.  Or
     consider running "devtest" without --explain instead of "release".
</ol>

### 3.3 Testing TCL 9.0 on Windows

<ol>
<li value="23">  `mkdir %TCLTD%\tcl90`
<li>  `cd %TCLCO%\win`
<li>  `fossil up core-9-0-0` <br>
      &uarr; Or some other version of Tcl9
<li>  `fossil clean -x`
<li>  `set INSTALLDIR=%TCLTD%\tcl90`
<li>  `nmake /f makefile.vc release` <br>
      &udarr; You *must* invoke the "release" and "install" targets
      using separate invocations of "nmake" or tclsh90.exe won't be
      installed.
<li>  `nmake /f makefile.vc install`





<li> `cd %SRCCO%`







<li> `fossil clean -x`
<li> `set TCLDIR=%TCLTD%\tcl90`
<li> `set PATH=%TCLTD%\tcl90\bin;%ORIGINALPATH%`
<li> `set TCLSH_CMD=%TCLTD%\tcl90\bin\tclsh90.exe`
<li> `nmake /f Makefile.msc tclextension-install` <br>
     &uarr; Verify extension installed at %TCLTD%\\tcl90\\lib\\sqlite3.*
<li> `nmake /f Makefile.msc tclextension-verify`










<li> `tclsh90 test/testrunner.tcl release --explain` <br>
     &uarr; Verify thousands of lines of output with no errors.  Or
     consider running "devtest" without --explain instead of "release".
</ol>

### 3.4 Cleanup

<ol type="1">
<li value="38"> `rm -rf %TCLTD%`
</ol>