More test commits.
[exim.git] / test / stdout / 0002
CommitLineData
54c5ebb1
PH
1>
2> # These expansions can test variables in the configuration, but as there
3> # is no message being processed, there is no message-related data. But
4> # that of course gets tested in plenty of other places.
5>
6> # Some fixed variables
7>
8> exim_path: TESTSUITE/eximdir/exim
9> primary_hostname: myhost.test.ex
10> primary_hostname: myhost.test.ex
11> qualify_domain: myhost.test.ex
12> bounce_return_size_limit: 102400
13> spool_directory: TESTSUITE/spool
14> Failed: unknown variable in "${unknown}"
15> h_subject: (should be empty)
16> h_subject: (should be empty)
17> Failed: unknown expansion operator "header_subject"
18>
19> # $message_headers should be empty
20> message_headers: ><
21>
22> # Continuation
23> xy
24> xy
25>
26> # Overlong names and overbig numbers
27>
28> Failed: unknown variable name "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa"
29> Failed: unknown variable in "${aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa}"
30> +
31> +
32>
33> # Operators
34>
35> addrss: local-part@dom.ain
36> addrss: local-part@dom.ain
37> domain: dom.ain
38> domain: dom.ain
39> escape: B7\267F2\362
40> eval: 2
41> eval: 7
42> eval: 9
43> eval: 4
44> eval: 6
45> eval: 42
46> Failed: error in expression evaluation: expecting number or opening parenthesis (after processing "")
47> eval: -2
48> eval: 1
49> eval: 1
50> Failed: error in expression evaluation: expecting closing parenthesis (after processing "-2 - (-3")
51> Failed: error in expression evaluation: expecting + or - (after processing "-2 - -3")
52> eval: 1
53> eval: -5
54> Failed: error in expression evaluation: expecting number or opening parenthesis (after processing "-2 -")
55> eval: 40962
56> eval: 63
57> Failed: error in expression evaluation: expecting + or - (after processing "0")
58> eval10: 77
59> eval10: 8
60> expand: $primary_hostname myhost.test.ex
61> hash: jmg monty fbWx
62> hash: abcX abX aX X
63> hex2b64:EjRWeA==
64> hex2b64:q83v
65> hex2b64:q83v
66> hex2b64:Gis8TV5v
67> Failed: "1a2b3c4d5e6" contains an odd number of characters
68> Failed: "1a2b3c4d5e6g" is not a hex string
69> hex2b64:MPPJPkZDbetYunCBao7BJA==
70> hex2b64:ztcfpyNSMb7Tg/rP3EHE3cwi7PE=
71>
72> The base62 operator is actually a base36 operator in the Darwin and Cygwin
73> environments. Write cunning tests that produce the same output in both cases,
74> while doing a reasonable check.
75>
76> base62: OK
77> base62d: OK
78> base62d: OK
79> Failed: argument for base62 operator is "12345x", which is not a decimal number
80> Failed: argument for base62d operator is "0003D7.", which is not a base 36/62 number
81>
82> hmac: dd97e3ba5d1a61b5006108f8c8252953
83> hmac: 0210cf9d274b53f1550f657c378b29e8bfed1064
84> md5: 77add1d5f41223d5582fca736a5cb335
85> sha1: DA39A3EE5E6B4B0D3255BFEF95601890AFD80709
86> sha1: A9993E364706816ABA3E25717850C26C9CD0D89D
87> mask: 192.168.10.192/28
88> mask: 192.168.10.206/32
89> Failed: mask value too big in "192.168.10.206/33"
90> mask: 0.0.0.0/0
91> Failed: missing mask value in "192.168.10.206"
92> Failed: "a.b.c.d" is not an IP address
93> nhash: 19 0/61
94> lc/uc: the quick BROWN FOX
95> length: The quick abc
96> lclpt: local-part
97> lclpt: local-part
98> quote: aZ09_.-Q "ab*cd" "abcd\"ef"
99> quote: "nl(\n)"
100> quote: "cr(\r)"
101> quote: "tab( )"
102> quote: "xff()"
103> quote: Empty>""<
104> quote_local_part: abcd
105> quote_local_part: O'Reilly
106> quote_local_part: "a space"
107> quote_local_part: ".something"
108> quote_local_part: "something."
109> quote_local_part: joe.bloggs
110> quote_local_part: a!b
111> quote_local_part: "x@y"
112> quote_local_part: ab*cd
113> quote_local_part: "x:y"
114> quote_local_part: "abcd\"ef"
115> quote_local_part: ""
116> rxquote:aZ09\_\,\-Q ab\*cd abcd\"ef
117> substr: ba 34 1
118> substr: barb rhuba
119> substr:
120> substr:
121> str2b64:YWJjZA==
122> str2b64:VGhlIHF1aWNrIGJyb3duIAogZm94
123> strlen: 0
124> strlen: 1
125> strlen: 8
126> time_interval: 0s
127> time_interval: 44s
128> time_interval: 1w4d13h46m39s
129> Failed: string "-1" is not a positive number in "time_interval" operator
130> Failed: string "rhubarb" is not a positive number in "time_interval" operator
131>
132> # stat is a bit tricky, but some of the fields of the aux-var directory
133> # should be the same on all systems
134>
135> stat: 40755
136> stat: drwxr-xr-x
137> Failed: stat(/a/non/existent/file) failed: No such file or directory
138>
139> # "Operators" that have expanded arguments
140>
141> hash: jmg monty fbWx
142> hash: abcX abX aX X
143> nhash: 19 0/61
144> length: The quick abc
145> substr: ba 34 1
146> substr:
147>
148> # Error forms
149>
150> Failed: missing or misplaced { or }
151> Failed: "nonnumber" is not a number (in "hash" expansion)
152> Failed: Too many arguments for "hash" (max is 3)
153> Failed: "-2" is not a positive number (in "substr" expansion)
154>
155> # Skipped operators
156>
157> addrss: NO
158> domain: NO
159> escape: NO
160> expand: NO
161> hash: NO
162> md5: NO
163> mask: NO
164>
165> # Conditions
166>
167> 2=2: y
168> 2==2: y
169> 3=2: n
170> 2==3: n
171> !2=2: n
172> !2==2: n
173> !3=2: y
174> !2==3: y
175> 2>3: n
176> 3>3: n
177> 4>3: y
178> 2>=3: n
179> 3>=3: y
180> 4>=3: y
181> 2<3: y
182> 3<3: n
183> 4<3: n
184> 2<=3: y
185> 3<=3: y
186> 4<=3: n
187> 5<=3: n
188>
189> 5>3k: n
190> 5>3m: n
191> Failed: "3z " is not a number
192> Failed: "a" is not a number
193>
194> def:y y
195> def:n n
196> Failed: unknown variable "post" after "def:"
197> def:h_f n
198> def:h_f n
199> Failed: missing or misplaced { or }
200>
201> exists: y
202> exists: n
203>
204> eq: y
205> eq: n
206> !eq: n
207> !eq: y
208>
209> eqi: y
210> eqi: y
211> eqi: n
212> !eqi: n
213> !eqi: n
214> !eqi: y
215>
216> lt: y
217> lti: n
218> le: y
219> lei: y
220> gt: n
221> gti: n
222> ge: n
223> gei: y
224>
225> isip: y 1.2.3.4
226> isip4: y 1.2.3.4
227> isip6: n 1.2.3.4
228> isip: n 1:2:3:4
229> isip4: n 1:2:3:4
230> isip6: n 1:2:3:4
231> isip: y ::1
232> isip4: n ::1
233> isip6: y ::1
234> isip: y fe80::a00:20ff:fe86:a061
235> isip4: n fe80::a00:20ff:fe86:a061
236> isip6: y fe80::a00:20ff:fe86:a061
237> isip: n rhubarb
238> isip4: n rhubarb
239> isip6: n rhubarb
240>
241> match: cdab
242> match: cdab
243> match: cdab
244> Failed: "if" failed and "fail" requested
245> match: cd[xyz]ab
246>
247> match_domain: yes
248> match_domain: no
249> match_domain: yes
250> match_domain: yes
251> match_domain: no
252>
253> match_address: yes
254> match_address: yes
255>
256> match_local_part:yes
257> match_local_part:yes
258>
259> match_ip: 01 true
260> match_ip: 02
261> match_ip: 03 true
262> match_ip: 04 true
263> match_ip: 05
264> match_ip: 06
265> match_ip: 07 true
266> match_ip: 08 true
267> match_ip: 09
268> match_ip: 10 true
269> Failed: "somename" is not an IP address
270> match_ip: 12 true
271> match_ip: 13 true
272> match_ip: 14 true
273>
274> queue_running: n
275> first_delivery: n
276>
277> queue_running after or: y
278> first_delivery after or: y
279>
280> # Default values for both if strings
281>
282> ${if eq{1}{1}} >true<
283> ${if eq{1}{2}} ><
284>
285> # Lookups: DIR is the testing directory. In this test we can only use the
286> # lookups that are required in all cases.
287>
288> CALLER
289>
290> ==X@Y
291> ==*
292> ==*@Z
293> ==*
294>
295> data for a.b.c.d
296> failed x.y.z
297> data for *.p.q
298> data for *.p.q
299> data for *.p.q
300> Failed: "lookup" failed and "fail" requested
301> data for *
302>
303> q1: "abc"
304> q2: "xyz":
305> q3: "pqr" :
306> q4: "a:b" abc continued data (make sure not key)
307> q5: "\"quoted\""
308> q6: "white space"
309> q7: "b\\s"
310>
311> abc: abc
312> a.b.c: *.b.c
313> ab.c: *b.c
314> xyz: ^X
315> Xyz: ^X
316> Zyz: ^Z
317> a b: "^a +b"
318> a b: "^a +b"
319> a:b: lookup succeeded
320> a.b: ^a\\.+b
321> a..b: ^a\\.+b
322> a9b: \N^a\d+b
323> a99b: \N^a\d+b
324>
325> # Should give the same results as above because expansion does nothing
326>
327> abc: abc
328> a.b.c: *.b.c
329> ab.c: *b.c
330> xyz: ^X
331> Xyz: ^X
332> Zyz: ^Z
333> a b: "^a +b"
334> a b: "^a +b"
335> a:b: lookup succeeded
336>
337> # Should fail because of no expansion
338>
339> a.b: NO
340> a..b: NO
341> a9b: NO
342> a99b: NO
343>
344> # But these should succeed
345>
346> a\:b: ^a\\.+b
347> a\:Xb: ^a\\.+b
348>
349> # IP address (CIDR) lookups
350>
351> 1.2.3.4: data for 1.2.3.4
352> 1.2.3.5:
353> 1.2.3.5: data for *
354> abcd::cdab: data for abcd::cdab
355> 192.168.1.2: data for 192.168.0.0/16
356> 192.168.5.6: data for 192.168.0.0/16
357> abcd:abcd:: data for abcd:abcd::/32
358> abcd:abcd:1:: data for abcd:abcd::/32
359> abcd:abcd::3 data for abcd:abcd::/32
360> Failed: lookup of "rhubarb" gave DEFER: "rhubarb" is not a valid iplsearch key (an IP address, with optional CIDR mask, is wanted): in a host list, use net-iplsearch as the search type
361>
362>
363> # Nested Lookups - style 1
364>
365> The data for key1->key2
366> Failed: "lookup" failed and "fail" requested
367>
368> # Nested Lookups - style 2
369>
370> The data for key1->key2
371> failed for key4
372>
373> # Other nesting tests
374>
375> 1-in-1
376> 2-in-2
377> both-in-1,both-in-2
378> Failed: "lookup" failed and "fail" requested
379>
380> # Lookup quotes for standardly expected lookups
381>
382> lsearch !@#$%^&*()_-+=|\~`1234567890{[}]qwertyuiop:;"'asdfghjkl<,>.?/zxcvbnm
383> Failed: unknown lookup type "xxx"
384>
385> # Extract
386>
387> 2
388> 2
389> 2
390> 2
391> Empty:<>
392> Empty:<>
393> <3>
394> <3>
395> Empty:<>
396> Empty:<>
397> no Z
398> no 4
399> Failed: "extract" failed and "fail" requested
400> Failed: "extract" failed and "fail" requested
401> D
402> a:b:c:d:e
403> a
404> e
405> a
406> FAIL
407> b
408>
409> b
410> three four
411> Failed: first argument of "extract" must not be empty
412> Failed: first argument of "extract" must not be empty
413> b
414>
415> # Translation
416>
417> abcdea aaa xyz zbcdez
418> abcdea a z zbcdez
419> abcdea a abcdea
420> abcdea abc z zzzdez
421>
422> # RFC 2047
423>
424> abcd abcd
425> <:abcd:> =?iso-8859-8?Q?=3C=3Aabcd=3A=3E?=
426> <:ab cd:> =?iso-8859-8?Q?=3C=3Aab_cd=3A=3E?=
427> Long: =?iso-8859-8?Q?_here_we_go=3A_a_string_that_is_going_to_be_encoded=3A_i?= =?iso-8859-8?Q?t_will_go_over_the_75-char_limit?=
428> Long: =?iso-8859-8?Q?_here_we_go=3A_a_string_that_is_going_to_be_encoded=3A_i?= =?iso-8859-8?Q?t_will_go_over_the_75-char_limit_by_a_long_way=3B_in_fac?= =?iso-8859-8?Q?t_this_one_will_go_over_the_150_character_limit?=
429>
430>
431> # UTF-8
432>
433> abcd abcd
434> ad ad
435> toobig a_d
436>
437> # Substitution
438>
439> ${sg{abcdefabcdef}{abc}{xyz}} =xyzdefxyzdef
440> ${sg{ab:xy::z}{:}{::}} =ab::xy::::z
441> ${sg{abcdefabcdef}{(..)[^c]}{>$1<}} =a><><><ef
442> ${sg{abcdefabcdef}{(..)[^c]}{>\$1<}} =a>bc<>ef<>bc<ef
443> ${sg{abcdefabcdef}{(..)[^c]}{>\N$1\N<}}=a>bc<>ef<>bc<ef
444> ${sg{abbab}{a*}{+}} =++b+b++b+
445>
446> # File insertion
447>
448> Failed: missing or misplaced { or }
449> abcde
45012345
451
452xyz
453
454> abcde12345xyz
455> abcde:12345::xyz:
456> abcde - 12345 - - xyz -
457> Failed: failed to open /non/exist/file: No such file or directory
458> non-exist
459> >abcde!12345!!xyz!<
460>
461> # Calling a command
462>
463> abcd
4641234
465
466> RC=0
467> 1
468> RC=0
469> abcd
4701234
471
472> RC=0
473> 2
474> RC=1
475> abcd
4761234
477
478> RC=1
479> N
480> RC=127
481> >><<
482> RC=0
483> 1!=2
484> RC=0
485>
486> # PRVS
487>
488> prvs=userx/xxxxxxxxxx@test.ex
489> prvs=userx/xxxxxxxxxx@test.ex
490> prvs=userx/xxxxxxxxxx@test.ex
491>
492> # Syntax errors
493>
494> Failed: prvs second argument must be a single digit
495> Failed: prvs second argument must be a single digit
496> Failed: prvs second argument must be a single digit
497>
498> # Correct checks; can't put explicit addresses in the tests, because they
499> # will change over time.
500>
501> userx@test.ex
502> result=1
503>
504> >1< >userx@test.ex< >1<
505> result=1
506>
507> userx@test.ex
508> result=1
509>
510> # Incorrect secret
511>
512> userx@test.ex
513> result=
514>
515> 0
516> result=
517>
518> # Non-prvs address
519>
520> >><<
521> result=
522>
523> # Syntax errors
524>
525> Failed: "${tod_log" is not a known operator (or a } is missing in a variable reference)
526> Failed: "${tod_log" is not a known operator (or a } is missing in a variable reference)
527> Failed: missing } at end of string
528> Failed: missing } at end of string
529> Failed: hmac algorithm "xxx" is not recognised
530> Failed: each subcondition inside an "and{...}" condition must be in its own {}
531> Failed: unknown condition "xya" inside "and{...}" condition
532> Failed: condition name expected, but found "${lookup{x}lsear" inside "and{...}" condition
533> Failed: missing } at end of string - could be header name not terminated by colon
534> Failed: each subcondition inside an "or{...}" condition must be in its own {}
535> Failed: missing } at end of condition inside "or" group
536> Failed: unknown condition "yes" inside "or{...}" condition
537> Failed: non-digit after underscore in "substr_1_"
538> Failed: non-digit after underscore in "substr__3"
539>
540> # Miscellaneous (for bug fixes, etc)
541>
542> true
543>
544>
545> escape: B7F2
546>
547> primary_hostname: myhost.test.ex
548> match: cdab
549> Failed: "if" failed and "fail" requested
550> yes
551> match_address: no
552>
553> -oMa sender_host_address =
554> sender_host_port = 0
555> -oMaa sender_host_authenticated =
556> -oMai authenticated_id = CALLER
557> -oMas authenticated_sender = CALLER@myhost.test.ex
558> -oMi interface_address =
559> interface_port = -1
560> -oMr received_protocol =
561> -oMs sender_host_name =
562> -oMt sender_ident = CALLER
563>
564> -oMa sender_host_address = V4NET.0.0.1
565> sender_host_port = 1234
566> -oMaa sender_host_authenticated = AAA
567> -oMai authenticated_id = philip
568> -oMas authenticated_sender = xx@yy.zz
569> -oMi interface_address = 1.1.1.1
570> interface_port = 99
571> -oMr received_protocol = special
572> -oMt sender_ident = me
573>
574> -oMa sender_host_address = V4NET.0.0.1
575> sender_host_port = 1234
576> -oMs sender_host_name = my.host.name
577>
578> -oMs sender_host_name =
579> host_lookup_failed = 1
580>
581> -p received_protocol = special
582> -p sender_host_name = host.name
583>
584> -oMa sender_host_address = V4NET.0.0.1
585> sender_host_port = 1234
586> -oMaa sender_host_authenticated = AAA
587> -oMai authenticated_id = philip
588> -oMas authenticated_sender = xx@yy.zz
589> -oMi interface_address = 1.1.1.1
590> interface_port = 99
591> -oMr received_protocol = special
592> ----> No lookup yet: No
593> -oMs sender_host_name = ten-1.test.ex
594> -oMt sender_ident = me
595>
596
597**** SMTP testing session as if from host V4NET.0.0.1
598**** but without any ident (RFC 1413) callback.
599**** This is not for real!
600
601550 Administrative prohibition\r
602
603**** SMTP testing session as if from host V4NET.0.0.2
604**** but without any ident (RFC 1413) callback.
605**** This is not for real!
606
607550 Administrative prohibition\r
608
609**** SMTP testing session as if from host V4NET.0.0.0
610**** but without any ident (RFC 1413) callback.
611**** This is not for real!
612
613220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000\r
614250 OK\r
615250 Accepted\r
616354 Enter message, ending with "." on a line by itself\r
617550 reply_address=<>\r
618250 OK\r
619250 Accepted\r
620354 Enter message, ending with "." on a line by itself\r
621550 reply_address=<a@b>\r
622250 OK\r
623250 Accepted\r
624354 Enter message, ending with "." on a line by itself\r
625550 reply_address=<c@d>\r
626250 OK\r
627250 Accepted\r
628354 Enter message, ending with "." on a line by itself\r
629550 reply_address=<>\r
630250 OK\r
631250 Accepted\r
632354 Enter message, ending with "." on a line by itself\r
633550 reply_address=<x@y>\r
634221 myhost.test.ex closing connection\r
635
636**** SMTP testing session as if from host V4NET.0.0.0
637**** but without any ident (RFC 1413) callback.
638**** This is not for real!
639
640220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000\r
641250 OK\r
642250 Accepted\r
643354 Enter message, ending with "." on a line by itself\r
644550 reply_address=<>\r
645221 myhost.test.ex closing connection\r
646
647**** SMTP testing session as if from host V4NET.0.0.0
648**** but without any ident (RFC 1413) callback.
649**** This is not for real!
650
651220 myhost.test.ex ESMTP Exim x.yz Tue, 2 Mar 1999 09:44:33 +0000\r
652250 OK\r
653250 Accepted\r
654354 Enter message, ending with "." on a line by itself\r
655550 reply_address=<>\r
656221 myhost.test.ex closing connection\r