root / tmp / org.txm.setups / nsis / Examples / StrFunc.nsi @ 3097
Historique | Voir | Annoter | Télécharger (21,1 ko)
1 |
Name "NSIS StrFunc Example" |
---|---|
2 |
OutFile "StrFunc.exe" |
3 |
ShowInstDetails show |
4 |
ShowUninstDetails show |
5 |
XPStyle on |
6 |
RequestExecutionLevel user |
7 |
|
8 |
!include "StrFunc.nsh" |
9 |
|
10 |
# Declare used functions |
11 |
${StrCase} |
12 |
${StrClb} |
13 |
${StrIOToNSIS} |
14 |
${StrLoc} |
15 |
${StrNSISToIO} |
16 |
${StrRep} |
17 |
${StrStr} |
18 |
${StrStrAdv} |
19 |
${StrTok} |
20 |
${StrTrimNewLines} |
21 |
${StrSort} |
22 |
|
23 |
${UnStrCase} |
24 |
${UnStrClb} |
25 |
${UnStrIOToNSIS} |
26 |
${UnStrLoc} |
27 |
${UnStrNSISToIO} |
28 |
${UnStrRep} |
29 |
${UnStrStr} |
30 |
${UnStrStrAdv} |
31 |
${UnStrTok} |
32 |
${UnStrTrimNewLines} |
33 |
${UnStrSort} |
34 |
|
35 |
|
36 |
Var SFPass |
37 |
Var SFTotl |
38 |
!macro EndStrFuncTestEx lbl name |
39 |
IfErrors ${lbl} |
40 |
DetailPrint "PASSED ${name} test" |
41 |
IntOp $SFPass $SFPass + 1 |
42 |
IntOp $SFTotl $SFTotl + 1 |
43 |
Goto +3 |
44 |
${lbl}: |
45 |
DetailPrint "FAILED ${name} test" |
46 |
IntOp $SFTotl $SFTotl + 1 |
47 |
!macroend |
48 |
!macro EndStrFuncTest name |
49 |
!insertmacro EndStrFuncTestEx "${name}error" "${name}" |
50 |
!macroend |
51 |
|
52 |
CompletedText "Passed $SFPass of $SFTotl tests" |
53 |
!macro CompletedAllTests |
54 |
StrCmp $SFPass $SFTotl +2 |
55 |
SetErrorLevel 42 |
56 |
!macroend |
57 |
|
58 |
!macro StackVerificationStart |
59 |
StrCpy $0 S0 |
60 |
StrCpy $1 S1 |
61 |
StrCpy $2 S2 |
62 |
StrCpy $3 S3 |
63 |
StrCpy $4 S4 |
64 |
StrCpy $5 S5 |
65 |
StrCpy $6 S6 |
66 |
StrCpy $7 S7 |
67 |
StrCpy $8 S8 |
68 |
StrCpy $9 S9 |
69 |
StrCpy $R0 SR0 |
70 |
StrCpy $R1 SR1 |
71 |
StrCpy $R2 SR2 |
72 |
StrCpy $R3 SR3 |
73 |
StrCpy $R4 SR4 |
74 |
StrCpy $R5 SR5 |
75 |
StrCpy $R6 SR6 |
76 |
StrCpy $R7 SR7 |
77 |
StrCpy $R8 SR8 |
78 |
StrCpy $R9 SR9 |
79 |
!macroend |
80 |
|
81 |
!macro StackVerificationEnd |
82 |
ClearErrors |
83 |
${If} $1 != "S1" |
84 |
${OrIf} $2 != "S2" |
85 |
${OrIf} $3 != "S3" |
86 |
${OrIf} $4 != "S4" |
87 |
${OrIf} $5 != "S5" |
88 |
${OrIf} $6 != "S6" |
89 |
${OrIf} $7 != "S7" |
90 |
${OrIf} $8 != "S8" |
91 |
${OrIf} $9 != "S9" |
92 |
${OrIf} $R0 != "SR0" |
93 |
${OrIf} $R1 != "SR1" |
94 |
${OrIf} $R2 != "SR2" |
95 |
${OrIf} $R3 != "SR3" |
96 |
${OrIf} $R4 != "SR4" |
97 |
${OrIf} $R5 != "SR5" |
98 |
${OrIf} $R6 != "SR6" |
99 |
${OrIf} $R7 != "SR7" |
100 |
${OrIf} $R8 != "SR8" |
101 |
${OrIf} $R9 != "SR9" |
102 |
SetErrors |
103 |
${EndIf} |
104 |
!macroend |
105 |
|
106 |
Section |
107 |
|
108 |
# Test case conversion |
109 |
!insertmacro StackVerificationStart |
110 |
${StrCase} $0 "This is just an example. A very simple one." "" |
111 |
StrCmp $0 "This is just an example. A very simple one." 0 strcaseerror |
112 |
${StrCase} $0 "THIS IS JUST AN EXAMPLE. A VERY SIMPLE ONE." "S" |
113 |
StrCmp $0 "This is just an example. A very simple one." 0 strcaseerror |
114 |
${StrCase} $0 "This is just an example. A very simple one." "L" |
115 |
StrCmp $0 "this is just an example. a very simple one." 0 strcaseerror |
116 |
${StrCase} $0 "This is just an example. A very simple one." "U" |
117 |
StrCmp $0 "THIS IS JUST AN EXAMPLE. A VERY SIMPLE ONE." 0 strcaseerror |
118 |
${StrCase} $0 "This is just an example. A very simple one." "T" |
119 |
StrCmp $0 "This Is Just An Example. A Very Simple One." 0 strcaseerror |
120 |
${StrCase} $0 "This is just an example. A very simple one." "<>" |
121 |
StrCmp $0 "tHIS IS JUST AN EXAMPLE. a VERY SIMPLE ONE." 0 strcaseerror |
122 |
${StrCase} $0 "123456789!@#%^&*()-_=+[]{};:,./<>?" "S" |
123 |
StrCmp $0 "123456789!@#%^&*()-_=+[]{};:,./<>?" 0 strcaseerror |
124 |
${StrCase} $0 "123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ!@#%^&*()abcdefghijklmnopqrstuvwxyz-_=+[]{};:,./<>?" "<>" |
125 |
StrCmp $0 "123456789abcdefghijklmnopqrstuvwxyz!@#%^&*()ABCDEFGHIJKLMNOPQRSTUVWXYZ-_=+[]{};:,./<>?" 0 strcaseerror |
126 |
${StrCase} $0 "what about taking a shower tomorrow? it's late to do so now! try to sleep now. Good Night!" "S" |
127 |
StrCmp $0 "What about taking a shower tomorrow? It's late to do so now! Try to sleep now. Good night!" 0 strcaseerror |
128 |
!insertmacro StackVerificationEnd |
129 |
!insertmacro EndStrFuncTest StrCase |
130 |
|
131 |
# Test clipboard function |
132 |
!insertmacro StackVerificationStart |
133 |
!verbose push 4 |
134 |
${StrClb} $0 "StrFunc clipboard test" ">" |
135 |
!verbose pop |
136 |
StrCmp $0 "" 0 strclberror |
137 |
${StrClb} $0 "StrFunc clipboard test #2" "<>" |
138 |
StrCmp $0 "StrFunc clipboard test" 0 strclberror |
139 |
${StrClb} $0 "" "<" |
140 |
StrCmp $0 "StrFunc clipboard test #2" 0 strclberror |
141 |
${StrClb} $0 "" "" |
142 |
StrCmp $0 "" 0 strclberror |
143 |
!insertmacro StackVerificationEnd |
144 |
!insertmacro EndStrFuncTest StrClb |
145 |
|
146 |
# Test IO functions |
147 |
!insertmacro StackVerificationStart |
148 |
!macro testio str |
149 |
${StrNSISToIO} $0 "${str}" |
150 |
${StrIOToNSIS} $0 $0 |
151 |
StrCmp $0 "${str}" 0 ioerror |
152 |
!macroend |
153 |
!insertmacro testio "$\rtest$\n" |
154 |
!insertmacro testio "test$\n" |
155 |
!insertmacro testio "$\rtest" |
156 |
!insertmacro testio "test" |
157 |
!insertmacro testio "$\r\$\t$\n" |
158 |
!insertmacro testio "$\r \ $\t $\n $$" |
159 |
!insertmacro testio "" |
160 |
!insertmacro testio " " |
161 |
!insertmacro StackVerificationEnd |
162 |
!insertmacro EndStrFuncTestEx ioerror "StrNSISToIO/StrIOToNSIS" |
163 |
|
164 |
# Test string search functions |
165 |
!insertmacro StackVerificationStart |
166 |
${StrLoc} $0 "This is just an example" "just" "<" |
167 |
StrCmp $0 "11" 0 strlocerror |
168 |
${StrLoc} $0 a abc < |
169 |
StrCmp $0 "" 0 strlocerror |
170 |
${StrLoc} $0 a abc > |
171 |
StrCmp $0 "" 0 strlocerror |
172 |
${StrLoc} $0 abc a > |
173 |
StrCmp $0 "0" 0 strlocerror |
174 |
${StrLoc} $0 abc b > |
175 |
StrCmp $0 "1" 0 strlocerror |
176 |
${StrLoc} $0 abc c > |
177 |
StrCmp $0 "2" 0 strlocerror |
178 |
${StrLoc} $0 abc a < |
179 |
StrCmp $0 "2" 0 strlocerror |
180 |
${StrLoc} $0 abc b < |
181 |
StrCmp $0 "1" 0 strlocerror |
182 |
${StrLoc} $0 abc c < |
183 |
StrCmp $0 "0" 0 strlocerror |
184 |
${StrLoc} $0 abc d < |
185 |
StrCmp $0 "" 0 strlocerror |
186 |
!insertmacro StackVerificationEnd |
187 |
!insertmacro EndStrFuncTest StrLoc |
188 |
|
189 |
# Test string replacement |
190 |
!insertmacro StackVerificationStart |
191 |
${StrRep} $0 "This is just an example" "an" "one" |
192 |
StrCmp $0 "This is just one example" 0 strreperror |
193 |
${StrRep} $0 "test... test... 1 2 3..." "test" "testing" |
194 |
StrCmp $0 "testing... testing... 1 2 3..." 0 strreperror |
195 |
${StrRep} $0 "" "test" "testing" |
196 |
StrCmp $0 "" 0 strreperror |
197 |
${StrRep} $0 "test" "test" "testing" |
198 |
StrCmp $0 "testing" 0 strreperror |
199 |
${StrRep} $0 "test" "test" "" |
200 |
StrCmp $0 "" 0 strreperror |
201 |
${StrRep} $0 "test" "" "abc" |
202 |
StrCmp $0 "test" 0 strreperror |
203 |
${StrRep} $0 "test" "" "" |
204 |
StrCmp $0 "test" 0 strreperror |
205 |
!insertmacro StackVerificationEnd |
206 |
!insertmacro EndStrFuncTest StrRep |
207 |
|
208 |
# Test sorting |
209 |
!insertmacro StackVerificationStart |
210 |
${StrSort} $0 "This is just an example" "" " just" "ple" "0" "0" "0" |
211 |
StrCmp $0 "This is an exam" 0 strsorterror |
212 |
${StrSort} $0 "This is just an example" " " "j" " " "0" "" "0" |
213 |
StrCmp $0 "just" 0 strsorterror |
214 |
${StrSort} $0 "This is just an example" "" "j" "" "0" "1" "0" |
215 |
StrCmp $0 "This is just an example" 0 strsorterror |
216 |
${StrSort} $0 "This is just an example" " " "us" "" "0" "1" "0" |
217 |
StrCmp $0 "just an example" 0 strsorterror |
218 |
${StrSort} $0 "This is just an example" "" "u" " " "0" "1" "0" |
219 |
StrCmp $0 "This is just" 0 strsorterror |
220 |
${StrSort} $0 "This is just an example" " " "just" " " "0" "1" "0" |
221 |
StrCmp $0 "just" 0 strsorterror |
222 |
${StrSort} $0 "This is just an example" " " "t" " " "0" "1" "0" |
223 |
StrCmp $0 "This" 0 strsorterror |
224 |
${StrSort} $0 "This is just an example" " " "le" " " "0" "1" "0" |
225 |
StrCmp $0 "example" 0 strsorterror |
226 |
${StrSort} $0 "This is just an example" " " "le" " " "1" "0" "0" |
227 |
StrCmp $0 " examp" 0 strsorterror |
228 |
${StrSort} $0 "an error has occurred" " " "e" " " "0" "1" "0" |
229 |
StrCmp $0 "error" 0 strsorterror |
230 |
${StrSort} $0 "" " " "something" " " "0" "1" "0" |
231 |
StrCmp $0 "" 0 strsorterror |
232 |
${StrSort} $0 "This is just an example" " " "j" " " "" "" "" |
233 |
StrCmp $0 " just " 0 strsorterror |
234 |
${StrSort} $0 "This is just an example" " " "j" " " "1" "0" "1" |
235 |
StrCmp $0 " ust " 0 strsorterror |
236 |
${StrSort} $0 "This is just an example" "" "j" "" "0" "0" "1" |
237 |
StrCmp $0 "This is ust an example" 0 strsorterror |
238 |
${StrSort} $0 "This is just an example" " " "us" "" "1" "0" "0" |
239 |
StrCmp $0 " jt an example" 0 strsorterror |
240 |
${StrSort} $0 "This is just an example" "" "u" " " "0" "0" "1" |
241 |
StrCmp $0 "This is jst " 0 strsorterror |
242 |
${StrSort} $0 "This is just an example" " " "just" " " "1" "0" "1" |
243 |
StrCmp $0 " " 0 strsorterror |
244 |
${StrSort} $0 "an error has occurred" " " "e" "h" "1" "0" "0" |
245 |
StrCmp $0 " rror " 0 strsorterror |
246 |
${StrSort} $0 "" " " "something" " " "1" "0" "1" |
247 |
StrCmp $0 "" 0 strsorterror |
248 |
!insertmacro StackVerificationEnd |
249 |
!insertmacro EndStrFuncTest StrSort |
250 |
|
251 |
!insertmacro StackVerificationStart |
252 |
${StrStr} $0 "abcefghijklmnopqrstuvwxyz" "g" |
253 |
StrCmp $0 "ghijklmnopqrstuvwxyz" 0 strstrerror |
254 |
${StrStr} $0 "abcefghijklmnopqrstuvwxyz" "ga" |
255 |
StrCmp $0 "" 0 strstrerror |
256 |
${StrStr} $0 "abcefghijklmnopqrstuvwxyz" "" |
257 |
StrCmp $0 "abcefghijklmnopqrstuvwxyz" 0 strstrerror |
258 |
${StrStr} $0 "a" "abcefghijklmnopqrstuvwxyz" |
259 |
StrCmp $0 "" 0 strstrerror |
260 |
!insertmacro StackVerificationEnd |
261 |
!insertmacro EndStrFuncTest StrStr |
262 |
|
263 |
!insertmacro StackVerificationStart |
264 |
${StrStrAdv} $0 "abcabcabc" "a" ">" ">" "1" "0" "0" |
265 |
StrCmp $0 "abcabcabc" 0 strstradverror |
266 |
${StrStrAdv} $0 "abcabcabc" "a" ">" ">" "1" "1" "0" |
267 |
StrCmp $0 "abcabc" 0 strstradverror |
268 |
${StrStrAdv} $0 "abcabcabc" "a" ">" ">" "1" "2" "0" |
269 |
StrCmp $0 "abc" 0 strstradverror |
270 |
${StrStrAdv} $0 "abcabcabc" "a" ">" ">" "1" "3" "0" |
271 |
StrCmp $0 "" 0 strstradverror |
272 |
${StrStrAdv} $0 "abcabcabc" "abc" ">" "<" "1" "1" "0" |
273 |
StrCmp $0 "abcabc" 0 strstradverror |
274 |
${StrStrAdv} $0 "abcabcabc" "abc" ">" "<" "0" "1" "0" |
275 |
StrCmp $0 "abc" 0 strstradverror |
276 |
${StrStrAdv} $0 "abcabcabc" "abc" "<" "<" "1" "0" "0" |
277 |
StrCmp $0 "abcabcabc" 0 strstradverror |
278 |
${StrStrAdv} $0 "abcabcabc" "abc" "<" "<" "0" "0" "0" |
279 |
StrCmp $0 "abcabc" 0 strstradverror |
280 |
${StrStrAdv} $0 "abcabcabc" "abc" "<" ">" "0" "0" "0" |
281 |
StrCmp $0 "" 0 strstradverror |
282 |
${StrStrAdv} $0 "abcabcabc" "abc" "<" ">" "0" "1" "0" |
283 |
StrCmp $0 "abc" 0 strstradverror |
284 |
${StrStrAdv} $0 "ABCabcabc" "a" ">" ">" "1" "0" "1" |
285 |
StrCmp $0 "abcabc" 0 strstradverror |
286 |
${StrStrAdv} $0 "ABCabcabc" "a" ">" ">" "1" "1" "1" |
287 |
StrCmp $0 "abc" 0 strstradverror |
288 |
${StrStrAdv} $0 "ABCabcabc" "a" ">" ">" "1" "2" "1" |
289 |
StrCmp $0 "" 0 strstradverror |
290 |
${StrStrAdv} $0 "ABCabcabc" "a" ">" ">" "1" "3" "1" |
291 |
StrCmp $0 "" 0 strstradverror |
292 |
${StrStrAdv} $0 "ABCabcabc" "abc" ">" "<" "1" "1" "1" |
293 |
StrCmp $0 "ABCabcabc" 0 strstradverror |
294 |
${StrStrAdv} $0 "ABCabcabc" "abc" ">" "<" "0" "1" "1" |
295 |
StrCmp $0 "ABCabc" 0 strstradverror |
296 |
${StrStrAdv} $0 "ABCabcabc" "abc" "<" "<" "1" "0" "1" |
297 |
StrCmp $0 "ABCabcabc" 0 strstradverror |
298 |
${StrStrAdv} $0 "ABCabcabc" "abc" "<" "<" "0" "0" "1" |
299 |
StrCmp $0 "ABCabc" 0 strstradverror |
300 |
${StrStrAdv} $0 "ABCabcabc" "abc" "<" ">" "0" "0" "1" |
301 |
StrCmp $0 "" 0 strstradverror |
302 |
${StrStrAdv} $0 "ABCabcabc" "abc" "<" ">" "0" "1" "1" |
303 |
StrCmp $0 "abc" 0 strstradverror |
304 |
!insertmacro StackVerificationEnd |
305 |
!insertmacro EndStrFuncTest StrStrAdv |
306 |
|
307 |
# Test tokenizer |
308 |
!insertmacro StackVerificationStart |
309 |
${StrTok} $0 "This is, or is not, just an example" " ," "4" "1" |
310 |
StrCmp $0 "not" 0 strtokerror |
311 |
${StrTok} $0 "This is, or is not, just an example" " ," "4" "0" |
312 |
StrCmp $0 "is" 0 strtokerror |
313 |
${StrTok} $0 "This is, or is not, just an example" " ," "152" "0" |
314 |
StrCmp $0 "" 0 strtokerror |
315 |
${StrTok} $0 "This is, or is not, just an example" " ," "" "0" |
316 |
StrCmp $0 "example" 0 strtokerror |
317 |
${StrTok} $0 "This is, or is not, just an example" " ," "L" "0" |
318 |
StrCmp $0 "example" 0 strtokerror |
319 |
${StrTok} $0 "This is, or is not, just an example" " ," "0" "0" |
320 |
StrCmp $0 "This" 0 strtokerror |
321 |
!insertmacro StackVerificationEnd |
322 |
!insertmacro EndStrFuncTest StrTok |
323 |
|
324 |
# Test trim new lines |
325 |
!insertmacro StackVerificationStart |
326 |
${StrTrimNewLines} $0 "$\r$\ntest$\r$\ntest$\r$\n" |
327 |
StrCmp $0 "$\r$\ntest$\r$\ntest" 0 strtrimnewlineserror |
328 |
!insertmacro StackVerificationEnd |
329 |
!insertmacro EndStrFuncTest StrTrimNewlines |
330 |
|
331 |
InitPluginsDir |
332 |
WriteUninstaller $PluginsDir\UnStrFunc.exe |
333 |
ExecWait '"$PluginsDir\UnStrFunc.exe" _?=$PluginsDir' |
334 |
|
335 |
!insertmacro CompletedAllTests |
336 |
SectionEnd |
337 |
|
338 |
Section Uninstall |
339 |
|
340 |
# Test case conversion |
341 |
!insertmacro StackVerificationStart |
342 |
${UnStrCase} $0 "This is just an example. A very simple one." "" |
343 |
StrCmp $0 "This is just an example. A very simple one." 0 strcaseerror |
344 |
${UnStrCase} $0 "THIS IS JUST AN EXAMPLE. A VERY SIMPLE ONE." "S" |
345 |
StrCmp $0 "This is just an example. A very simple one." 0 strcaseerror |
346 |
${UnStrCase} $0 "This is just an example. A very simple one." "L" |
347 |
StrCmp $0 "this is just an example. a very simple one." 0 strcaseerror |
348 |
${UnStrCase} $0 "This is just an example. A very simple one." "U" |
349 |
StrCmp $0 "THIS IS JUST AN EXAMPLE. A VERY SIMPLE ONE." 0 strcaseerror |
350 |
${UnStrCase} $0 "This is just an example. A very simple one." "T" |
351 |
StrCmp $0 "This Is Just An Example. A Very Simple One." 0 strcaseerror |
352 |
${UnStrCase} $0 "This is just an example. A very simple one." "<>" |
353 |
StrCmp $0 "tHIS IS JUST AN EXAMPLE. a VERY SIMPLE ONE." 0 strcaseerror |
354 |
${UnStrCase} $0 "123456789!@#%^&*()-_=+[]{};:,./<>?" "S" |
355 |
StrCmp $0 "123456789!@#%^&*()-_=+[]{};:,./<>?" 0 strcaseerror |
356 |
${UnStrCase} $0 "123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ!@#%^&*()abcdefghijklmnopqrstuvwxyz-_=+[]{};:,./<>?" "<>" |
357 |
StrCmp $0 "123456789abcdefghijklmnopqrstuvwxyz!@#%^&*()ABCDEFGHIJKLMNOPQRSTUVWXYZ-_=+[]{};:,./<>?" 0 strcaseerror |
358 |
${UnStrCase} $0 "what about taking a shower tomorrow? it's late to do so now! try to sleep now. Good Night!" "S" |
359 |
StrCmp $0 "What about taking a shower tomorrow? It's late to do so now! Try to sleep now. Good night!" 0 strcaseerror |
360 |
!insertmacro StackVerificationEnd |
361 |
!insertmacro EndStrFuncTest StrCase |
362 |
|
363 |
# Test clipboard function |
364 |
!insertmacro StackVerificationStart |
365 |
${UnStrClb} $0 "StrFunc clipboard test" ">" |
366 |
StrCmp $0 "" 0 strclberror |
367 |
${UnStrClb} $0 "StrFunc clipboard test #2" "<>" |
368 |
StrCmp $0 "StrFunc clipboard test" 0 strclberror |
369 |
${UnStrClb} $0 "" "<" |
370 |
StrCmp $0 "StrFunc clipboard test #2" 0 strclberror |
371 |
${UnStrClb} $0 "" "" |
372 |
StrCmp $0 "" 0 strclberror |
373 |
!insertmacro StackVerificationEnd |
374 |
!insertmacro EndStrFuncTest StrClb |
375 |
|
376 |
# Test IO functions |
377 |
!insertmacro StackVerificationStart |
378 |
!macro untestio str |
379 |
${UnStrNSISToIO} $0 "${str}" |
380 |
${UnStrIOToNSIS} $0 $0 |
381 |
StrCmp $0 "${str}" 0 ioerror |
382 |
!macroend |
383 |
!insertmacro untestio "$\rtest$\n" |
384 |
!insertmacro untestio "test$\n" |
385 |
!insertmacro untestio "$\rtest" |
386 |
!insertmacro untestio "test" |
387 |
!insertmacro untestio "$\r\$\t$\n" |
388 |
!insertmacro untestio "$\r \ $\t $\n $$" |
389 |
!insertmacro untestio "" |
390 |
!insertmacro untestio " " |
391 |
!insertmacro StackVerificationEnd |
392 |
!insertmacro EndStrFuncTestEx ioerror "StrNSISToIO/StrIOToNSIS" |
393 |
|
394 |
# Test string search functions |
395 |
!insertmacro StackVerificationStart |
396 |
${UnStrLoc} $0 "This is just an example" "just" "<" |
397 |
StrCmp $0 "11" 0 strlocerror |
398 |
${UnStrLoc} $0 a abc < |
399 |
StrCmp $0 "" 0 strlocerror |
400 |
${UnStrLoc} $0 a abc > |
401 |
StrCmp $0 "" 0 strlocerror |
402 |
${UnStrLoc} $0 abc a > |
403 |
StrCmp $0 "0" 0 strlocerror |
404 |
${UnStrLoc} $0 abc b > |
405 |
StrCmp $0 "1" 0 strlocerror |
406 |
${UnStrLoc} $0 abc c > |
407 |
StrCmp $0 "2" 0 strlocerror |
408 |
${UnStrLoc} $0 abc a < |
409 |
StrCmp $0 "2" 0 strlocerror |
410 |
${UnStrLoc} $0 abc b < |
411 |
StrCmp $0 "1" 0 strlocerror |
412 |
${UnStrLoc} $0 abc c < |
413 |
StrCmp $0 "0" 0 strlocerror |
414 |
${UnStrLoc} $0 abc d < |
415 |
StrCmp $0 "" 0 strlocerror |
416 |
!insertmacro StackVerificationEnd |
417 |
!insertmacro EndStrFuncTest StrLoc |
418 |
|
419 |
# Test string replacement |
420 |
!insertmacro StackVerificationStart |
421 |
${UnStrRep} $0 "This is just an example" "an" "one" |
422 |
StrCmp $0 "This is just one example" 0 strreperror |
423 |
${UnStrRep} $0 "test... test... 1 2 3..." "test" "testing" |
424 |
StrCmp $0 "testing... testing... 1 2 3..." 0 strreperror |
425 |
${UnStrRep} $0 "" "test" "testing" |
426 |
StrCmp $0 "" 0 strreperror |
427 |
${UnStrRep} $0 "test" "test" "testing" |
428 |
StrCmp $0 "testing" 0 strreperror |
429 |
${UnStrRep} $0 "test" "test" "" |
430 |
StrCmp $0 "" 0 strreperror |
431 |
${UnStrRep} $0 "test" "" "abc" |
432 |
StrCmp $0 "test" 0 strreperror |
433 |
${UnStrRep} $0 "test" "" "" |
434 |
StrCmp $0 "test" 0 strreperror |
435 |
!insertmacro StackVerificationEnd |
436 |
!insertmacro EndStrFuncTest StrRep |
437 |
|
438 |
# Test sorting |
439 |
!insertmacro StackVerificationStart |
440 |
${UnStrSort} $0 "This is just an example" "" " just" "ple" "0" "0" "0" |
441 |
StrCmp $0 "This is an exam" 0 strsorterror |
442 |
${UnStrSort} $0 "This is just an example" " " "j" " " "0" "" "0" |
443 |
StrCmp $0 "just" 0 strsorterror |
444 |
${UnStrSort} $0 "This is just an example" "" "j" "" "0" "1" "0" |
445 |
StrCmp $0 "This is just an example" 0 strsorterror |
446 |
${UnStrSort} $0 "This is just an example" " " "us" "" "0" "1" "0" |
447 |
StrCmp $0 "just an example" 0 strsorterror |
448 |
${UnStrSort} $0 "This is just an example" "" "u" " " "0" "1" "0" |
449 |
StrCmp $0 "This is just" 0 strsorterror |
450 |
${UnStrSort} $0 "This is just an example" " " "just" " " "0" "1" "0" |
451 |
StrCmp $0 "just" 0 strsorterror |
452 |
${UnStrSort} $0 "This is just an example" " " "t" " " "0" "1" "0" |
453 |
StrCmp $0 "This" 0 strsorterror |
454 |
${UnStrSort} $0 "This is just an example" " " "le" " " "0" "1" "0" |
455 |
StrCmp $0 "example" 0 strsorterror |
456 |
${UnStrSort} $0 "This is just an example" " " "le" " " "1" "0" "0" |
457 |
StrCmp $0 " examp" 0 strsorterror |
458 |
${UnStrSort} $0 "an error has occurred" " " "e" " " "0" "1" "0" |
459 |
StrCmp $0 "error" 0 strsorterror |
460 |
${UnStrSort} $0 "" " " "something" " " "0" "1" "0" |
461 |
StrCmp $0 "" 0 strsorterror |
462 |
${UnStrSort} $0 "This is just an example" " " "j" " " "" "" "" |
463 |
StrCmp $0 " just " 0 strsorterror |
464 |
${UnStrSort} $0 "This is just an example" " " "j" " " "1" "0" "1" |
465 |
StrCmp $0 " ust " 0 strsorterror |
466 |
${UnStrSort} $0 "This is just an example" "" "j" "" "0" "0" "1" |
467 |
StrCmp $0 "This is ust an example" 0 strsorterror |
468 |
${UnStrSort} $0 "This is just an example" " " "us" "" "1" "0" "0" |
469 |
StrCmp $0 " jt an example" 0 strsorterror |
470 |
${UnStrSort} $0 "This is just an example" "" "u" " " "0" "0" "1" |
471 |
StrCmp $0 "This is jst " 0 strsorterror |
472 |
${UnStrSort} $0 "This is just an example" " " "just" " " "1" "0" "1" |
473 |
StrCmp $0 " " 0 strsorterror |
474 |
${UnStrSort} $0 "an error has occurred" " " "e" "h" "1" "0" "0" |
475 |
StrCmp $0 " rror " 0 strsorterror |
476 |
${UnStrSort} $0 "" " " "something" " " "1" "0" "1" |
477 |
StrCmp $0 "" 0 strsorterror |
478 |
!insertmacro StackVerificationEnd |
479 |
!insertmacro EndStrFuncTest StrSort |
480 |
|
481 |
!insertmacro StackVerificationStart |
482 |
${UnStrStr} $0 "abcefghijklmnopqrstuvwxyz" "g" |
483 |
StrCmp $0 "ghijklmnopqrstuvwxyz" 0 strstrerror |
484 |
${UnStrStr} $0 "abcefghijklmnopqrstuvwxyz" "ga" |
485 |
StrCmp $0 "" 0 strstrerror |
486 |
${UnStrStr} $0 "abcefghijklmnopqrstuvwxyz" "" |
487 |
StrCmp $0 "abcefghijklmnopqrstuvwxyz" 0 strstrerror |
488 |
${UnStrStr} $0 "a" "abcefghijklmnopqrstuvwxyz" |
489 |
StrCmp $0 "" 0 strstrerror |
490 |
!insertmacro StackVerificationEnd |
491 |
!insertmacro EndStrFuncTest StrStr |
492 |
|
493 |
!insertmacro StackVerificationStart |
494 |
${UnStrStrAdv} $0 "abcabcabc" "a" ">" ">" "1" "0" "0" |
495 |
StrCmp $0 "abcabcabc" 0 strstradverror |
496 |
${UnStrStrAdv} $0 "abcabcabc" "a" ">" ">" "1" "1" "0" |
497 |
StrCmp $0 "abcabc" 0 strstradverror |
498 |
${UnStrStrAdv} $0 "abcabcabc" "a" ">" ">" "1" "2" "0" |
499 |
StrCmp $0 "abc" 0 strstradverror |
500 |
${UnStrStrAdv} $0 "abcabcabc" "a" ">" ">" "1" "3" "0" |
501 |
StrCmp $0 "" 0 strstradverror |
502 |
${UnStrStrAdv} $0 "abcabcabc" "abc" ">" "<" "1" "1" "0" |
503 |
StrCmp $0 "abcabc" 0 strstradverror |
504 |
${UnStrStrAdv} $0 "abcabcabc" "abc" ">" "<" "0" "1" "0" |
505 |
StrCmp $0 "abc" 0 strstradverror |
506 |
${UnStrStrAdv} $0 "abcabcabc" "abc" "<" "<" "1" "0" "0" |
507 |
StrCmp $0 "abcabcabc" 0 strstradverror |
508 |
${UnStrStrAdv} $0 "abcabcabc" "abc" "<" "<" "0" "0" "0" |
509 |
StrCmp $0 "abcabc" 0 strstradverror |
510 |
${UnStrStrAdv} $0 "abcabcabc" "abc" "<" ">" "0" "0" "0" |
511 |
StrCmp $0 "" 0 strstradverror |
512 |
${UnStrStrAdv} $0 "abcabcabc" "abc" "<" ">" "0" "1" "0" |
513 |
StrCmp $0 "abc" 0 strstradverror |
514 |
${UnStrStrAdv} $0 "ABCabcabc" "a" ">" ">" "1" "0" "1" |
515 |
StrCmp $0 "abcabc" 0 strstradverror |
516 |
${UnStrStrAdv} $0 "ABCabcabc" "a" ">" ">" "1" "1" "1" |
517 |
StrCmp $0 "abc" 0 strstradverror |
518 |
${UnStrStrAdv} $0 "ABCabcabc" "a" ">" ">" "1" "2" "1" |
519 |
StrCmp $0 "" 0 strstradverror |
520 |
${UnStrStrAdv} $0 "ABCabcabc" "a" ">" ">" "1" "3" "1" |
521 |
StrCmp $0 "" 0 strstradverror |
522 |
${UnStrStrAdv} $0 "ABCabcabc" "abc" ">" "<" "1" "1" "1" |
523 |
StrCmp $0 "ABCabcabc" 0 strstradverror |
524 |
${UnStrStrAdv} $0 "ABCabcabc" "abc" ">" "<" "0" "1" "1" |
525 |
StrCmp $0 "ABCabc" 0 strstradverror |
526 |
${UnStrStrAdv} $0 "ABCabcabc" "abc" "<" "<" "1" "0" "1" |
527 |
StrCmp $0 "ABCabcabc" 0 strstradverror |
528 |
${UnStrStrAdv} $0 "ABCabcabc" "abc" "<" "<" "0" "0" "1" |
529 |
StrCmp $0 "ABCabc" 0 strstradverror |
530 |
${UnStrStrAdv} $0 "ABCabcabc" "abc" "<" ">" "0" "0" "1" |
531 |
StrCmp $0 "" 0 strstradverror |
532 |
${UnStrStrAdv} $0 "ABCabcabc" "abc" "<" ">" "0" "1" "1" |
533 |
StrCmp $0 "abc" 0 strstradverror |
534 |
!insertmacro StackVerificationEnd |
535 |
!insertmacro EndStrFuncTest StrStrAdv |
536 |
|
537 |
# Test tokenizer |
538 |
!insertmacro StackVerificationStart |
539 |
${UnStrTok} $0 "This is, or is not, just an example" " ," "4" "1" |
540 |
StrCmp $0 "not" 0 strtokerror |
541 |
${UnStrTok} $0 "This is, or is not, just an example" " ," "4" "0" |
542 |
StrCmp $0 "is" 0 strtokerror |
543 |
${UnStrTok} $0 "This is, or is not, just an example" " ," "152" "0" |
544 |
StrCmp $0 "" 0 strtokerror |
545 |
${UnStrTok} $0 "This is, or is not, just an example" " ," "" "0" |
546 |
StrCmp $0 "example" 0 strtokerror |
547 |
${UnStrTok} $0 "This is, or is not, just an example" " ," "L" "0" |
548 |
StrCmp $0 "example" 0 strtokerror |
549 |
${UnStrTok} $0 "This is, or is not, just an example" " ," "0" "0" |
550 |
StrCmp $0 "This" 0 strtokerror |
551 |
!insertmacro StackVerificationEnd |
552 |
!insertmacro EndStrFuncTest StrTok |
553 |
|
554 |
# Test trim new lines |
555 |
!insertmacro StackVerificationStart |
556 |
${UnStrTrimNewLines} $0 "$\r$\ntest$\r$\ntest$\r$\n" |
557 |
StrCmp $0 "$\r$\ntest$\r$\ntest" 0 strtrimnewlineserror |
558 |
!insertmacro StackVerificationEnd |
559 |
!insertmacro EndStrFuncTest StrTrimNewLines |
560 |
|
561 |
!insertmacro CompletedAllTests |
562 |
SectionEnd |