aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorReyk Floeter <reyk@esdenera.com>2015-06-23 10:28:07 +0200
committerReyk Floeter <reyk@esdenera.com>2015-06-23 10:29:07 +0200
commitca5a2bf34a994373a6976865d4f112b8085b8ae8 (patch)
treed9f28b85b6b221e7059e551470f352c0ade7a8e7
parenta6ac783e163ccffbcd2d28627497a7bb31a9dd3b (diff)
downloadhttpd-ca5a2bf34a994373a6976865d4f112b8085b8ae8.tar.gz
httpd-ca5a2bf34a994373a6976865d4f112b8085b8ae8.zip
Add tests with lua53 for comparison
-rw-r--r--regress/patterns/Makefile11
-rw-r--r--regress/patterns/patterns-tester.lua2
-rw-r--r--regress/patterns/test-patterns-lua.out100
3 files changed, 113 insertions, 0 deletions
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 <bsd.regress.mk>
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 ?