675fc487afa15840e89790f2d94cd000b801bd9c
[reactos.git] / rostests / winetests / cmd / test_builtins.cmd.exp
1
2 @pwd@>echo Tests for cmd's builtin commands@space@
3 Tests for cmd's builtin commands
4
5 @pwd@>echo ------------ Testing 'echo' [ON] ------------@space@
6 ------------ Testing 'echo' [ON] ------------
7
8 @pwd@>echo word@space@
9 word
10
11 @pwd@>echo 'singlequotedword'@space@
12 'singlequotedword'
13
14 @pwd@>echo "doublequotedword"@space@
15 "doublequotedword"
16 at-echoed-word
17
18 @pwd@>echo "/?"@space@
19 "/?"
20
21 @pwd@>echo.
22
23
24 @pwd@>echo .@space@
25 .
26
27 @pwd@>echo.word
28 word
29
30 @pwd@>echo .word@space@
31 .word
32
33 @pwd@>echo:
34
35
36 @pwd@>echo :@space@
37 :
38
39 @pwd@>echo:word
40 word
41
42 @pwd@>echo :word@space@
43 :word
44
45 @pwd@>echo/
46
47
48 @pwd@>echo /@space@
49 /
50
51 @pwd@>echo/word
52 word
53
54 @pwd@>echo /word@space@
55 /word
56
57 @pwd@>echo off now@space@
58 off now
59
60 @pwd@>echo word@space@@space@
61 word@space@
62
63 @pwd@>echo word@space@@space@@space@
64 word@space@@space@
65
66 @pwd@>echo word@space@
67 word
68
69 @pwd@>echo@tab@word@space@
70 word
71
72 @pwd@>echo@tab@word@space@@tab@@space@
73 word@space@@tab@
74
75 @pwd@>echo@tab@word@tab@@space@@space@
76 word@tab@@space@
77
78 @pwd@>echo word@space@
79 word
80
81 @pwd@>echo@space@@tab@word@space@
82 @tab@word
83
84 @pwd@>echo@space@@space@@tab@word@space@
85 @space@@tab@word
86
87 @pwd@>echo@tab@@tab@word@space@
88 @tab@word
89
90 @pwd@>echo @tab@ on @space@@space@
91 --- @ with chains and brackets
92
93 @todo_wine@@pwd@>(echo the @ character chains until && ) && echo and can hide brackets || () ||@space@
94 @todo_wine@the @ character chains until
95 @todo_wine@we leave the current depth
96 @todo_wine@and can hide brackets
97 @todo_wine@---
98 noecho1
99 noecho2
100 echo3
101 ------------ Testing 'echo' [OFF] ------------
102 word
103 'singlequotedword'
104 "doublequotedword"
105 at-echoed-word
106 "/?"
107
108 .
109 word
110 .word
111
112 :
113 word
114 :word
115
116 /
117 word
118 /word
119 on again
120 word@space@
121 word@space@@space@
122 word
123 word
124 word@space@@tab@
125 word@tab@@space@
126 word
127 @tab@word
128 @space@@tab@word
129 @tab@word
130 ------------ Testing mixed echo modes ------------
131 @echo on
132 if 1==1 echo foo
133 if 1==1 @echo bar
134 @echo off
135 if 1==1 echo foo2
136 if 1==1 @echo bar2
137
138 @todo_wine@@pwd@>if 1 == 1 echo foo@space@
139 foo
140
141 @todo_wine@@pwd@>if 1 == 1@space@
142 bar
143 foo2
144 bar2
145 ------------ Testing parameterization ------------
146 'a', 'b', 'c'
147 '"a b c"', '', ''
148 '"a b"\c', '', ''
149 'a', '~`+', '.{}!+b'
150 'a', 'b', ''
151 '"a;b"', '', ''
152 'a', 'b', ''
153 'a[b]{c}(d)e', '', ''
154 'a', '', ''
155 second line
156 'a', 'b', 'c'
157 'a', 'b', 'c'
158 'a', 'b', ''
159 ------------ Testing rem ------------
160
161 @pwd@>rem Hello@space@
162
163 @pwd@>rem Hello@space@
164
165 @pwd@>rem Hello || foo@space@
166
167 @pwd@>rem echo lol@space@
168
169 @pwd@>rem echo foo & echo bar@space@
170
171 @pwd@>rem @tab@ Hello@space@
172
173 @pwd@>rem@tab@ Hello@space@
174
175 @pwd@>rem@tab@echo foo & echo bar@space@
176 ------------ Testing redirection operators ------------
177 --- stdout redirection
178 foo
179 foo@space@
180 foo@tab@
181 foo@space@
182 foo@tab@
183 foo7@space@@or_broken@foo@tab@
184 foo9@space@@or_broken@foo@tab@
185 foo1
186 foo11
187 foo12
188 foo13
189 foo14
190 foo15
191 --- stdout appending
192 foo
193 foo@space@
194 foob@space@
195 foob@space@
196 fooc@space@
197 foob@space@
198 fooc@space@
199 food1
200 foob@space@
201 fooc@space@
202 food1
203 food2
204 food21
205 @todo_wine@foo7@space@@space@@or_broken@not supported@space@
206 @todo_wine@foo@or_broken@not supported
207 --- redirections within IF statements
208 @todo_wine@foo1
209 -----
210 foo2
211 foo3
212 file does not exist, ok
213 foo4
214 baz5
215 baz6@space@
216 baz7
217 baz8
218 baz
219 foo@space@
220 baz
221 foo
222 A
223 B
224 C
225 ------------ Testing circumflex escape character ------------
226 hello, world
227 hello, world
228 hell^o, world
229 hell^o, world
230 helloworld
231 hello
232 world
233 hello
234
235 finished
236 baz
237 baz
238 foo | echo bar
239 foo & echo bar
240 bak &
241 baz@space@
242 0@or_broken@1
243 foo > foo
244 <
245 ffoof
246 WINE_FOO=bar | baz
247 0
248 WINE_FOO=bar ^| baz
249 bar | baz
250 0
251 ------------ Testing chains ------------
252 --- chain success
253 a1
254 a2
255 b1
256 b2
257 c1
258 @todo_wine@---
259 d1
260 d2
261 d3
262 e1
263 e2
264 e3
265 f1
266 f2
267 @todo_wine@---
268 g1
269 g2
270 g3
271 h1
272 h2
273 h3
274 i1
275 i2
276 @todo_wine@---
277 j1
278 @todo_wine@j3
279 @todo_wine@---
280 k1
281 @todo_wine@---
282 l1
283 @todo_wine@---
284 --- chain failure
285 a1
286 a2
287 b1
288 @todo_wine@---
289 c1
290 c2
291 d1
292 d2
293 d3
294 e1
295 e2
296 @todo_wine@---
297 f1
298 f2
299 f3
300 g1
301 @todo_wine@g3
302 @todo_wine@---
303 h1
304 @todo_wine@---
305 i1
306 @todo_wine@i3
307 @todo_wine@---
308 j1
309 j2
310 j3
311 k1
312 k2
313 @todo_wine@---
314 l1
315 l2
316 l3
317 --- chain brackets
318 a1
319 a2
320 a3
321 b1
322 b2
323 b3
324 c1
325 c2
326 @todo_wine@---
327 d1
328 d2
329 d3
330 e1
331 e2
332 e3
333 f1
334 f2
335 @todo_wine@---
336 g1
337 @todo_wine@---
338 h1
339 @todo_wine@---
340 i1
341 @todo_wine@---
342 j1
343 j2
344 j3
345 k1
346 k2
347 @todo_wine@---
348 l1
349 l2
350 l3
351 m1
352 @todo_wine@---
353 n1
354 @todo_wine@---
355 o1
356 @todo_wine@---
357 p1
358 p2
359 p3
360 q1
361 q2
362 @todo_wine@---
363 r1
364 r2
365 r3
366 --- chain pipe
367 @todo_wine@a@space@
368 @todo_wine@a@space@
369 ---
370 b2
371 c1
372 c3
373 d1
374 @todo_wine@---
375 e1
376 e3
377 f2
378 f3
379 g2
380 @todo_wine@---
381 h2
382 h3
383 i3
384 --- chain pipe input
385 a2:[a1,a2]
386 b3:[b2:[b1,b2],b3]@or_broken@b3:[b2:,b3]
387 c4:[c3:[c2:[c1,c2],c3],c4]@or_broken@c4:[c3:[c2:,c3],c4]@or_broken@c4:[c3:,c4]
388 d2:[d1,d2]
389 e3:[e2:[e1,e2],e3]@or_broken@e3:[e2:,e3]
390 f4:[f3:[f2:[f1,f2],f3],f4]@or_broken@f4:[f3:[f2:,f3],f4]@or_broken@f4:[f3:,f4]
391 --- chain else
392 a1
393 b2
394 @todo_wine@---
395 @todo_wine@c3
396 @todo_wine@---
397 @todo_wine@d3
398 @todo_wine@---
399 @todo_wine@---
400 @todo_wine@---
401 @todo_wine@---
402 @todo_wine@---
403 --- chain else (if true)
404 a1 else echo a2
405 b2 else echo b3
406 c1
407 c2 else echo c3
408 d1
409 @todo_wine@---
410 e1
411 e2 else echo e3
412 f3
413 g1 else echo g2
414 g3
415 h1 else echo h2
416 @todo_wine@---
417 i1 else echo i2
418 i3
419 @todo_wine@j2@space@
420 @todo_wine@---
421 k1
422 k2
423 l1
424 @todo_wine@---
425 m1
426 m2
427 n1
428 o1
429 p1
430 q1
431 --- chain else (if false)
432 @todo_wine@j3
433 ---
434 k3
435 l3
436 m3
437 n3
438 o2
439 o3
440 p2
441 @todo_wine@---
442 q2
443 q3
444 ------------ Testing 'set' ------------
445 1
446 0
447 WINE_FOOBAR not defined
448 baz
449 WINE_FOOBAR = baz
450 0
451 baz2
452 0
453 bar
454 WINE_FOOBAR= bar
455 WINE_FOOBAR = baz2
456 WINE_FOOBAR = baz2
457 WINE_FOOBAR not defined
458 1
459 bar
460 foobar
461 WINE_FOO not defined
462 WINE_BAZ=bazbaz
463 bazbaz
464 set "WINE_FOO=bar" should not include the quotes in the variable value
465 bar
466 foo
467 ''
468 'foo@space@'
469 'foo@tab@'
470 'value@space@'
471 'value'
472 'jim fred'
473 '"jim" fred'
474 'jim fred'
475 'jim'
476 'apple"banana"grape'
477 ------------ Testing variable expansion ------------
478 ~p0 should be path containing batch file
479 @path@
480 @path@
481 ~dp0 should be directory containing batch file
482 @drive@@path@
483 @drive@@path@
484 CD value @pwd@@or_broken@CD value@space@
485 %
486 P
487 P
488 S
489 P
490 PS
491 ERRORLEVEL
492 0
493 00
494 0ERRORLEVEL
495 0
496 0%
497 P0
498 0S
499 P0S
500 ------------ Testing variable substrings ------------
501 q
502 qwe
503 er
504 'ty'@or_broken@''
505 't'@or_broken@''
506 ert@or_broken@qwerty
507 e@or_broken@qwerty
508 ''@or_broken@'qwerty'
509 r@or_broken@qwerty
510 ------------ Testing variable substitution ------------
511 --- in FOR variables
512 "A B"
513 C
514 "A B"
515 C
516 'A B'@or_broken@''
517 'C'@or_broken@''
518 @drive@@path@C D@or_broken@%~ff
519 @drive@@path@E@or_broken@%~ff
520 @drive@
521 @drive@
522 @path@@or_broken@%~pd
523 @path@@or_broken@%~pd
524 L M
525 N
526 '.OOL'
527 '.TABC'
528 ''
529 @todo_wine@'@drive@@shortpath@R S'@or_broken@''
530 @todo_wine@'@drive@@shortpath@T'@or_broken@''
531 @todo_wine@'@drive@@shortpath@ABCDEFGHIJK.LMNOP'@or_broken@''
532 ''@or_broken@'%~ai'
533 ''@or_broken@'%~ai'
534 '--a------'@or_broken@'--a--------'@or_broken@'--a--c---'@or_broken@'%~ai'
535 '5'@or_broken@'%~zi'
536 ''@or_broken@'%~ti'
537 ''@or_broken@'%~ti'
538 ''@or_broken@'%~zi'
539 ''@or_broken@'%~zi'
540 @drive@@path@
541 @drive@@path@
542 @drive@
543 @drive@
544 @drive@
545 @drive@
546 ''
547 '.eh'
548 ',,,,,,,,,'
549 --- in parameters
550 "A B"
551 C
552 'A B'@or_broken@''
553 'C'@or_broken@''
554 @drive@@path@C D
555 @drive@@path@E
556 @drive@
557 @drive@
558 @path@
559 @path@
560 L M
561 N
562 '.OOL'
563 '.TABC'
564 ''
565 @todo_wine@'@drive@@shortpath@R S'@or_broken@''
566 @todo_wine@'@drive@@shortpath@T'@or_broken@''
567 @todo_wine@'@drive@@shortpath@ABCDEFGHIJK.LMNOP'@or_broken@''
568 @drive@@path@
569 @drive@@path@
570 @drive@
571 @drive@
572 @drive@
573 @drive@
574 ''
575 '.eh'@or_broken@''
576 ------------ Testing variable delayed expansion ------------
577 --- default mode (load-time expansion)
578 foo
579 !WINE_FOO!
580 foo
581 foo
582 --- runtime (delayed) expansion mode
583 foo
584 foo@or_broken@!WINE_FOO!
585 foo
586 bar@or_broken@foo
587 0
588 0@or_broken@1
589 foo
590 !WINE_FOO!
591 --- using /V cmd flag
592 foo
593 foo@or_broken@!WINE_FOO!
594 foo
595 !WINE_FOO!
596 ------------ Testing conditional execution ------------
597 --- unconditional ampersand
598 foo1
599 bar2@space@
600 foo2
601 foobar deleted
602 --- on success conditional and
603 @todo_wine@foo3 not created
604 bar4@space@
605 foo4
606 --- on failure conditional or
607 foo5
608 foo6@space@
609 @todo_wine@------------ Testing cd ------------
610 singleFile
611 Current dir: @drive@@path@foobar@or_broken@Current dir:@space@
612 @drive@@path@foobar
613 @pwd@
614 @drive@@path@foobar
615 @pwd@
616 @drive@@path@foobar
617 @pwd@
618 @pwd@
619 @pwd@
620 @drive@@path@foobar\bar bak
621 @drive@@path@foobar\bar bak
622 @drive@@path@foobar\bar bak
623 @drive@@path@foobar\bar bak
624 @drive@@path@foobar\bar bak
625 @pwd@
626 @drive@@path@foobar
627 ------------ Testing type ------------
628
629 @pwd@>type foobaz@space@
630 bar
631
632 @pwd@>echo ---@space@
633 ---
634 bar
635 ---1
636 bar
637 ---2
638 bar
639 ---3
640 ------------ Testing NUL ------------
641 bar
642 bar
643 bar
644 NUL
645 foo created
646 Passed: file size check on a.a [7]@or_broken@Skipping file size check on NT4
647 Passed: file size check on b.b [8]@or_broken@Skipping file size check on NT4
648 Passed: file size check on a.a [7]@or_broken@Skipping file size check on NT4
649 Passed: file size check on b.b [8]@or_broken@Skipping file size check on NT4
650 Passed: file size check on a.a [7]@or_broken@Skipping file size check on NT4
651 Passed: file size check on subdir\a.a [8]@or_broken@Skipping file size check on NT4
652 ------------ Testing if/else ------------
653 --- if/else should work with blocks
654 if seems to work
655 else seems to work
656 if seems not to detect /c as parameter
657 else if seems to work
658 else if seems to work
659 else if seems to work
660 --- case sensitivity with and without /i option
661 if seems to default to case sensitivity
662 if /i seems to work
663 if /I seems to work
664 --- string comparisons
665 equal
666 non equal
667 non equal
668 equal
669 --- tabs handling
670 doom
671 doom
672 doom
673 lol
674 quake
675 quake
676 quake
677 --- comparison operators
678 ------ for strings
679 LSS string can be used as operand for LSS comparison
680 floats are handled as strings
681 numbers in quotes are handled as strings
682 negative numbers as well@or_broken@NT4
683 if /i seems to work for LSS
684 A LSS B
685 A LSS AB
686 A LSS BA
687 A LSS AA
688 B LSS BA
689 AB LSS B
690 AB LSS BA
691 AA LSS B
692 AA LSS AB
693 AA LSS BA
694 b LSS B@or_broken@NT4
695 a LSS B@or_broken@NT4
696 a LSS B insensitive
697 A LSS b
698 A LSS b insensitive
699 A LEQ A
700 A LEQ B
701 A LEQ AB
702 A LEQ BA
703 A LEQ AA
704 B LEQ B
705 B LEQ BA
706 AB LEQ B
707 AB LEQ AB
708 AB LEQ BA
709 BA LEQ BA
710 AA LEQ B
711 AA LEQ AB
712 AA LEQ BA
713 AA LEQ AA
714 b LEQ B@or_broken@NT4
715 b LEQ B insensitive
716 a LEQ B@or_broken@NT4
717 a LEQ B insensitive
718 A LEQ b
719 A LEQ b insensitive
720 A EQU A
721 B EQU B
722 AB EQU AB
723 BA EQU BA
724 AA EQU AA
725 A EQU a insensitive
726 A NEQ B
727 A NEQ AB
728 A NEQ BA
729 A NEQ AA
730 B NEQ A
731 B NEQ AB
732 B NEQ BA
733 B NEQ AA
734 AB NEQ A
735 AB NEQ B
736 AB NEQ BA
737 AB NEQ AA
738 BA NEQ A
739 BA NEQ B
740 BA NEQ AB
741 BA NEQ AA
742 AA NEQ A
743 AA NEQ B
744 AA NEQ AB
745 AA NEQ BA
746 A GEQ A
747 B GEQ A
748 B GEQ B
749 B GEQ AB
750 B GEQ AA
751 AB GEQ A
752 AB GEQ AB
753 AB GEQ AA
754 BA GEQ A
755 BA GEQ B
756 BA GEQ AB
757 BA GEQ BA
758 BA GEQ AA
759 AA GEQ A
760 AA GEQ AA
761 B GTR A
762 B GTR AB
763 B GTR AA
764 AB GTR A
765 AB GTR AA
766 BA GTR A
767 BA GTR B
768 BA GTR AB
769 BA GTR AA
770 AA GTR A
771 ------ for numbers
772 negative numbers handled
773 negative numbers handled
774 octal handled
775 also in negative form
776 hexa handled
777 also in negative form
778 11 LSS 101
779 0 LSS 1
780 0 LSS 10
781 0 LSS 9
782 1 LSS 10
783 1 LSS 9
784 9 LSS 10
785 0 LEQ 0
786 0 LEQ 1
787 0 LEQ 10
788 0 LEQ 9
789 1 LEQ 1
790 1 LEQ 10
791 1 LEQ 9
792 10 LEQ 10
793 9 LEQ 10
794 9 LEQ 9
795 0 EQU 0
796 1 EQU 1
797 10 EQU 10
798 9 EQU 9
799 octal ok
800 hexa ok
801 string/hexa compare ok
802 string/hexa compare ok
803 0 NEQ 1
804 0 NEQ 10
805 0 NEQ 9
806 1 NEQ 0
807 1 NEQ 10
808 1 NEQ 9
809 10 NEQ 0
810 10 NEQ 1
811 10 NEQ 9
812 9 NEQ 0
813 9 NEQ 1
814 9 NEQ 10
815 0 GEQ 0
816 1 GEQ 0
817 1 GEQ 1
818 10 GEQ 0
819 10 GEQ 1
820 10 GEQ 10
821 10 GEQ 9
822 9 GEQ 0
823 9 GEQ 1
824 9 GEQ 9
825 1 GTR 0
826 10 GTR 0
827 10 GTR 1
828 10 GTR 9
829 9 GTR 0
830 9 GTR 1
831 ------ for numbers and stringified numbers
832 strings and integers not equal
833 strings and integers not equal
834 foo
835 "10" GEQ "1"
836 '1' GEQ 1@or_broken@NT4
837 1 GEQ "1"
838 "1" GEQ "1"
839 '1' GEQ "1"
840 "10" GEQ "1"
841 non NT4@or_broken@1 GEQ '1'
842 '1' GEQ '1'
843 foo
844 1 GEQ "10"
845 foo
846 '1' GEQ "10"
847 "10" GEQ "10"
848 --- unconditional ampersand after if one line
849 1@space@
850 2@space@
851 3 else echo 4
852 ---
853 x@space@
854 ---
855 x@space@
856 ---
857 x@space@
858 ---
859 x@space@
860 ---
861 ------------ Testing for ------------
862 --- plain FOR
863 A
864 B
865 C
866 %I
867 %I
868 %I
869 %j
870 %j
871 %j
872 A
873 B
874 C
875 1
876 4
877 1
878 A
879 B
880 C
881 X
882 X2
883 X3
884 foo
885 M
886 X
887 M
888 N
889 O
890 `echo
891 A
892 B`
893 'echo
894 A
895 B'
896 "echo A B"
897 "A B"
898 C
899 --- imbricated FORs
900 X Y
901 X Y
902 A C
903 A D
904 B C
905 B D
906 A C
907 A D
908 B C
909 B D
910 --- basic wildcards
911 bazbaz
912 --- for /d
913 baz@space@
914 foo@space@
915 bar@space@
916 PASSED
917 xxx - Should be xxx
918 Expected second line
919 --- for /R
920 Plain directory enumeration
921 Plain directory enumeration from provided root
922 File enumeration
923 File enumeration from provided root
924 Mixed enumeration
925 Mixed enumeration from provided root
926 With duplicates enumeration
927 Strip missing wildcards, keep unwildcarded names
928 for /R passed
929 --- Complex wildcards unix and windows slash
930 Windows slashes, valid path
931 ASIS: foobar\baz\bazbaz
932 WC : foobar\baz\bazbaz
933 Windows slashes, invalid path
934 ASIS: foobar\jim\bazbaz
935 Unix slashes, valid path
936 ASIS: foobar/baz/bazbaz
937 WC : bazbaz
938 Unix slashes, invalid path
939 ASIS: foobar/jim/bazbaz
940 Done
941 --- for /L
942 1
943 3
944 5
945 1
946 3
947 5
948 0
949 2
950 1
951 -1
952 ErrorLevel 0
953 ErrorLevel 0
954 1
955 2
956 3
957 4
958 1
959 3
960 4
961 3
962 2
963 1
964 4
965 2
966 0
967 1
968 1
969 -1
970 -1
971 1
972 3
973 --- set /a
974 ------ individual operations
975 WINE_foo correctly 3
976 WINE_foo correctly -1
977 WINE_foo correctly 3
978 WINE_foo correctly 6
979 WINE_foo correctly 10
980 WINE_foo correctly 4
981 WINE_foo correctly 4
982 WINE_foo correctly -4
983 WINE_foo correctly 0
984 WINE_foo correctly 2
985 WINE_foo correctly 2
986 WINE_foo correctly -2
987 WINE_foo correctly 1
988 WINE_foo correctly 4
989 WINE_foo correctly 0@or_broken@ERROR: WINE_foo incorrectly 1073741824 [0]
990 WINE_foo correctly 0@or_broken@ERROR: WINE_foo incorrectly -1073741824 [0]
991 WINE_foo correctly -4
992 WINE_foo correctly 9
993 WINE_foo correctly 2
994 WINE_foo correctly 0
995 WINE_foo correctly -1
996 WINE_foo correctly -3
997 WINE_foo correctly 0
998 WINE_foo correctly 1
999 WINE_foo correctly 1
1000 WINE_foo correctly 4
1001 WINE_foo correctly 1
1002 WINE_foo correctly 5
1003 WINE_foo correctly 5
1004 WINE_foo correctly 7
1005 WINE_foo correctly 5
1006 WINE_foo correctly 5
1007 WINE_foo correctly 5
1008 WINE_foo correctly 4
1009 WINE_foo correctly 6
1010 WINE_foo correctly 1
1011 WINE_foo correctly 4
1012 ------ precedence and grouping
1013 WINE_foo correctly 10
1014 WINE_foo correctly 18@or_broken@ERROR: WINE_foo incorrectly [18]
1015 WINE_foo correctly 2@or_broken@ERROR: WINE_foo incorrectly 0 [2]
1016 WINE_foo correctly 2@or_broken@ERROR: WINE_foo incorrectly [2]
1017 WINE_foo correctly 0@or_broken@ERROR: WINE_foo incorrectly 4 [0]
1018 WINE_foo correctly 4@or_broken@ERROR: WINE_foo incorrectly [4]
1019 WINE_foo correctly 3@or_broken@ERROR: WINE_foo incorrectly [3]
1020 WINE_foo correctly 3@or_broken@ERROR: WINE_foo incorrectly [3]
1021 ------ octal and hexadecimal
1022 WINE_foo correctly 18
1023 WINE_foo correctly 18
1024 WINE_foo correctly 15
1025 WINE_foo correctly 3
1026 ------ variables
1027 WINE_foo correctly 3@or_broken@ERROR: WINE_foo incorrectly 0 [3]
1028 WINE_bar correctly 3@or_broken@ERROR: WINE_bar incorrectly [3]
1029 WINE_foo correctly 3@or_broken@ERROR: WINE_foo incorrectly 0 [3]
1030 WINE_bar correctly 4@or_broken@ERROR: WINE_bar incorrectly [4]
1031 WINE_foo correctly 3@or_broken@ERROR: WINE_foo incorrectly 0 [3]
1032 WINE_bar correctly 3@or_broken@ERROR: WINE_bar incorrectly [3]
1033 WINE_baz correctly 4@or_broken@ERROR: WINE_baz incorrectly [4]
1034 WINE_foo correctly 9@or_broken@ERROR: WINE_foo incorrectly 3 [9]
1035 WINE_bar correctly 9@or_broken@ERROR: WINE_bar incorrectly 3 [9]
1036 WINE_foo correctly 0
1037 WINE_foo correctly 4
1038 WINE_bar correctly 4
1039 WINE_foo correctly -7@or_broken@ERROR: WINE_foo incorrectly 4 [-7]
1040 WINE_bar correctly -7@or_broken@ERROR: WINE_bar incorrectly 4 [-7]
1041 WINE_foo correctly -1@or_broken@ERROR: WINE_foo incorrectly -7 [-1]
1042 WINE_bar correctly -1@or_broken@ERROR: WINE_bar incorrectly -7 [-1]
1043 WINE_foo correctly 5@or_broken@ERROR: WINE_foo incorrectly 0 [5]
1044 WINE_bar correctly 1@or_broken@ERROR: WINE_bar incorrectly [1]
1045 WINE_foo correctly 4@or_broken@ERROR: WINE_foo incorrectly 1 [4]
1046 WINE_bar correctly 4@or_broken@ERROR: WINE_bar incorrectly 1 [4]
1047 WINE_foo correctly 1@or_broken@ERROR: WINE_foo incorrectly 4 [1]
1048 WINE_bar correctly 1@or_broken@ERROR: WINE_bar incorrectly 4 [1]
1049 WINE_foo correctly 0@or_broken@ERROR: WINE_foo incorrectly 1 [0]
1050 WINE_bar correctly 0@or_broken@ERROR: WINE_bar incorrectly 1 [0]
1051 WINE_foo correctly 5@or_broken@ERROR: WINE_foo incorrectly 0 [5]
1052 WINE_bar correctly 7@or_broken@ERROR: WINE_bar incorrectly [7]
1053 WINE_foo correctly 5@or_broken@ERROR: WINE_foo incorrectly 0 [5]
1054 WINE_bar correctly 7@or_broken@ERROR: WINE_bar incorrectly [7]
1055 WINE_foo correctly 19@or_broken@ERROR: WINE_foo incorrectly 0 [19]
1056 WINE_bar correctly 3@or_broken@ERROR: WINE_bar incorrectly [3]
1057 WINE_baz correctly 4
1058 --- quotes
1059 WINE_foo correctly 1
1060 WINE_foo correctly 1
1061 WINE_foo correctly 1
1062 WINE_bar correctly 2
1063 WINE_foo correctly 1
1064 WINE_bar correctly 2
1065 WINE_foo correctly 1
1066 WINE_bar correctly 2
1067 WINE_foo correctly 1
1068 WINE_bar correctly 2
1069 WINE_foo correctly 1
1070 WINE_bar correctly 2
1071 WINE_baz correctly 3
1072 WINE_foo correctly 1
1073 WINE_bar correctly 2
1074 WINE_baz correctly 3
1075 WINE_foo correctly 1
1076 WINE_bar correctly 2
1077 WINE_baz correctly 3
1078 WINE_foo correctly 1
1079 WINE_bar correctly 2
1080 WINE_baz correctly 3
1081 WINE_foo correctly 1
1082 WINE_bar correctly 2
1083 WINE_baz correctly 3
1084 WINE_foo correctly 1
1085 WINE_foo correctly 1
1086 WINE_bar correctly 5
1087 WINE_baz correctly 2
1088 WINE_foo correctly 18
1089 WINE_foo correctly 3
1090 WINE_bar correctly 7@or_broken@ERROR: WINE_bar incorrectly 4 [7]
1091 --- whitespace are ignored between double char operators
1092 WINE_foo correctly 10@or_broken@ERROR: WINE_foo incorrectly 4 [10]
1093 WINE_bar correctly 50@or_broken@ERROR: WINE_bar incorrectly 5 [50]
1094 WINE_foo correctly 772@or_broken@ERROR: WINE_foo incorrectly 4 [772]
1095 WINE_bar correctly 7720@or_broken@ERROR: WINE_bar incorrectly 5 [7720]
1096 --- invalid operator sequence
1097 4
1098 4
1099 ----- negative prefix
1100 WINE_foo correctly -1
1101 WINE_foo correctly 1@or_broken@ERROR: WINE_foo incorrectly [1]
1102 WINE_foo correctly 6
1103 WINE_foo correctly 0
1104 WINE_foo correctly 6
1105 WINE_foo correctly 2
1106 WINE_foo correctly 0@or_broken@ERROR: WINE_foo incorrectly [0]
1107 WINE_foo correctly 5
1108 WINE_foo correctly 3@or_broken@ERROR: WINE_foo incorrectly -5 [3]
1109 ----- assignment tests involving the end destination
1110 WINE_foo correctly 11@or_broken@ERROR: WINE_foo incorrectly 3 [11]
1111 WINE_foo correctly 6@or_broken@ERROR: WINE_foo incorrectly 2 [6]
1112 WINE_bar correctly 9@or_broken@ERROR: WINE_bar incorrectly [9]
1113 WINE_foo correctly 6@or_broken@ERROR: WINE_foo incorrectly 2 [6]
1114 WINE_bar correctly 10@or_broken@ERROR: WINE_bar incorrectly [10]
1115 WINE_baz correctly 7@or_broken@ERROR: WINE_baz incorrectly [7]
1116 WINE_foo correctly 7@or_broken@ERROR: WINE_foo incorrectly 2 [7]
1117 WINE_bar correctly 7@or_broken@ERROR: WINE_bar incorrectly 2 [7]
1118 ----- equal precedence on stack
1119 WINE_foo correctly 1@or_broken@ERROR: WINE_foo incorrectly 0 [1]
1120 WINE_foo correctly 0
1121 WINE_foo correctly 1@or_broken@ERROR: WINE_foo incorrectly [1]
1122 WINE_foo correctly 0@or_broken@ERROR: WINE_foo incorrectly [0]
1123 WINE_foo correctly 1@or_broken@ERROR: WINE_foo incorrectly [1]
1124 WINE_foo correctly -1@or_broken@ERROR: WINE_foo incorrectly [-1]
1125 WINE_foo correctly -1@or_broken@ERROR: WINE_foo incorrectly [-1]
1126 WINE_foo correctly 1@or_broken@ERROR: WINE_foo incorrectly [1]
1127 WINE_foo correctly 0@or_broken@ERROR: WINE_foo incorrectly [0]
1128 WINE_foo correctly -1
1129 WINE_foo correctly 0@or_broken@ERROR: WINE_foo incorrectly -1 [0]
1130 WINE_foo correctly 0
1131 WINE_foo correctly 1@or_broken@ERROR: WINE_foo incorrectly 0 [1]
1132 WINE_foo correctly -1@or_broken@ERROR: WINE_foo incorrectly 0 [-1]
1133 WINE_foo correctly 25@or_broken@ERROR: WINE_foo incorrectly 20 [25]
1134 WINE_foo correctly 20
1135 WINE_foo correctly 1
1136 WINE_foo correctly 4
1137 WINE_foo correctly 7
1138 WINE_foo correctly 8@or_broken@ERROR: WINE_foo incorrectly 4 [8]
1139 WINE_foo correctly 6@or_broken@ERROR: WINE_foo incorrectly 5 [6]
1140 WINE_bar correctly 6@or_broken@ERROR: WINE_bar incorrectly 5 [6]
1141 --- for /F
1142 ------ string argument
1143 a
1144 a@or_broken@no output
1145 a
1146 a@or_broken@no output
1147 a
1148 a@or_broken@no output
1149 a
1150 a@or_broken@no output
1151 a
1152 a@or_broken@no output
1153 ------ fileset argument
1154 --------- basic blank handling
1155 a
1156 a
1157 a
1158 a
1159 a
1160 b
1161 --------- multi-line with empty lines
1162 a
1163 b
1164 c
1165 --------- multiple files
1166 a
1167 b
1168 c
1169 q
1170 kkk
1171 q
1172 kkk
1173 a
1174 b
1175 c
1176 ------ command argument
1177 Passed1@or_broken@Missing functionality - Broken1
1178 Passed2@or_broken@Missing functionality - Broken2
1179 Passed3@or_broken@Missing functionality - Broken3
1180 ------ eol option
1181 and@or_broken@Broken NT4 functionality1
1182 Line@or_broken@Broken NT4 functionality2
1183 Line@or_broken@Broken NT4 functionality3
1184 ad
1185 z@y
1186 a|d
1187 no output
1188 no output
1189 ------ delims option
1190 a
1191 a@space@
1192 a d
1193 a
1194 C r
1195 foo bar baz
1196 c:\
1197 ------ skip option
1198 c
1199 no output
1200 no output
1201 c
1202 c
1203 no output
1204 ------ tokens= option
1205 h=%h i=a j=%j k=%k l=%l m=%m o=%o
1206 h=%h i=b j=%j k=%k l=%l m=%m o=%o
1207 h=%h i=a j=c k=e l=f m=g o=%o
1208 h=%h i=a j=e k=f g l=%l m=%m o=%o
1209 h=%h i=f j=i k=j k l m n o p q r s t u v w x y z l=%l m=%m o=%o
1210 h=%h i=f j=i k=j k l m n;;== o p q r s t u v w x y z l=%l m=%m o=%o
1211 h=%h i=a j=b k=c l=d e f g m=%m n=%n o=%o
1212 h=%h i=a j=b k=c l=d e f g m=%m n=%n o=%o
1213 h=%h i=a j=b k= l= m=%m n=%n o=%o
1214 h=%h i=a j=e k=y l=z A B C D E F G H I J K L M N O P Q R S T U V W X Y Z m=%m n=%n o=%o
1215 h=%h i=a j=b k= l= m= n=%n o=%o
1216 h=%h i=a j=b k= l= m= n= o=%o
1217 u=a v=b w=c x=d y=e z=f A=%A a=%a
1218 @todo_wine@U=a V=b W=c X=d Y=e Z=f A=%A a=m
1219 h=%h i=a j=b k=c l=e m=%m o=%o@or_broken@h=%h i=a j=b k=c l=e m= o=%o
1220 h=%h i=e j=%j k=%k l=%l m=%m o=%o
1221 h=%h i=a j=b k=c l=d e f g m=%m n=%n o=%o@or_broken@h=%h i=a j=b k=c l=d e f g m= n=%n o=%o
1222 h=%h i=a j=c k= l= m=%m n=%n o=%o@or_broken@h=%h i=a j=c k= l= m= n=%n o=%o
1223 h=%h i=b j=c k= l= m=%m n=%n o=%o@or_broken@h=%h i=b j=c k= l= m= n=%n o=%o
1224 h=%h i=b j=c k= l= m=%m n=%n o=%o@or_broken@h=%h i=b j=c k= l= m= n=%n o=%o
1225 ------------ Testing del ------------
1226 deleting 'file'
1227 errorlevel is 0, good
1228 successfully deleted 'file'
1229 attempting to delete 'file', even though it is not present
1230 errorlevel is 0, good
1231 ------------ Testing del /a ------------
1232 not-r.test not found after delete, good
1233 r.test found before delete, good
1234 r.test not found after delete, good
1235 ------------ Testing del /q ------------
1236 del /q * succeeded on file1
1237 del /q * succeeded on file2.dat
1238 ------------ Testing del /s ------------
1239 ------------ Testing rename ------------
1240 --- ren and rename are synonymous
1241 foo renamed to bar
1242 bar renamed to foo
1243 --- name collision
1244 foo
1245 bar
1246 --- rename read-only files
1247 read-only file renamed
1248 --- rename directories
1249 dir renamed
1250 read-only dir renamed
1251 --- rename in other directory
1252 rename impossible in other directory
1253 original file still present
1254 ------------ Testing move ------------
1255 --- file move
1256 file move succeeded
1257 @todo_wine@file move with overwrite succeeded@or_broken@file overwrite impossible!
1258 @todo_wine@bar@or_broken@baz
1259 read-only files are moveable
1260 file moved in subdirectory
1261 moving a file to itself is a no-op@or_broken@moving a file to itself should be a no-op!
1262 ErrorLevel: 0@or_broken@ErrorLevel: 1
1263 --- directory move
1264 simple directory move succeeded
1265 moving a directory to itself gives error; errlevel 1
1266 ------ dir in dir move
1267 foo
1268 bar2
1269 foo2
1270 ------------ Testing mkdir ------------
1271 --- md and mkdir are synonymous
1272 0
1273 0
1274 --- creating an already existing directory/file must fail
1275 1
1276 1
1277 --- multilevel path creation
1278 0
1279 0
1280 0
1281 0
1282 0
1283 1
1284 0
1285 0
1286 --- trailing backslashes
1287 0
1288 dir created
1289 0
1290 --- invalid chars
1291 mkdir ? gives errorlevel 1
1292 mkdir ?\foo gives errorlevel 1
1293 mkdir foo\? gives errorlevel 1
1294 ok, foo created
1295 mkdir foo\bar\? gives errorlevel 1
1296 ok, foo\bar created
1297 --- multiple directories at once
1298 foo created
1299 bar created
1300 foobar created
1301 bar\baz created
1302 bazbaz created
1303 zabzab created
1304 mkdir foo\* errorlevel 1
1305 ok, foo created
1306 ------------ Testing rmdir ------------
1307 0
1308 dir removed
1309 0
1310 dir removed
1311 0
1312 0
1313 file not removed
1314 0
1315 non-empty dir not removed
1316 0
1317 non-empty dir not removed
1318 recursive rmdir succeeded
1319 recursive rmdir succeeded
1320 foo removed
1321 bar removed
1322 foobar removed
1323 bar\baz removed
1324 ------------ Testing pushd/popd ------------
1325 @pwd@
1326 --- popd is no-op when dir stack is empty
1327 @pwd@
1328 --- pushing non-existing dir
1329 @pwd@
1330 --- basic behaviour
1331 @drive@@path@foobar
1332 @pwd@
1333 @drive@@path@foobar\baz
1334 @drive@@path@foobar
1335 @drive@@path@foobar
1336 @pwd@
1337 @drive@@path@foobar
1338 @pwd@
1339 ------------ Testing attrib ------------
1340 A @drive@@path@foobar\foo@or_broken@A @drive@@path@foobar\foo@or_broken@A I @drive@@path@foobar\foo
1341 --- read-only attribute
1342 A R @drive@@path@foobar\foo@or_broken@A R @drive@@path@foobar\foo@or_broken@A R I @drive@@path@foobar\foo
1343 foo
1344 foo original contents
1345 Read-only file not deleted
1346 Read-only file forcibly deleted
1347 --- recursive behaviour
1348 A @drive@@path@foobar\baz\level2@or_broken@A @drive@@path@foobar\baz\level2@or_broken@A I @drive@@path@foobar\baz\level2
1349 A R @drive@@path@foobar\level1@or_broken@A R @drive@@path@foobar\level1@or_broken@A R I @drive@@path@foobar\level1
1350 A R @drive@@path@foobar\baz\level2@or_broken@A R @drive@@path@foobar\baz\level2@or_broken@A R I @drive@@path@foobar\baz\level2
1351 A @drive@@path@foobar\bar@or_broken@A @drive@@path@foobar\bar@or_broken@A I @drive@@path@foobar\bar
1352 --- folders processing
1353 @drive@@path@foobar@or_broken@ @drive@@path@foobar@or_broken@ I @drive@@path@foobar
1354 @todo_wine@ R @drive@@path@foobar\baz@or_broken@ R @drive@@path@foobar\baz@or_broken@ @drive@@path@foobar\baz@or_broken@ R I @drive@@path@foobar\baz
1355 A @drive@@path@foobar\baz\toto@or_broken@A @drive@@path@foobar\baz\toto@or_broken@A I @drive@@path@foobar\baz\toto
1356 toto
1357 lulu
1358 file created in read-only dir
1359 ------------ Testing assoc ------------
1360 --- setting association
1361 ---
1362 .foo=bar
1363 .foo=bar
1364 +++
1365 .foo=bar
1366 --- resetting association
1367 ---
1368 +++
1369 ---
1370 ------------ Testing ftype ------------
1371 --- setting association
1372 ---
1373 footype=foo_opencmd
1374 .foo=footype
1375 footype=foo_opencmd
1376 +++
1377 footype=foo_opencmd
1378 --- resetting association
1379 @todo_wine@original value@or_broken@buggyXP@or_broken@!WINE_FOO!
1380 ------------ Testing CALL ------------
1381 --- external script
1382 foo@space@
1383 foo 8
1384 foo@space@@space@
1385 foo bar@space@
1386 foo ""@space@
1387 "" bar@space@
1388 foo ''@space@
1389 '' bar@space@
1390 --- internal routines
1391 bar :testRoutine
1392 foo@space@
1393 foo bar
1394 foo ""
1395 "" bar
1396 foo ''
1397 '' bar
1398 --- with builtins
1399 0
1400 foo created
1401 Should expand foobaz
1402 batfile
1403 robinfile
1404 1
1405 1
1406 non-builtin dir
1407 Line one
1408 Line two
1409 Get if
1410 ... and else!
1411 passed
1412 ------------ Testing SHIFT ------------
1413 'p1' 'p2' 'p3' 'p4' 'p5'
1414 'p2' 'p3' 'p4' 'p5' ''
1415 'p3' 'p4' 'p5' '' ''
1416 'p3' 'p5' '' '' ''
1417 'p3' 'p5' '' '' ''
1418 'p5' '' '' '' ''
1419 ------------ Testing cmd invocation ------------
1420 --- a batch file can delete itself
1421 file correctly deleted
1422 --- a batch file can alter itself
1423 bar
1424 ---------- Testing copy
1425 Passed: Found expected dummy.file
1426 Passed: Found expected dir1\file1
1427 Passed: Found expected dir1\file1
1428 Passed: Found expected dir1\file99
1429 Passed: Found expected file1
1430 Passed: Did not find dir2
1431 Passed: Did not find dir2\file1
1432 Passed: Found expected dir1\file1
1433 Passed: Found expected dir1\file2
1434 Passed: Found expected dir1\file3
1435 Passed: Found expected dir1\file1
1436 Passed: Found expected dir1\file2
1437 Passed: Found expected dir1\file3
1438 Passed: Found expected file1
1439 Passed: Found expected file2
1440 Passed: Found expected file3
1441 Passed: Did not find dir2
1442 Passed: Did not find dir2\file1
1443 Passed: Did not find dir2\file2
1444 Passed: Did not find dir2\file3
1445 Passed: Found expected testfile
1446 Passed: Found expected testfile
1447 Passed: Found expected testfile
1448 Passed: Found expected testfile
1449 Passed: Found expected testfile
1450 Passed: Found expected dir1\fred
1451 Passed: Found expected dir1\fred
1452 Passed: Found expected fred
1453 Passed: Found expected fred
1454 Passed: file size check on file1 [5]@or_broken@Skipping file size check on NT4
1455 Passed: file size check on file2 [8]@or_broken@Skipping file size check on NT4
1456 Passed: file size check on file3 [11]@or_broken@Skipping file size check on NT4
1457 Passed: file size check on file1_default [5]@or_broken@Skipping file size check on NT4
1458 Passed: file size check on file1_default2 [5]@or_broken@Skipping file size check on NT4
1459 Passed: file size check on file1_plus_eof [6]@or_broken@Skipping file size check on NT4
1460 Passed: file size check on file2_plus_eof [9]@or_broken@Skipping file size check on NT4
1461 Passed: file size check on file3_plus_eof [12]@or_broken@Skipping file size check on NT4
1462 Passed: file size check on file12_plus_eof [14]@or_broken@Skipping file size check on NT4
1463 Passed: file size check on file12_no_eof [13]@or_broken@Skipping file size check on NT4
1464 Passed: file size check on file12_eof2 [14]@or_broken@Skipping file size check on NT4
1465 Passed: file size check on file1 [24]@or_broken@Skipping file size check on NT4
1466 Passed: file size check on file2 [16]@or_broken@Skipping file size check on NT4
1467 Passed: file size check on file3 [13]@or_broken@Skipping file size check on NT4
1468 Passed: file size check on file1_binary_srccopy [6]@or_broken@Skipping file size check on NT4
1469 Passed: file size check on file1_ascii_srccopy [5]@or_broken@Skipping file size check on NT4
1470 Passed: file size check on file123_default_copy [25]@or_broken@Skipping file size check on NT4
1471 Passed: file size check on file123_ascii_copy [25]@or_broken@Skipping file size check on NT4
1472 Passed: file size check on file123_binary_copy [27]@or_broken@Skipping file size check on NT4
1473 Passed: file size check on file123_mixed_copy1 [26]@or_broken@Skipping file size check on NT4
1474 Passed: file size check on file123_mixed_copy2 [27]@or_broken@Skipping file size check on NT4
1475 Passed: file size check on file123_mixed_copy3 [26]@or_broken@Skipping file size check on NT4
1476 Passed: file size check on file123_mixed_copy4 [25]@or_broken@Skipping file size check on NT4
1477 Passed: file size check on file123_mixed_copy5 [28]@or_broken@Skipping file size check on NT4
1478 Passed: file size check on file123_mixed_copy6 [19]@or_broken@Skipping file size check on NT4
1479 Passed: file size check on file123_mixed_copy7 [6]@or_broken@Skipping file size check on NT4
1480 Passed: file size check on file123_mixed_copy8 [7]@or_broken@Skipping file size check on NT4
1481 Passed: errorlevel invalid check 1
1482 Passed: Did not find dir1\file1
1483 Passed: errorlevel invalid check 2
1484 Passed: errorlevel invalid check 3
1485 ------------ Testing setlocal/endlocal ------------
1486 --- enable/disable extensions
1487 @todo_wine@ErrLev:@space@
1488 ErrLev: 0
1489 ErrLev: 0
1490 @todo_wine@ErrLev:@space@@or_broken@ErrLev: 0
1491 ErrLev: 0
1492 --- setlocal with corresponding endlocal
1493 globalval
1494 localval
1495 @drive@@path@foobar\foobar2
1496 globalval
1497 @drive@@path@foobar
1498 globalval
1499 @drive@@path@foobar
1500 --- setlocal with no corresponding endlocal
1501 globalval
1502 localval
1503 @drive@@path@foobar\foobar2
1504 globalval
1505 @drive@@path@foobar
1506 --- setlocal within same batch program
1507 Var1 ok 1
1508 Var2 ok 2
1509 Var3 ok 3
1510 Directory is ok 1
1511 Var1 ok 1
1512 Var2 ok 2
1513 Var3 ok 3
1514 Directory is ok 2
1515 Var1 ok 1
1516 Var2 ok 2
1517 Var3 ok 3
1518 Directory is ok 3
1519 --- Mismatched set and end locals
1520 --- Extra setlocal in called batch
1521 value2
1522 2set1endvalue1
1523 @drive@@path@foobar\foodir3
1524 Finished:
1525 value2
1526 @drive@@path@foobar\foodir2
1527 value1
1528 @drive@@path@foobar
1529 --- Extra endlocal in called batch
1530 value2
1531 value2
1532 @drive@@path@foobar\foodir2
1533 value2
1534 @drive@@path@foobar\foodir2
1535 Finished:
1536 value2
1537 @drive@@path@foobar\foodir2
1538 value1
1539 @drive@@path@foobar
1540 --- endlocal in called function rather than batch pgm is ineffective
1541 2
1542 2
1543 1
1544 2
1545 1
1546 2
1547 1
1548 1
1549 ------------ Testing Errorlevel ------------
1550 9009
1551 1
1552 errorlevel just right, good
1553 errorlevel with leading zero just right, good
1554 errorlevel with negative number OK
1555 abc0def@or_broken@abc1def
1556 errorlevel zero, good@or_broken@errorlevel nonzero, bad
1557 7 should be 7
1558 7 should still be 7
1559 ------------ Testing GOTO ------------
1560 goto with no leading space worked
1561 goto with colon and no leading space worked
1562 goto with a leading space worked
1563 goto with a leading tab worked
1564 goto with a following space worked
1565 goto with following amphersands worked
1566 goto with redirections worked
1567 Ignoring double colons worked
1568 label with mixed whitespace and no echo worked
1569 Correctly ignored trailing information
1570 ------------ Testing PATH ------------
1571 PATH=original
1572 PATH=try2
1573 PATH=try3
1574 ------------ Testing combined CALLs/GOTOs ------------
1575 world
1576 cheball
1577 barbare
1578 bar
1579 foo
1580 baz
1581 cheball
1582 barbare