diff options
-rw-r--r-- | Makefile | 10 | ||||
-rw-r--r-- | leakcheck.md | 1561 |
2 files changed, 7 insertions, 1564 deletions
@@ -13,6 +13,7 @@ ZIPARCHIVE?=cmark-$(SPECVERSION).zip FUZZCHARS?=2000000 # for fuzztest BENCHDIR=bench BENCHFILE=$(BENCHDIR)/benchinput.md +ALLTESTS=alltests.md NUMRUNS?=10 PROG?=$(BUILDDIR)/src/cmark BENCHINP?=README.md @@ -106,8 +107,11 @@ testziparchive: $(ZIPARCHIVE) cd $(PKGDIR); \ mkdir build && cd build && cmake .. && make && ctest -V -leakcheck: $(PROG) - cat leakcheck.md | valgrind --leak-check=full --dsymutil=yes --error-exitcode=1 $(PROG) >/dev/null +$(ALLTESTS): spec.txt + python runtests.py --spec $< --dump-tests | python -c 'import json; import sys; tests = json.loads(sys.stdin.read()); print "\n".join([test["markdown"] for test in tests]).encode("utf-8")' > $@ + +leakcheck: $(ALLTESTS) $(PROG) + cat $< | valgrind --leak-check=full --dsymutil=yes --error-exitcode=1 $(PROG) >/dev/null fuzztest: { for i in `seq 1 10`; do \ @@ -141,7 +145,7 @@ distclean: clean -rm -rf *.dSYM -rm -f README.html -rm -f spec.md fuzz.txt spec.html - -rm -rf $(BENCHFILE) progit + -rm -rf $(BENCHFILE) $(ALLTESTS) progit ### JavaScript ### diff --git a/leakcheck.md b/leakcheck.md deleted file mode 100644 index 06716e1..0000000 --- a/leakcheck.md +++ /dev/null @@ -1,1561 +0,0 @@ -→foo→baz→→bim - - a→a - ὐ→a - -- `one -- two` - -*** ---- -___ - -+++ - -=== - --- -** -__ - - *** - *** - *** - - *** - -Foo - *** - -_____________________________________ - - - - - - - ** * ** * ** * ** - -- - - - - -- - - - - -_ _ _ _ a - -a------ - - *-* - -- foo -*** -- bar - -Foo -*** -bar - -Foo ---- -bar - -* Foo -* * * -* Bar - -- Foo -- * * * - -# foo -## foo -### foo -#### foo -##### foo -###### foo - -####### foo - -#5 bolt - -\## foo - -# foo *bar* \*baz\* - -# foo - - ### foo - ## foo - # foo - - # foo - -foo - # bar - -## foo ## - ### bar ### - -# foo ################################## -##### foo ## - -### foo ### - -### foo ### b - -### foo \### -## foo \#\## -# foo \# - -**** -## foo -**** - -Foo bar -# baz -Bar foo - -## -# -### ### - -Foo *bar* -========= - -Foo *bar* ---------- - -Foo -------------------------- - -Foo -= - - Foo ---- - - Foo ------ - - Foo - === - - Foo - --- - - Foo ---- - -Foo - ---- - -Foo - --- - -Foo -= = - -Foo ---- - - -Foo ------ - -Foo\ ----- - -`Foo ----- -` - -<a title="a lot ---- -of dashes"/> - -> Foo ---- - -Foo -Bar ---- - -Foo -Bar -=== - ---- -Foo ---- -Bar ---- -Baz - - -==== - - a simple - indented code block - - <a/> - *hi* - - - one - - chunk1 - - chunk2 - - - - chunk3 - - chunk1 - - chunk2 - -Foo - bar - - - foo -bar - -# Header - foo -Header ------- - foo ----- - - foo - bar - - - - foo - - - - foo - -``` -< - > -``` - -~~~ -< - > -~~~ - -``` -aaa -~~~ -``` - -~~~ -aaa -``` -~~~ - -```` -aaa -``` -`````` - -~~~~ -aaa -~~~ -~~~~ - -``` - -````` - -``` -aaa - -``` - - -``` - -``` -``` - - ``` - aaa -aaa -``` - - ``` -aaa - aaa -aaa - ``` - - ``` - aaa - aaa - aaa - ``` - - ``` - aaa - ``` - -``` ``` -aaa - -~~~~~~ -aaa -~~~ ~~ - -foo -``` -bar -``` -baz - -foo ---- -~~~ -bar -~~~ -# baz - -```ruby -def foo(x) - return 3 -end -``` - -~~~~ ruby startline=3 $%@#$ -def foo(x) - return 3 -end -~~~~~~~ - -````; -```` - -``` aa ``` -foo - -``` -``` aaa -``` - -<table> - <tr> - <td> - hi - </td> - </tr> -</table> - -okay. - - <div> - *hello* - <foo><a> - -<DIV CLASS="foo"> - -*Markdown* - -</DIV> - -<div></div> -``` c -int x = 33; -``` - -<!-- Foo -bar - baz --> - -<?php - echo 'foo' -?> - -<![CDATA[ -function matchwo(a,b) -{ -if (a < b && a < 0) then - { - return 1; - } -else - { - return 0; - } -} -]]> - - <!-- foo --> - - <!-- foo --> - -Foo -<div> -bar -</div> - -<div> -bar -</div> -*foo* - -<div class -foo - -<div> - -*Emphasized* text. - -</div> - -<div> -*Emphasized* text. -</div> - -<table> - -<tr> - -<td> -Hi -</td> - -</tr> - -</table> - -[foo]: /url "title" - -[foo] - - [foo]: - /url - 'the title' - -[foo] - -[Foo*bar\]]:my_(url) 'title (with parens)' - -[Foo*bar\]] - -[Foo bar]: -<my url> -'title' - -[Foo bar] - -[foo]: -/url - -[foo] - -[foo]: - -[foo] - -[foo] - -[foo]: url - -[foo] - -[foo]: first -[foo]: second - -[FOO]: /url - -[Foo] - -[ΑΓΩ]: /φου - -[αγω] - -[foo]: /url - -[foo]: /url "title" ok - - [foo]: /url "title" - -[foo] - -``` -[foo]: /url -``` - -[foo] - -Foo -[bar]: /baz - -[bar] - -# [Foo] -[foo]: /url -> bar - -[foo]: /foo-url "foo" -[bar]: /bar-url - "bar" -[baz]: /baz-url - -[foo], -[bar], -[baz] - -[foo] - -> [foo]: /url - -aaa - -bbb - -aaa -bbb - -ccc -ddd - -aaa - - -bbb - - aaa - bbb - -aaa - bbb - ccc - - aaa -bbb - - aaa -bbb - -aaa -bbb - - - -aaa - - -# aaa - - - -> # Foo -> bar -> baz - -># Foo ->bar -> baz - - > # Foo - > bar - > baz - - > # Foo - > bar - > baz - -> # Foo -> bar -baz - -> bar -baz -> foo - -> foo ---- - -> - foo -- bar - -> foo - bar - -> ``` -foo -``` - -> - -> -> -> - -> -> foo -> - -> foo - -> bar - -> foo -> bar - -> foo -> -> bar - -foo -> bar - -> aaa -*** -> bbb - -> bar -baz - -> bar - -baz - -> bar -> -baz - -> > > foo -bar - ->>> foo -> bar ->>baz - -> code - -> not code - -A paragraph -with two lines. - - indented code - -> A block quote. - -1. A paragraph - with two lines. - - indented code - - > A block quote. - -- one - - two - -- one - - two - - - one - - two - - - one - - two - - > > 1. one ->> ->> two - ->>- one ->> - > > two - -- foo - - bar - -- foo - - - bar - -- ``` - foo - - - bar - ``` - -1. foo - - ``` - bar - ``` - - baz - - > bam - -- foo - - bar - - 10. foo - - bar - - indented code - -paragraph - - more code - -1. indented code - - paragraph - - more code - -1. indented code - - paragraph - - more code - - foo - -bar - -- foo - - bar - -- foo - - bar - - 1. A paragraph - with two lines. - - indented code - - > A block quote. - - 1. A paragraph - with two lines. - - indented code - - > A block quote. - - 1. A paragraph - with two lines. - - indented code - - > A block quote. - - 1. A paragraph - with two lines. - - indented code - - > A block quote. - - 1. A paragraph -with two lines. - - indented code - - > A block quote. - - 1. A paragraph - with two lines. - -> 1. > Blockquote -continued here. - -> 1. > Blockquote -> continued here. - -- foo - - bar - - baz - -- foo - - bar - - baz - -10) foo - - bar - -10) foo - - bar - -- - foo - -1. - 2. foo - -- foo -- -- bar - -- - -- foo -- bar -+ baz - -1. foo -2. bar -3) baz - -- foo - -- bar - - -- baz - -- foo - - - bar -- baz - -- foo - - bar - - baz - - - bim - -- foo -- bar - - -- baz -- bim - -- foo - - notcode - -- foo - - - code - -- a - - b - - c - - d - - e - - f -- g - -- a -- b - -- c - -* a -* - -* c - -- a -- b - - c -- d - -- a -- b - - [ref]: /url -- d - -- a -- ``` - b - - - ``` -- c - -- a - - b - - c -- d - -* a - > b - > -* c - -- a - > b - ``` - c - ``` -- d - -- a - -- a - - b - -* foo - * bar - - baz - -- a - - b - - c - -- d - - e - - f - -`hi`lo` - -\!\"\#\$\%\&\'\(\)\*\+\,\-\.\/\:\;\<\=\>\?\@\[\\\]\^\_\`\{\|\}\~ - -\→\A\a\ \3\φ\« - -\*not emphasized* -\<br/> not a tag -\[not a link](/foo) -\`not code` -1\. not a list -\* not a list -\# not a header -\[foo]: /url "not a reference" - -\\*emphasis* - -foo\ -bar - -`` \[\` `` - - \[\] - -~~~ -\[\] -~~~ - -<http://example.com?find=\*> - -<a href="/bar\/)"> - -[foo](/bar\* "ti\*tle") - -[foo] - -[foo]: /bar\* "ti\*tle" - -``` foo\+bar -foo -``` - - & © Æ Ď ¾ ℋ ⅆ ∲ - -# Ӓ Ϡ � - -" ആ ಫ - -  &x; &#; &#x; &ThisIsWayTooLongToBeAnEntityIsntIt; &hi?; - -© - -&MadeUpEntity; - -<a href="öö.html"> - -[foo](/föö "föö") - -[foo] - -[foo]: /föö "föö" - -``` föö -foo -``` - -`föö` - - föfö - -`foo` - -`` foo ` bar `` - -` `` ` - -`` -foo -`` - -`foo bar - baz` - -`foo `` bar` - -`foo\`bar` - -*foo`*` - -[not a `link](/foo`) - -<http://foo.bar.`baz>` - -<a href="`">` - -```foo`` - -`foo - -*foo bar* - -_foo bar_ - -**foo bar** - -__foo bar__ - -*foo -bar* - -_foo -bar_ - -**foo -bar** - -__foo -bar__ - -*foo [bar](/url)* - -_foo [bar](/url)_ - -**foo [bar](/url)** - -__foo [bar](/url)__ - -*foo [bar*](/url) - -_foo [bar_](/url) - -**<a href="**"> - -__<a href="__"> - -*a `*`* - -_a `_`_ - -**a<http://foo.bar?q=**> - -__a<http://foo.bar?q=__> - -and * foo bar* - -_ foo bar_ - -and ** foo bar** - -__ foo bar__ - -and *foo bar * - -and _foo bar _ - -and **foo bar ** - -and __foo bar __ - -****hi**** - -_____hi_____ - -Sign here: _________ - -** is not an empty emphasis - -**** is not an empty strong emphasis - -*here is a \** - -__this is a double underscore (`__`)__ - -*_* - -_*_ - -*__* - -_**_ - -foo*bar*baz - -foo_bar_baz - -foo__bar__baz - -_foo_bar_baz_ - -11*15*32 - -11_15_32 - -_foo_bar_baz_ - -__foo__bar__baz__ - -***foo bar*** - -___foo bar___ - -***foo** bar* - -___foo__ bar_ - -***foo* bar** - -___foo_ bar__ - -*foo **bar*** - -_foo __bar___ - -**foo *bar*** - -__foo _bar___ - -*foo **bar*** - -_foo __bar___ - -*foo *bar* baz* - -_foo _bar_ baz_ - -**foo **bar** baz** - -__foo __bar__ baz__ - -*foo **bar** baz* - -_foo __bar__ baz_ - -**foo *bar* baz** - -__foo _bar_ baz__ - -**foo, *bar*, baz** - -__foo, _bar_, baz__ - -*foo**bar**baz* - -**foo*bar*baz** - -**foo** - -****foo**** - -*_foo_* - -**__foo__** - -*foo** - -*foo *bar** - -**foo*** - -***foo* bar*** - -***foo** bar*** - -*foo**bar*** - -*foo**** - -*foo** - -**foo* - -*foo *bar** - -**foo* bar* - -*bar*** - -***foo* - -**bar*** - -***foo** - -***foo *bar* - -[link](/uri "title") - -[link](/uri) - -[link]() - -[link](<>) - -[link](/my uri) - -[link](</my uri>) - -[link](foo -bar) - -[link]((foo)and(bar)) - -[link](foo(and(bar))) - -[link](foo(and\(bar\))) - -[link](<foo(and(bar))>) - -[link](foo\)\:) - -[link](foo%20bä) - -[link]("title") - -[link](/url "title") -[link](/url 'title') -[link](/url (title)) - -[link](/url "title \""") - -[link](/url "title "and" title") - -[link](/url 'title "and" title') - -[link]( /uri - "title" ) - -[link] (/uri) - -[foo <bar attr="](baz)"> - -[foo][bar] - -[bar]: /url "title" - -[*foo\!*][bar] - -[bar]: /url "title" - -[foo][BaR] - -[bar]: /url "title" - -[Толпой][Толпой] is a Russian word. - -[ТОЛПОЙ]: /url - -[Foo - bar]: /url - -[Baz][Foo bar] - -[foo] [bar] - -[bar]: /url "title" - -[foo] -[bar] - -[bar]: /url "title" - -[foo]: /url1 - -[foo]: /url2 - -[bar][foo] - -[bar][foo\!] - -[foo!]: /url - -[foo][] - -[foo]: /url "title" - -[*foo* bar][] - -[*foo* bar]: /url "title" - -[Foo][] - -[foo]: /url "title" - -[foo] -[] - -[foo]: /url "title" - -[foo] - -[foo]: /url "title" - -[*foo* bar] - -[*foo* bar]: /url "title" - -[[*foo* bar]] - -[*foo* bar]: /url "title" - -[Foo] - -[foo]: /url "title" - -\[foo] - -[foo]: /url "title" - -[foo*]: /url - -*[foo*] - -[foo`]: /url - -[foo`]` - -[[[foo]]] - -[[[foo]]]: /url - -[[[foo]]] - -[[[foo]]]: /url1 -[foo]: /url2 - -[\[foo] - -[\[foo]: /url - -[foo][bar] - -[foo]: /url1 -[bar]: /url2 - -[foo][bar][baz] - -[baz]: /url - -[foo][bar][baz] - -[baz]: /url1 -[bar]: /url2 - -[foo][bar][baz] - -[baz]: /url1 -[foo]: /url2 - -![foo](/url "title") - -![foo *bar*] - -[foo *bar*]: train.jpg "train & tracks" - -![foo *bar*][] - -[foo *bar*]: train.jpg "train & tracks" - -![foo *bar*][foobar] - -[FOOBAR]: train.jpg "train & tracks" - -![foo](train.jpg) - -My ![foo bar](/path/to/train.jpg "title" ) - -![foo](<url>) - -![](/url) - -![foo] [bar] - -[bar]: /url - -![foo] [bar] - -[BAR]: /url - -![foo][] - -[foo]: /url "title" - -![*foo* bar][] - -[*foo* bar]: /url "title" - -![Foo][] - -[foo]: /url "title" - -![foo] -[] - -[foo]: /url "title" - -![foo] - -[foo]: /url "title" - -![*foo* bar] - -[*foo* bar]: /url "title" - -![[foo]] - -[[foo]]: /url "title" - -![Foo] - -[foo]: /url "title" - -\!\[foo] - -[foo]: /url "title" - -\![foo] - -[foo]: /url "title" - -<http://foo.bar.baz> - -<http://foo.bar.baz?q=hello&id=22&boolean> - -<irc://foo.bar:2233/baz> - -<MAILTO:FOO@BAR.BAZ> - -<http://foo.bar/baz bim> - -<foo@bar.example.com> - -<foo+special@Bar.baz-bar0.com> - -<> - -<heck://bing.bong> - -< http://foo.bar > - -<foo.bar.baz> - -<localhost:5001/foo> - -http://example.com - -foo@bar.example.com - -<a><bab><c2c> - -<a/><b2/> - -<a /><b2 -data="foo" > - -<a foo="bar" bam = 'baz <em>"</em>' -_boolean zoop:33=zoop:33 /> - -<33> <__> - -<a h*#ref="hi"> - -<a href="hi'> <a href=hi'> - -< a>< -foo><bar/ > - -<a href='bar'title=title> - -</a> -</foo > - -</a href="foo"> - -foo <!-- this is a -comment - with hyphen --> - -foo <!-- not a comment -- two hyphens --> - -foo <?php echo $a; ?> - -foo <!ELEMENT br EMPTY> - -foo <![CDATA[>&<]]> - -<a href="ö"> - -<a href="\*"> - -<a href="\""> - -foo -baz - -foo\ -baz - -foo -baz - -foo - bar - -foo\ - bar - -*foo -bar* - -*foo\ -bar* - -`code -span` - -`code\ -span` - -<a href="foo -bar"> - -<a href="foo\ -bar"> - -foo -baz - -foo - baz - -hello $.;'there - -Foo χρῆν - -Multiple spaces - |