stringlist_string_set to replace the string of a stringlist node
[mala.git] / tests / 30stdmodule.tests
blob6438de50d84c1d87ae55ee98eeedba375d8ffdd6
1 # arch-tag: org.pipapo.mala.tests.stdmodule
3 TESTING "stdmodule tests:" ./test-mala
6 TEST "cat three 1st way" --CAT --CAT foo bar baz <<END
7 stdout: .
8 literal: foobarbaz.
9 variable: (null)
10 state: LITERAL
11 END
14 TEST "cat three 2nd way" --CAT foo --CAT bar baz <<END
15 stdout: .
16 literal: foobarbaz.
17 variable: (null)
18 state: LITERAL
19 END
22 TEST "cat missing arg 1st way" --CAT --CAT foo bar <<END
23 stdout: .
24 literal: --CAT.
25 literal: foobar.
26 literal: --ERROR-MISSING-ARGUMENT.
27 variable: (null)
28 state: EXCEPTION
29 END
32 TEST "cat missing arg 2nd way" --CAT foo --CAT bar <<END
33 stdout: .
34 literal: --CAT.
35 literal: foo.
36 literal: --CAT.
37 literal: bar.
38 literal: --ERROR-MISSING-ARGUMENT.
39 variable: (null)
40 state: EXCEPTION
41 END
44 TEST "missing arg at --PRINT" --PRINT <<END
45 stdout: .
46 literal: --PRINT.
47 literal: --ERROR-MISSING-ARGUMENT.
48 variable: (null)
49 state: EXCEPTION
50 END
53 TEST "--PRINT --LITERAL" --PRINT --LITERAL --LITERAL <<END
54 stdout: --LITERAL.
55 variable: (null)
56 state: STATEMENT
57 END
60 TEST "--PRINT and --NL" --PRINT "foo bar" --NL <<END
61 stdout: foo bar
63 variable: (null)
64 state: STATEMENT
65 END
68 TEST "begin w/o end" --BEGIN <<END
69 stdout: .
70 literal: --BEGIN.
71 literal: --ERROR-MISSING-END.
72 variable: (null)
73 state: EXCEPTION
74 END
77 TEST "begin empty end" --BEGIN --END <<END
78 stdout: .
79 variable: (null)
80 state: STATEMENT
81 END
84 TEST "begin single word" --BEGIN foo --END <<END
85 stdout: .
86 literal: foo.
87 variable: (null)
88 state: LITERAL
89 END
92 TEST "begin 2 words" --BEGIN foo bar --END <<END
93 stdout: .
94 literal: foo.
95 literal: bar.
96 variable: (null)
97 state: LITERAL
98 END
101 TEST "begin single macro" --BEGIN '%2%1' --END foo bar <<END
102 stdout: .
103 literal: barfoo.
104 variable: (null)
105 state: LITERAL
109 TEST "begin double macro" --BEGIN '%2' '%1' --END foo bar <<END
110 stdout: .
111 literal: bar.
112 literal: foo.
113 variable: (null)
114 state: LITERAL
118 TEST "missing name at --DEF" --DEF <<END
119 stdout: .
120 literal: --DEF.
121 literal: --ERROR-MISSING-ARGUMENT.
122 variable: (null)
123 state: EXCEPTION
127 TEST "missing body at --DEF" --DEF foo <<END
128 stdout: .
129 literal: --DEF.
130 literal: foo.
131 literal: --ERROR-MISSING-ARGUMENT.
132 variable: (null)
133 state: EXCEPTION
137 TEST "define macro w/o parameter" --DEF foo --BEGIN bar baz --END <<END
138 stdout: .
139 variable: (null)
140 state: STATEMENT
144 TEST "substitute"  --DEF foo bar foo <<END
145 stdout: .
146 literal: bar.
147 variable: (null)
148 state: LITERAL
152 TEST "expand macro w/o parameter" --DEF foo --BEGIN bar baz --END foo <<END
153 stdout: .
154 literal: bar.
155 literal: baz.
156 variable: (null)
157 state: LITERAL
161 TEST "expand macro w/ parameter" --DEF foo --BEGIN %1 bar --END foo baz <<END
162 stdout: .
163 literal: baz.
164 literal: bar.
165 variable: (null)
166 state: LITERAL
170 TEST "%% expand test" --DEF foo foo%%bar foo baz <<END
171 stdout: .
172 literal: foo%bar.
173 literal: baz.
174 variable: (null)
175 state: LITERAL
179 TEST "%0 expand test" --DEF foo foo%0bar foo baz <<END
180 stdout: .
181 literal: foofoobar.
182 literal: baz.
183 variable: (null)
184 state: LITERAL
188 PLANNED "%-0 expand test" --DEF foo bar barf --END-DEF --DEF foo -BEEGIN baz %-0 --END foo gnarf <<END
189 arg: baz
190 arg: bar
191 arg: barf
192 arg: gnarf
193 variable: (null)
194 state: CONTINUE
198 TEST "define nested macro w/o parameter" --DEF foo --BEGIN bar --DEF baz --BEGIN barf gnarf --END --END baz foo baz <<END
199 stdout: .
200 literal: baz.
201 literal: bar.
202 literal: barf.
203 literal: gnarf.
204 variable: (null)
205 state: LITERAL
209 PLANNED "variable expansion in macro" variable = bar --DEF foo '$variable' --END-DEF --PRINT foo --NL <<END
210 stdout: bar
211 variable: (null)
212 state: CONTINUE
216 TEST "missing macro argument" --DEF foo %2 foo bar <<END
217 stdout: .
218 literal: foo.
219 literal: bar.
220 literal: --ERROR-MISSING-ARGUMENT.
221 variable: (null)
222 state: EXCEPTION
226 TEST "stale --END" --PRINT foo bar baz --END <<END
227 stdout: foo.
228 literal: bar.
229 literal: baz.
230 literal: --ERROR-END-WITHOUT-BEGIN.
231 literal: --END.
232 variable: (null)
233 state: EXCEPTION
237 TEST "escaped argument" --DEF foo %%1 foo <<END
238 stdout: .
239 literal: %1.
240 variable: (null)
241 state: LITERAL
245 TEST "invalid macro" --DEF foo %illegal foo bar <<END
246 stdout: .
247 literal: --DEF.
248 literal: foo.
249 literal: --ERROR-MACRO-SYNTAX.
250 literal: %illegal.
251 literal: foo.
252 literal: bar.
253 variable: (null)
254 state: EXCEPTION
258 PLANNED "definition redefinition" --DEF --substitute --ESCAPE --DEF %1 %2 --ESCAPE --END-DEF --END-DEF --substitute foo bar foo <<END
259 stdout: 
260 arg: bar
261 variable: (null)
262 state: CONTINUE
266 PLANNED "--no-PRINT" --no-PRINT <<END
267 stdout: 
268 prg: --ERROR-UNEXPECTED-NEGATED
269 prg: --PRINT
270 prg: --BEFORE-HERE
271 variable: (null)
272 state: ENOACTION
275 PLANNED "negated --DEF" ! --DEF foo bar --END-DEF <<END
276 stdout: 
277 prg: --ERROR-NEGATED
278 prg: --DEF
279 prg: --HERE-ERROR-NEGATED
280 prg: foo
281 prg: bar
282 prg: --END-DEF
283 variable: (null)
284 state: ENOACTION
288 TEST "printl" --PRINTL --LITERAL foo <<END
289 stdout: foo
291 variable: (null)
292 state: STATEMENT
296 TEST "undef substitution" --DEF foo bar foo --DEL --LITERAL foo foo <<END
297 stdout: .
298 literal: bar.
299 literal: foo.
300 variable: (null)
301 state: LITERAL
305 TEST "delete error" --DEL foo <<END
306 stdout: .
307 literal: --DEL.
308 literal: --ERROR-ACTION-NOT-DEFINED.
309 literal: foo.
310 variable: (null)
311 state: EXCEPTION
315 TEST "remove literal" --REMOVE foo <<END
316 stdout: .
317 variable: (null)
318 state: STATEMENT
322 TEST "remove printl" --REMOVE --PRINTL foo <<END
323 stdout: .
324 variable: (null)
325 state: STATEMENT
329 TEST "remove def" --REMOVE --DEF foo bar baz <<END
330 stdout: .
331 literal: baz.
332 variable: (null)
333 state: LITERAL
337 PLANNED TEST "simple not true" --NOT --TRUE <<END
338 stdout: .
339 literal: --FALSE.
340 variable: (null)
341 state: LITERAL
345 PLANNED TEST "simple not false" --NOT --FALSE <<END
346 stdout: .
347 literal: --TRUE.
348 variable: (null)
349 state: LITERAL
353 PLANNED TEST "double not true" --NOT --NOT --TRUE <<END
354 stdout: 
355 literal: --TRUE
356 variable: (null)
357 state: LITERAL
361 PLANNED TEST "double not false" --NOT --NOT --FALSE <<END
362 stdout: 
363 literal: --FALSE
364 variable: (null)
365 state: LITERAL
369 TEST "delete expand" --DEF foo --BEGIN bar baz --END foo --DEL --LITERAL foo foo <<END
370 stdout: .
371 literal: bar.
372 literal: baz.
373 literal: foo.
374 variable: (null)
375 state: LITERAL
379 TEST "delete macro" --DEF foo --BEGIN bar %1 --END foo baz --DEL --LITERAL foo foo baz <<END
380 stdout: .
381 literal: bar.
382 literal: baz.
383 literal: foo.
384 literal: baz.
385 variable: (null)
386 state: LITERAL
390 PLANNED "redef macro" --DEF foo bar --REDEF foo baz foo goo --DEL foo --DEL foo <<END
391 stdout: literal: baz
392 literal: goo
393 prg: --ERROR-UNKNOWN-ACTION
394 prg: --DEL
395 prg: foo
396 prg: --HERE-ERROR-UNKNOWN-ACTION
397 variable: (null)
398 state: ENOACTION
401 PLANNED "defined" --DEFINED --DEF ! --DEFINED foo --DEFINED bar --NO-DEFINED --DEFINED <<END
402 stdout: 
403 literal: --TRUE
404 literal: --TRUE
405 literal: --FALSE
406 literal: --FALSE
407 variable: (null)
408 state: 1
411 PLANNED "attach" --DEF foo bar --END-DEF --DEF baz barf --END-DEF --ATTACH foo baz foo --DEL baz foo <<END
412 stdout: 
413 literal: bar
414 literal: foo
415 variable: (null)
416 state: CONTINUE
419 PLANNED "detach" --DEF foo bar --END-DEF --DEF baz barf --END-DEF --ATTACH foo baz foo --DETACH foo --DEL baz foo <<END
420 stdout: 
421 literal: bar
422 literal: bar
423 variable: (null)
424 state: CONTINUE
428 TEST "ifelse true" --IF-ELSE --TRUE success fail bar <<END
429 stdout: .
430 literal: success.
431 literal: bar.
432 variable: (null)
433 state: LITERAL
437 TEST "ifelse false" --IF-ELSE --FALSE success fail bar <<END
438 stdout: .
439 literal: fail.
440 literal: bar.
441 variable: (null)
442 state: LITERAL
446 TEST "if else blocks, true" --IF-ELSE --TRUE --BEGIN --PRINTL true --END --BEGIN --PRINTL false --END <<END
447 stdout: true
449 variable: (null)
450 state: STATEMENT
454 TEST "if else blocks, false" --IF-ELSE --FALSE --BEGIN --PRINTL true --END --BEGIN --PRINTL false --END <<END
455 stdout: false
457 variable: (null)
458 state: STATEMENT
462 TEST "eval" --PRINT --EVAL --DEF foo evaluated --STOP finally foo <<END
463 stdout: finally.
464 literal: evaluated.
465 variable: (null)
466 state: LITERAL
470 TEST "Simple printwraped" --DEF COL 40 --PRINTWRAPED COL 10 2 8 $'foo\t- bar\t  right' --PRINTL 12345678901234567890123456789012345678901234567890 <<END
471 stdout:   foo     - bar                    right
472 12345678901234567890123456789012345678901234567890
474 variable: (null)
475 state: STATEMENT
478 TEST "printwraped with wrap" --DEF COL 40 --PRINTWRAPED COL 10 2 8 $'foo\t- bar\t  right\nfoo\t- bar baz foobar barf bazbarf gnat\t right' --PRINTL 12345678901234567890123456789012345678901234567890 <<END
479 stdout:   foo     - bar                    right
480   foo     - bar baz foobar barf bazbarf
481             gnat                   right
482 12345678901234567890123456789012345678901234567890
484 variable: (null)
485 state: STATEMENT
489 PLANNED "negated --LITERAL" ! --LITERAL <<END
490 variable: (null)