95 lines
1.0 KiB
Factor
95 lines
1.0 KiB
Factor
USING: eval multiline sequences tools.test ;
|
|
IN: multiline.tests
|
|
|
|
STRING: test-it
|
|
foo
|
|
bar
|
|
|
|
;
|
|
|
|
{ "foo\nbar\n" } [ test-it ] unit-test
|
|
|
|
|
|
! HEREDOC:
|
|
|
|
{ "foo\nbar\n" } [ HEREDOC: END
|
|
foo
|
|
bar
|
|
END
|
|
] unit-test
|
|
|
|
{ "" } [ HEREDOC: END
|
|
END
|
|
] unit-test
|
|
|
|
{ " END\n" } [ HEREDOC: END
|
|
END
|
|
END
|
|
] unit-test
|
|
|
|
{ "\n" } [ HEREDOC: END
|
|
|
|
END
|
|
] unit-test
|
|
|
|
{ "x\n" } [ HEREDOC: END
|
|
x
|
|
END
|
|
] unit-test
|
|
|
|
{ "x\n" } [ HEREDOC: END
|
|
x
|
|
END
|
|
] unit-test
|
|
|
|
! there's a space after xyz
|
|
{ "xyz \n" } [ HEREDOC: END
|
|
xyz
|
|
END
|
|
] unit-test
|
|
|
|
{ "} ! * # \" «\n" } [ HEREDOC: END
|
|
} ! * # " «
|
|
END
|
|
] unit-test
|
|
|
|
{ 21 "foo\nbar\n" " HEREDOC: FOO\n FOO\n" 22 } [ 21 HEREDOC: X
|
|
foo
|
|
bar
|
|
X
|
|
HEREDOC: END
|
|
HEREDOC: FOO
|
|
FOO
|
|
END
|
|
22 ] unit-test
|
|
|
|
{ "lol\n xyz\n" }
|
|
[
|
|
HEREDOC: xyz
|
|
lol
|
|
xyz
|
|
xyz
|
|
] unit-test
|
|
|
|
/*
|
|
<<
|
|
SYNTAX: MULTILINE-LITERAL: parse-here suffix! ;
|
|
>>
|
|
|
|
{ { "bar" } }
|
|
[
|
|
CONSTANT: foo { MULTILINE-LITERAL:
|
|
bar
|
|
;
|
|
} foo
|
|
] unit-test
|
|
|
|
! Make sure parse-here fails if extra crap appears on the first line
|
|
[
|
|
"CONSTANT: foo { MULTILINE-LITERAL: asdfasfdasdfas
|
|
bar
|
|
;
|
|
}" eval
|
|
] must-fail
|
|
*/
|