Tree @master (Download .tar.gz)
- ..
- cat.py
- crlf.py
- echo.py
- eg.silly-interpreter
- fail.py
- silly-interpreter.py
- test-appliances-a.markdown
- test-appliances-b.markdown
- test-appliances.expected
- test-bad-indentation.expected
- test-bad-indentation.markdown
- test-crlf.expected
- test-crlf.markdown
- test-err-no-stderr.expected
- test-err-no-stderr.markdown
- test-freestyle-format.expected
- test-freestyle-format.markdown
- test-ill-formed.expected
- test-ill-formed.markdown
- test-implementations-global-a.markdown
- test-implementations-global-b.markdown
- test-implementations-global.expected
- test-input-sections.expected
- test-input-sections.markdown
- test-no-eol.expected
- test-no-eol.markdown
- test-no-functionality-leak-a.markdown
- test-no-functionality-leak-b.markdown
- test-no-functionality-leak.expected
- test-no-functionality.expected
- test-no-functionality.markdown
- test-no-test-body.expected
- test-no-test-body.markdown
- test-no-tests.expected
- test-no-tests.markdown
- test-pass-fail.expected
- test-pass-fail.markdown
- test-shared-body.expected
- test-shared-body.markdown
- test-stdout-stderr.expected
- test-stdout-stderr.markdown
- test-substring-error.expected
- test-substring-error.markdown
- test-utf8.expected
- test-utf8.markdown
- test-var-subst.expected
- test-var-subst.markdown
test-freestyle-format.markdown @master — view markup · raw · history · blame
Falderal Test: "freestyle" format for tests
This document tests the alternate ("freestyle") format for tests
introduced in the Falderal Literate Test Format version 0.11. This
format allows the test body to consist entirely of un-prefixed text,
as long as it is written in a single indented block, and as long as
the final line(s) of the test begin with one of the prefixes
=>
or ==>
or ===>
or ?>
or ??>
or ???>
.
-> Functionality "Cat" is implemented by shell command "python3 cat.py"
-> Tests for functionality "Cat"
Cat cats.
meow
=> meow
meow
==> meow
meow
===> meow
There may be multiple final lines.
purr
prrr
prreow
==> purr
==> prrr
==> prreow
The use of ==>
means that any text in the preceding lines that would,
in the previous format, be recognized as prefixes, are no longer recognized
as prefixes.
| purr
| prrr
= prreow
=> | purr
=> | prrr
=> = prreow
| purr
+ prrr
? prreow
=> | purr
=> + prrr
=> ? prreow
purr
-> prrr
prreow
===> purr
===> -> prrr
===> prreow
Demonstrate error expectation (Intentional fail.)
meow
?> woof
meow
??> woof
| meow
? rreoww
???> bow
???> wow
Freestyle-format tests can also contain input sections.
-> Functionality "Silly Interpreter" is implemented by
-> shell command "python3 silly-interpreter.py %(test-body-file)"
-> Tests for functionality "Silly Interpreter"
read x
read y
print y
print x
<= meow
<= purr
=> purr
=> meow
read x
read y
print y
print x
<== meow
<== purr
==> purr
==> meow
read x
read y
print y
print x
<=== meow
<=== purr
===> purr
===> meow
The trick of re-using the previous test body with a different test input if the test body is omitted doesn't work with freestyle-format test input sections (i.e., this will fail.)
<== zing
<== zang
==> zang
==> zing