]> gitweb.factorcode.org Git - factor.git/blob - basis/multiline/multiline-tests.factor
03dd3aabb0df8635bd0aecc865e6c2a89dabd8de
[factor.git] / basis / multiline / multiline-tests.factor
1 USING: eval multiline sequences tools.test ;
2 IN: multiline.tests
3
4 STRING: test-it
5 foo
6 bar
7
8 ;
9
10 [ "foo\nbar\n" ] [ test-it ] unit-test
11
12
13 ! HEREDOC:
14
15 [ "foo\nbar\n" ] [ HEREDOC: END
16 foo
17 bar
18 END
19 ] unit-test
20
21 [ "" ] [ HEREDOC: END
22 END
23 ] unit-test
24
25 [ " END\n" ] [ HEREDOC: END
26  END
27 END
28 ] unit-test
29
30 [ "\n" ] [ HEREDOC: END
31
32 END
33 ] unit-test
34
35 [ "x\n" ] [ HEREDOC: END
36 x
37 END
38 ] unit-test
39
40 [ "x\n" ] [ HEREDOC:       END
41 x
42 END
43 ] unit-test
44
45 ! there's a space after xyz
46 [ "xyz \n" ] [ HEREDOC: END
47 xyz 
48 END
49 ] unit-test
50
51 [ "} ! * # \" «\n" ] [ HEREDOC: END
52 } ! * # " «
53 END
54 ] unit-test
55
56 [ 21 "foo\nbar\n" " HEREDOC: FOO\n FOO\n" 22 ] [ 21 HEREDOC: X
57 foo
58 bar
59 X
60 HEREDOC: END
61  HEREDOC: FOO
62  FOO
63 END
64 22 ] unit-test
65
66 [ "lol\n xyz\n" ]
67 [
68 HEREDOC: xyz
69 lol
70  xyz
71 xyz
72 ] unit-test
73
74
75 [ "lol" ]
76 [ DELIMITED: aol
77 lolaol ] unit-test
78
79 [ "whoa" ]
80 [ DELIMITED: factor blows my mind
81 whoafactor blows my mind ] unit-test
82
83 <<
84 SYNTAX: MULTILINE-LITERAL: parse-here suffix! ;
85 >>
86
87 [ { "bar" } ]
88 [
89     CONSTANT: foo { MULTILINE-LITERAL:
90 bar
91 ;
92 } foo
93 ] unit-test
94
95
96 ! Make sure parse-here fails if extra crap appears on the first line
97 [
98     "CONSTANT: foo { MULTILINE-LITERAL: asdfasfdasdfas
99 bar
100 ;
101 }" eval
102 ] must-fail