From ca5a2bf34a994373a6976865d4f112b8085b8ae8 Mon Sep 17 00:00:00 2001 From: Reyk Floeter Date: Tue, 23 Jun 2015 10:28:07 +0200 Subject: Add tests with lua53 for comparison --- regress/patterns/Makefile | 11 ++++ regress/patterns/patterns-tester.lua | 2 + regress/patterns/test-patterns-lua.out | 100 +++++++++++++++++++++++++++++++++ 3 files changed, 113 insertions(+) create mode 100644 regress/patterns/patterns-tester.lua create mode 100644 regress/patterns/test-patterns-lua.out diff --git a/regress/patterns/Makefile b/regress/patterns/Makefile index 024f96e..995b416 100644 --- a/regress/patterns/Makefile +++ b/regress/patterns/Makefile @@ -8,6 +8,11 @@ REGRESS_TARGETS= test-patterns CLEANFILES += patterns-tester +#LUA?= lua53 +.ifdef LUA +REGRESS_TARGETS+= test-patterns-lua +.endif + patterns-tester: patterns-tester.c patterns.c patterns.h ${CC} -o $@ ${CFLAGS} ${.CURDIR}/patterns-tester.c ${HTTPDSRC}/patterns.c -I${HTTPDSRC} @@ -17,4 +22,10 @@ test-patterns: patterns-tester test-patterns.out test-patterns.in ./patterns-tester "$${string}" "$${pattern}" 2>&1 || true; \ done | diff -I 'OpenBSD' -u ${.CURDIR}/test-patterns.out - +test-patterns-lua: patterns-tester.lua test-patterns-lua.out test-patterns.in + cat ${.CURDIR}/test-patterns.in | grep -v '^#' | \ + while IFS=' ' read string pattern comments ; do \ + ${LUA} ./patterns-tester.lua "$${string}" "$${pattern}" 2>&1 || true; \ + done | diff -I 'OpenBSD' -u ${.CURDIR}/test-patterns-lua.out - + .include diff --git a/regress/patterns/patterns-tester.lua b/regress/patterns/patterns-tester.lua new file mode 100644 index 0000000..15df0a7 --- /dev/null +++ b/regress/patterns/patterns-tester.lua @@ -0,0 +1,2 @@ +print(string.format("string='%s'\npattern='%s'", arg[1], arg[2])); +print(string.match(arg[1], arg[2])); diff --git a/regress/patterns/test-patterns-lua.out b/regress/patterns/test-patterns-lua.out new file mode 100644 index 0000000..cd9fe6a --- /dev/null +++ b/regress/patterns/test-patterns-lua.out @@ -0,0 +1,100 @@ +# $OpenBSD$ +string='/page/51' +pattern='^/(%a+)/(%d+)$' +page 51 +string='/Apage/51' +pattern='/[^%d][%w%u][^%c]+()[%d]+' +9 +string='/^page/51' +pattern='/^(.a.e)/(.)' +page 5 +string='/page/page-51' +pattern='/(.*)/%1-(%d+)' +page 51 +string='/page/[51]' +pattern='/page/(%b[])' +[51] +string=':-]' +pattern=']+' +] +string=':-)' +pattern='[)]+' +) +string='/page/51' +pattern='$^' +nil +string='1234567890' +pattern='([2-5]-)' + +string='****' +pattern='^**$' +**** +string='xxxx' +pattern='^x*$' +xxxx +string='/page/51' +pattern='no-%d-match' +nil +string='/page/page-51' +pattern='/(.*)/%9-(%d+)' +lua53: ./patterns-tester.lua:2: invalid capture index %9 +stack traceback: + [C]: in function 'string.match' + ./patterns-tester.lua:2: in main chunk + [C]: in ? +string=':-)' +pattern=')+' +lua53: ./patterns-tester.lua:2: invalid pattern capture +stack traceback: + [C]: in function 'string.match' + ./patterns-tester.lua:2: in main chunk + [C]: in ? +string='/page/51' +pattern='/page/51(' +lua53: ./patterns-tester.lua:2: unfinished capture +stack traceback: + [C]: in function 'string.match' + ./patterns-tester.lua:2: in main chunk + [C]: in ? +string='/page/51' +pattern='/page/51%' +lua53: ./patterns-tester.lua:2: malformed pattern (ends with '%') +stack traceback: + [C]: in function 'string.match' + ./patterns-tester.lua:2: in main chunk + [C]: in ? +string='/page/51' +pattern='/page/[51' +lua53: ./patterns-tester.lua:2: malformed pattern (missing ']') +stack traceback: + [C]: in function 'string.match' + ./patterns-tester.lua:2: in main chunk + [C]: in ? +string='/page/(51)' +pattern='/page/%b(' +lua53: ./patterns-tester.lua:2: malformed pattern (missing arguments to '%b') +stack traceback: + [C]: in function 'string.match' + ./patterns-tester.lua:2: in main chunk + [C]: in ? +string='/page/51' +pattern='()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()()' +lua53: ./patterns-tester.lua:2: too many captures +stack traceback: + [C]: in function 'string.match' + ./patterns-tester.lua:2: in main chunk + [C]: in ? +string='/page/51' +pattern='/page/%f' +lua53: ./patterns-tester.lua:2: missing '[' after '%f' in pattern +stack traceback: + [C]: in function 'string.match' + ./patterns-tester.lua:2: in main chunk + [C]: in ? +string='/page/51' +pattern='/page%f/51' +lua53: ./patterns-tester.lua:2: missing '[' after '%f' in pattern +stack traceback: + [C]: in function 'string.match' + ./patterns-tester.lua:2: in main chunk + [C]: in ? -- cgit v1.2.3-54-g00ecf