]> gitweb.factorcode.org Git - factor.git/blob - basis/multiline/multiline-tests.factor
dbc2688f4e26d1105a5a14402364f5232e6327d3
[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 <<
76 SYNTAX: MULTILINE-LITERAL: parse-here suffix! ;
77 >>
78
79 { { "bar" } }
80 [
81     CONSTANT: foo { MULTILINE-LITERAL:
82 bar
83 ;
84 } foo
85 ] unit-test
86
87 ! Make sure parse-here fails if extra crap appears on the first line
88 [
89     "CONSTANT: foo { MULTILINE-LITERAL: asdfasfdasdfas
90 bar
91 ;
92 }" eval
93 ] must-fail
94 */