author | Jan Vrany <jan.vrany@fit.cvut.cz> |
Mon, 11 Jun 2018 09:08:43 +0100 | |
branch | jv |
changeset 1974 | f2eaf05205d6 |
parent 1672 | bfbf726020fc |
permissions | -rwxr-xr-x |
867
4bddc8e1d9a1
Added lost Encoding pragma
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
865
diff
changeset
|
1 |
"{ Encoding: utf8 }" |
4bddc8e1d9a1
Added lost Encoding pragma
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
865
diff
changeset
|
2 |
|
1974 | 3 |
" |
4 |
COPYRIGHT (c) Claus Gittinger / eXept Software AG |
|
5 |
COPYRIGHT (c) 2016-2017 Jan Vrany |
|
6 |
All Rights Reserved |
|
7 |
||
8 |
This software is furnished under a license and may be used |
|
9 |
only in accordance with the terms of that license and with the |
|
10 |
inclusion of the above copyright notice. This software may not |
|
11 |
be provided or otherwise made available to, or used by, any |
|
12 |
other person. No title to or ownership of the software is |
|
13 |
hereby transferred. |
|
14 |
" |
|
1447 | 15 |
"{ Package: 'stx:goodies/regression' }" |
862 | 16 |
|
17 |
"{ NameSpace: RegressionTests }" |
|
18 |
||
19 |
TestCase subclass:#ProjectDefinitionTests |
|
20 |
instanceVariableNames:'' |
|
21 |
classVariableNames:'' |
|
22 |
poolDictionaries:'' |
|
876
b210d31a1c19
class: RegressionTests::ProjectDefinitionTests
Claus Gittinger <cg@exept.de>
parents:
867
diff
changeset
|
23 |
category:'tests-Regression' |
862 | 24 |
! |
25 |
||
1974 | 26 |
!ProjectDefinitionTests class methodsFor:'documentation'! |
27 |
||
28 |
copyright |
|
29 |
" |
|
30 |
COPYRIGHT (c) Claus Gittinger / eXept Software AG |
|
31 |
COPYRIGHT (c) 2016-2017 Jan Vrany |
|
32 |
All Rights Reserved |
|
33 |
||
34 |
This software is furnished under a license and may be used |
|
35 |
only in accordance with the terms of that license and with the |
|
36 |
inclusion of the above copyright notice. This software may not |
|
37 |
be provided or otherwise made available to, or used by, any |
|
38 |
other person. No title to or ownership of the software is |
|
39 |
hereby transferred. |
|
40 |
" |
|
41 |
! ! |
|
862 | 42 |
|
43 |
!ProjectDefinitionTests methodsFor:'running'! |
|
44 |
||
45 |
tearDown |
|
46 |
| classes methods | |
|
47 |
||
48 |
"Also, wipe out all mocks" |
|
49 |
classes := OrderedCollection new. |
|
50 |
methods := OrderedCollection new. |
|
51 |
Smalltalk allClassesDo:[:cls| |
|
1447 | 52 |
(cls package notNil and:[cls package startsWith:'stx:goodies/regression/testData']) ifTrue:[ |
53 |
classes add: cls |
|
54 |
] ifFalse:[ |
|
55 |
cls methodsDo:[:m|(m package notNil and:[m package startsWith:'stx:goodies/regression/testData']) ifTrue:[methods add: m]]. |
|
56 |
cls class methodsDo:[:m|(m package notNil and:[m package startsWith:'stx:goodies/regression/testData']) ifTrue:[methods add: m]]. |
|
57 |
] |
|
862 | 58 |
]. |
59 |
Class withoutUpdatingChangesDo:[ |
|
1447 | 60 |
classes do:[:cls|Smalltalk removeClass: cls]. |
61 |
methods do:[:m|m mclass removeSelector: m selector] |
|
862 | 62 |
]. |
63 |
||
64 |
"Created: / 22-03-2013 / 11:31:49 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
65 |
! ! |
|
66 |
||
1672 | 67 |
!ProjectDefinitionTests methodsFor:'tests - regression'! |
68 |
||
69 |
test_issue63_01 |
|
70 |
||
71 |
| classes1 classes2 code | |
|
72 |
||
73 |
classes1 := stx_libbasic classNamesAndAttributes. |
|
74 |
code := stx_libbasic classNamesAndAttributes_code_ignoreOldEntries: false ignoreOldDefinition: false. |
|
75 |
classes2 := Compiler evaluate: (code copyFrom: 'classNamesAndAttributes' size + 1). |
|
76 |
||
77 |
self assert: (classes1 \ classes2) isEmpty. |
|
78 |
self assert: (classes2 \ classes1) isEmpty. |
|
79 |
||
80 |
"Created: / 20-07-2017 / 17:36:21 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
81 |
"Modified: / 24-07-2017 / 21:05:05 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
82 |
! |
|
83 |
||
84 |
test_issue63_02u |
|
85 |
" |
|
86 |
Issue #63: Test if platform-specific attribute is preserved |
|
87 |
across class renames. |
|
88 |
||
89 |
See https://swing.fit.cvut.cz/projects/stx-jv/ticket/63 |
|
90 |
" |
|
91 |
||
92 |
| pkg pkgDef classes code | |
|
93 |
||
94 |
self skipIf: OperatingSystem isUNIXlike not description: 'This test in UNIX specific'. |
|
95 |
||
96 |
pkg := 'stx:goodies/regression/testData/packages/p2platform_specific_classes'. |
|
97 |
Smalltalk loadPackage: pkg. |
|
98 |
pkgDef := ProjectDefinition definitionClassForPackage: pkg. |
|
99 |
classes := pkgDef classNamesAndAttributes. |
|
100 |
self assert: (classes includes: #(UnixSpecificClass unix)). |
|
101 |
self assert: (classes includes: #(VMSSpecificClass vms)). |
|
102 |
self assert: (classes includes: #(Win32SpecificClass win32)). |
|
103 |
self assert: (Smalltalk includesKey: #UnixSpecificClass). |
|
104 |
self assert: (Smalltalk includesKey: #Win32SpecificClass) not. |
|
105 |
self assert: (Smalltalk includesKey: #VMSSpecificClass) not. |
|
106 |
||
107 |
||
108 |
Smalltalk renameClass: (Smalltalk at: #UnixSpecificClass) to: #XXXXSpecificClass. |
|
109 |
code := pkgDef classNamesAndAttributes_code_ignoreOldEntries: false ignoreOldDefinition: false. |
|
110 |
classes := Compiler evaluate: (code copyFrom: 'classNamesAndAttributes' size + 1). |
|
111 |
self assert: (classes includes: #(XXXXSpecificClass unix)). |
|
112 |
self assert: (classes includes: #(VMSSpecificClass vms)). |
|
113 |
self assert: (classes includes: #(Win32SpecificClass win32)). |
|
114 |
||
115 |
Smalltalk renameClass: (Smalltalk at: #XXXXSpecificClass) to: #YYYYSpecificClass. |
|
116 |
code := pkgDef classNamesAndAttributes_code_ignoreOldEntries: false ignoreOldDefinition: false. |
|
117 |
classes := Compiler evaluate: (code copyFrom: 'classNamesAndAttributes' size + 1). |
|
118 |
self assert: (classes includes: #(YYYYSpecificClass unix)). |
|
119 |
self assert: (classes includes: #(VMSSpecificClass vms)). |
|
120 |
self assert: (classes includes: #(Win32SpecificClass win32)). |
|
121 |
||
122 |
Smalltalk renameClass: (Smalltalk at: #YYYYSpecificClass) to: #UnixSpecificClass. |
|
123 |
code := pkgDef classNamesAndAttributes_code_ignoreOldEntries: false ignoreOldDefinition: false. |
|
124 |
classes := Compiler evaluate: (code copyFrom: 'classNamesAndAttributes' size + 1). |
|
125 |
self assert: (classes includes: #(UnixSpecificClass unix)). |
|
126 |
self assert: (classes includes: #(VMSSpecificClass vms)). |
|
127 |
self assert: (classes includes: #(Win32SpecificClass win32)). |
|
128 |
||
129 |
Smalltalk renameClass: (Smalltalk at: #UnixSpecificClass) to: #ZZZZSpecificClass. |
|
130 |
code := pkgDef classNamesAndAttributes_code_ignoreOldEntries: false ignoreOldDefinition: false. |
|
131 |
classes := Compiler evaluate: (code copyFrom: 'classNamesAndAttributes' size + 1). |
|
132 |
self assert: (classes includes: #(ZZZZSpecificClass unix)). |
|
133 |
self assert: (classes includes: #(VMSSpecificClass vms)). |
|
134 |
self assert: (classes includes: #(Win32SpecificClass win32)). |
|
135 |
||
136 |
"Created: / 26-07-2017 / 22:57:40 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
137 |
"Modified: / 27-07-2017 / 10:49:44 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
138 |
! |
|
139 |
||
140 |
test_issue63_02w |
|
141 |
" |
|
142 |
Issue #63: Test if platform-specific attribute is preserved |
|
143 |
across class renames. |
|
144 |
||
145 |
See https://swing.fit.cvut.cz/projects/stx-jv/ticket/63 |
|
146 |
" |
|
147 |
||
148 |
| pkg pkgDef classes code | |
|
149 |
||
150 |
self skipIf: OperatingSystem isMSWINDOWSlike not description: 'This test in Windows specific'. |
|
151 |
||
152 |
pkg := 'stx:goodies/regression/testData/packages/p2platform_specific_classes'. |
|
153 |
Smalltalk loadPackage: pkg. |
|
154 |
pkgDef := ProjectDefinition definitionClassForPackage: pkg. |
|
155 |
classes := pkgDef classNamesAndAttributes. |
|
156 |
self assert: (classes includes: #(UnixSpecificClass unix)). |
|
157 |
self assert: (classes includes: #(VMSSpecificClass vms)). |
|
158 |
self assert: (classes includes: #(Win32SpecificClass win32)). |
|
159 |
self assert: (Smalltalk includesKey: #UnixSpecificClass) not. |
|
160 |
self assert: (Smalltalk includesKey: #Win32SpecificClass). |
|
161 |
self assert: (Smalltalk includesKey: #VMSSpecificClass) not. |
|
162 |
||
163 |
||
164 |
Smalltalk renameClass: (Smalltalk at: #Win32SpecificClass) to: #XXXXSpecificClass. |
|
165 |
code := pkgDef classNamesAndAttributes_code_ignoreOldEntries: false ignoreOldDefinition: false. |
|
166 |
classes := Compiler evaluate: (code copyFrom: 'classNamesAndAttributes' size + 1). |
|
167 |
self assert: (classes includes: #(UnixSpecificClass unix)). |
|
168 |
self assert: (classes includes: #(VMSSpecificClass vms)). |
|
169 |
self assert: (classes includes: #(XXXXSpecificClass win32)). |
|
170 |
||
171 |
Smalltalk renameClass: (Smalltalk at: #XXXXSpecificClass) to: #YYYYSpecificClass. |
|
172 |
code := pkgDef classNamesAndAttributes_code_ignoreOldEntries: false ignoreOldDefinition: false. |
|
173 |
classes := Compiler evaluate: (code copyFrom: 'classNamesAndAttributes' size + 1). |
|
174 |
self assert: (classes includes: #(UnixSpecificClass unix)). |
|
175 |
self assert: (classes includes: #(VMSSpecificClass vms)). |
|
176 |
self assert: (classes includes: #(YYYYSpecificClass win32)). |
|
177 |
||
178 |
Smalltalk renameClass: (Smalltalk at: #YYYYSpecificClass) to: #Win32SpecificClass. |
|
179 |
code := pkgDef classNamesAndAttributes_code_ignoreOldEntries: false ignoreOldDefinition: false. |
|
180 |
classes := Compiler evaluate: (code copyFrom: 'classNamesAndAttributes' size + 1). |
|
181 |
self assert: (classes includes: #(UnixSpecificClass unix)). |
|
182 |
self assert: (classes includes: #(VMSSpecificClass vms)). |
|
183 |
self assert: (classes includes: #(Win32SpecificClass win32)). |
|
184 |
||
185 |
Smalltalk renameClass: (Smalltalk at: #Win32SpecificClass) to: #ZZZZSpecificClass. |
|
186 |
code := pkgDef classNamesAndAttributes_code_ignoreOldEntries: false ignoreOldDefinition: false. |
|
187 |
classes := Compiler evaluate: (code copyFrom: 'classNamesAndAttributes' size + 1). |
|
188 |
self assert: (classes includes: #(UnixSpecificClass unix)). |
|
189 |
self assert: (classes includes: #(VMSSpecificClass vms)). |
|
190 |
self assert: (classes includes: #(ZZZZSpecificClass win32)). |
|
191 |
||
192 |
"Created: / 27-07-2017 / 10:51:01 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
193 |
! ! |
|
194 |
||
862 | 195 |
!ProjectDefinitionTests methodsFor:'tests - utf8'! |
196 |
||
197 |
test_filein_01 |
|
198 |
" |
|
199 |
Test of filein of a class with non-ASCII/ISO8859-1 chars |
|
200 |
" |
|
201 |
| file | |
|
202 |
||
203 |
file := (Smalltalk getPackageDirectoryForPackage: self class package) / 'testData' / 'packages' / 'p1utf8' / 'ProjectDefinitionTestsP1UTF8Bar.st'. |
|
204 |
self assert: file exists. |
|
205 |
||
206 |
file fileIn. |
|
207 |
||
208 |
self assert: (Smalltalk at:#ProjectDefinitionTestsP1UTF8Bar) notNil. |
|
209 |
self assert: (Smalltalk at:#ProjectDefinitionTestsP1UTF8Bar) new zork size = 38. |
|
210 |
self assert: (Smalltalk at:#ProjectDefinitionTestsP1UTF8Bar) new zork = 'Příliš žluťoučký kůň úpěl ďábelské ódy'. |
|
211 |
||
212 |
"Created: / 22-03-2013 / 11:39:35 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
213 |
! |
|
214 |
||
865 | 215 |
test_filein_01b |
216 |
" |
|
217 |
Test of filein of a class with non-ASCII/ISO8859-1 chars |
|
218 |
" |
|
219 |
| file | |
|
220 |
||
221 |
file := (Smalltalk getPackageDirectoryForPackage: self class package) / 'testData' / 'packages' / 'p1utf8' / 'ProjectDefinitionTestsP1UTF8Bar.st'. |
|
222 |
self assert: file exists. |
|
223 |
||
224 |
file contents asString readStream fileIn. |
|
225 |
||
226 |
self assert: (Smalltalk at:#ProjectDefinitionTestsP1UTF8Bar) notNil. |
|
227 |
self assert: (Smalltalk at:#ProjectDefinitionTestsP1UTF8Bar) new zork size = 38. |
|
228 |
self assert: (Smalltalk at:#ProjectDefinitionTestsP1UTF8Bar) new zork = 'Příliš žluťoučký kůň úpěl ďábelské ódy'. |
|
229 |
||
230 |
"Created: / 25-03-2013 / 22:51:25 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
231 |
! |
|
232 |
||
862 | 233 |
test_filein_03 |
234 |
" |
|
235 |
Test of filein of a extension with non-ASCII/ISO8859-1 chars |
|
236 |
" |
|
237 |
| file | |
|
238 |
||
239 |
file := (Smalltalk getPackageDirectoryForPackage: self class package) / 'testData' / 'packages' / 'p1utf8' / 'extensions.st'. |
|
240 |
self assert: file exists. |
|
241 |
||
242 |
file fileIn. |
|
243 |
||
244 |
self assert: nil zork size = 38. |
|
245 |
self assert: nil zork = 'Příliš žluťoučký kůň úpěl ďábelské ódy'. |
|
246 |
||
247 |
"Created: / 22-03-2013 / 11:40:19 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
|
248 |
! |
|
249 |
||
250 |
test_loadPackage_utf8_01 |
|
251 |
" |
|
252 |
Test of filein of a extension with non-ASCII/ISO8859-1 chars |
|
253 |
" |
|
254 |
||
1369 | 255 |
Transcript showCR:'loading p1utf8 package...'. |
1371 | 256 |
[ |
1447 | 257 |
Smalltalk loadPackage: 'stx:goodies/regression/testData/packages/p1utf8'. |
1371 | 258 |
] ifCurtailed:[ |
1447 | 259 |
thisContext fullPrintAll |
260 |
]. |
|
1369 | 261 |
Transcript showCR:'done.'. |
862 | 262 |
|
263 |
self assert: (Smalltalk at:#ProjectDefinitionTestsP1UTF8Bar) notNil. |
|
264 |
self assert: (Smalltalk at:#ProjectDefinitionTestsP1UTF8Bar) new zork size = 38. |
|
265 |
self assert: (Smalltalk at:#ProjectDefinitionTestsP1UTF8Bar) new zork = 'Příliš žluťoučký kůň úpěl ďábelské ódy'. |
|
266 |
||
267 |
self assert: nil zork size = 38. |
|
268 |
self assert: nil zork = 'Příliš žluťoučký kůň úpěl ďábelské ódy'. |
|
269 |
||
1369 | 270 |
Transcript showCR:'test done.'. |
1447 | 271 |
Smalltalk unloadPackage: 'stx:goodies/regression/testData/packages/p1utf8'. |
1369 | 272 |
|
862 | 273 |
"Created: / 22-03-2013 / 11:44:15 / Jan Vrany <jan.vrany@fit.cvut.cz>" |
274 |
! ! |
|
275 |
||
1087
b76941bb0907
class: RegressionTests::ProjectDefinitionTests
Claus Gittinger <cg@exept.de>
parents:
876
diff
changeset
|
276 |
!ProjectDefinitionTests methodsFor:'tests-obsolete'! |
b76941bb0907
class: RegressionTests::ProjectDefinitionTests
Claus Gittinger <cg@exept.de>
parents:
876
diff
changeset
|
277 |
|
b76941bb0907
class: RegressionTests::ProjectDefinitionTests
Claus Gittinger <cg@exept.de>
parents:
876
diff
changeset
|
278 |
test1 |
b76941bb0907
class: RegressionTests::ProjectDefinitionTests
Claus Gittinger <cg@exept.de>
parents:
876
diff
changeset
|
279 |
self skipIf:true description:'obsolete and outdated'. |
b76941bb0907
class: RegressionTests::ProjectDefinitionTests
Claus Gittinger <cg@exept.de>
parents:
876
diff
changeset
|
280 |
|
b76941bb0907
class: RegressionTests::ProjectDefinitionTests
Claus Gittinger <cg@exept.de>
parents:
876
diff
changeset
|
281 |
DAPASX::DapasXProject compileClassNames. |
b76941bb0907
class: RegressionTests::ProjectDefinitionTests
Claus Gittinger <cg@exept.de>
parents:
876
diff
changeset
|
282 |
self assert:(DAPASX::DapasXProject classNames asSortedCollection = DAPASX::DapasXProject searchForClassesNamesWithProject asSortedCollection) |
b76941bb0907
class: RegressionTests::ProjectDefinitionTests
Claus Gittinger <cg@exept.de>
parents:
876
diff
changeset
|
283 |
|
b76941bb0907
class: RegressionTests::ProjectDefinitionTests
Claus Gittinger <cg@exept.de>
parents:
876
diff
changeset
|
284 |
"Modified: / 09-08-2006 / 18:22:16 / fm" |
b76941bb0907
class: RegressionTests::ProjectDefinitionTests
Claus Gittinger <cg@exept.de>
parents:
876
diff
changeset
|
285 |
! ! |
b76941bb0907
class: RegressionTests::ProjectDefinitionTests
Claus Gittinger <cg@exept.de>
parents:
876
diff
changeset
|
286 |
|
862 | 287 |
!ProjectDefinitionTests class methodsFor:'documentation'! |
288 |
||
289 |
version |
|
290 |
^ '$Header$' |
|
291 |
! |
|
292 |
||
293 |
version_CVS |
|
294 |
^ '$Header$' |
|
1672 | 295 |
! |
296 |
||
297 |
version_HG |
|
298 |
||
299 |
^ '$Changeset: <not expanded> $' |
|
862 | 300 |
! ! |
301 |