[Forensics-changes] [yara] 289/415: More regexp test cases
Hilko Bengen
bengen at moszumanska.debian.org
Thu Apr 3 05:43:16 UTC 2014
This is an automated email from the git hooks/post-receive script.
bengen pushed a commit to branch debian
in repository yara.
commit 9b66d5fe215c762c0af9b8796e1a4e0692c74024
Author: Victor M. Alvarez <plusvic at gmail.com>
Date: Wed Dec 4 16:54:57 2013 +0100
More regexp test cases
---
yara-python/tests.py | 49 +++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 49 insertions(+)
diff --git a/yara-python/tests.py b/yara-python/tests.py
index ef1f142..725b97c 100644
--- a/yara-python/tests.py
+++ b/yara-python/tests.py
@@ -59,9 +59,18 @@ RE_TESTS = [
# RE, string, expected result, expected matching
+ (')', '', SYNTAX_ERROR),
('abc', 'abc', SUCCEED, 'abc'),
+ ('abc', 'xbc', FAIL),
+ ('abc', 'axc', FAIL),
+ ('abc', 'abx', FAIL),
('abc', 'xabcx', SUCCEED, 'abc'),
+ ('abc', 'ababc', SUCCEED, 'abc'),
('a.c', 'abc', SUCCEED, 'abc'),
+ ('a.b', 'a\nb', FAIL),
+ ('a.*b', 'acc\nccb', FAIL),
+ ('a.{4,5}b', 'acc\nccb', FAIL),
+ ('a.b', 'a\rb', SUCCEED, 'a\rb'),
('ab*c', 'abc', SUCCEED, 'abc'),
('ab*c', 'ac', SUCCEED, 'ac'),
('ab*bc', 'abc', SUCCEED, 'abc'),
@@ -72,6 +81,9 @@ RE_TESTS = [
('ab+c', 'ac', FAIL),
('ab+', 'abbbb', SUCCEED, 'abbbb'),
('ab+?', 'abbbb', SUCCEED, 'ab'),
+ ('ab+bc', 'abc', FAIL),
+ ('ab+bc', 'abq', FAIL),
+ ('a+b+c', 'aabbabc', SUCCEED, 'abc'),
('ab?bc', 'abbbbc', FAIL),
('ab?c', 'abc', SUCCEED, 'abc'),
('ab*?', 'abbb', SUCCEED, 'a'),
@@ -81,6 +93,9 @@ RE_TESTS = [
('a(b|x)c', 'axc', SUCCEED, 'axc'),
('a(b|.)c', 'axc', SUCCEED, 'axc'),
('a(b|x|y)c', 'ayc', SUCCEED, 'ayc'),
+ ('(a+|b)*', 'ab', SUCCEED, 'ab'),
+ ('a|b|c|d|e', 'e', SUCCEED, 'e'),
+ ('(a|b|c|d|e)f', 'ef', SUCCEED, 'ef'),
('ab{1}c', 'abc', SUCCEED, 'abc'),
('ab{1,2}c', 'abbc', SUCCEED, 'abbc'),
('ab{1,}c', 'abbbc', SUCCEED, 'abbbc'),
@@ -112,6 +127,7 @@ RE_TESTS = [
('(abc', '', SYNTAX_ERROR),
('abc)', '', SYNTAX_ERROR),
('a[]b', '', SYNTAX_ERROR),
+ ('a\\', '', SYNTAX_ERROR),
('a[\\-b]', 'a-', SUCCEED, 'a-'),
('a[\\-b]', 'ab', SUCCEED, 'ab'),
('a[\\', '', SYNTAX_ERROR),
@@ -124,6 +140,7 @@ RE_TESTS = [
('a[^-b]c', 'a-c', FAIL),
('a[^]b]c', 'a]c', FAIL),
('a[^]b]c', 'adc', SUCCEED, 'adc'),
+ ('[^ab]*', 'cde', SUCCEED, 'cde'),
(')(', '', SYNTAX_ERROR),
(r'\n\r\t\f\a', '\n\r\t\f\a', SUCCEED, '\n\r\t\f\a'),
(r'[\n][\r][\t][\f][\a]', '\n\r\t\f\a', SUCCEED, '\n\r\t\f\a'),
@@ -139,6 +156,38 @@ RE_TESTS = [
('\D+', '1234abc5678', SUCCEED, 'abc'),
('[\D]+', '1234abc5678', SUCCEED, 'abc'),
('[\da-fA-F]+', '123abc', SUCCEED, '123abc'),
+ ('^(ab|cd)e', 'abcde', FAIL),
+ ('(abc|)ef', 'abcdef', SUCCEED, 'ef'),
+ ('(abc|)ef', 'abcef', SUCCEED, 'abcef'),
+
+ # This is allowed in most regexp engines but in order to keep the
+ # grammar free of shift/reduce conflicts I've decided not supporting
+ # it. Users can use the (abc|) form instead.
+
+ ('(|abc)ef', '', SYNTAX_ERROR),
+
+ ('((a)(b)c)(d)', 'abcd', SUCCEED, 'abcd'),
+ ('(a|b)c*d', 'abcd', SUCCEED, 'bcd'),
+ ('(ab|ab*)bc', 'abc', SUCCEED, 'abc'),
+ ('a([bc]*)c*', 'abc', SUCCEED, 'abc'),
+ ('a([bc]*)c*', 'ac', SUCCEED, 'ac'),
+ ('a([bc]*)c*', 'a', SUCCEED, 'a'),
+ ('a([bc]*)(c*d)', 'abcd', SUCCEED, 'abcd'),
+ ('a([bc]+)(c*d)', 'abcd', SUCCEED, 'abcd'),
+ ('a([bc]*)(c+d)', 'abcd', SUCCEED, 'abcd'),
+ ('a[bcd]*dcdcde', 'adcdcde', SUCCEED, 'adcdcde'),
+ ('a[bcd]+dcdcde', 'adcdcde', FAIL),
+ (r'\((.*), (.*)\)', '(a, b)', SUCCEED, '(a, b)'),
+ ('abc|123$', 'abcx', SUCCEED, 'abc'),
+ ('abc|123$', '123x', FAIL),
+ ('abc|^123', '123', SUCCEED, '123'),
+ ('abc|^123', 'x123', FAIL),
+ ('^a(bc+|b[eh])g|.h$', 'abhg', SUCCEED, 'abhg'),
+ ('(bc+d$|ef*g.|h?i(j|k))', 'effgz', SUCCEED, 'effgz'),
+ ('(bc+d$|ef*g.|h?i(j|k))', 'ij', SUCCEED, 'ij'),
+ ('(bc+d$|ef*g.|h?i(j|k))', 'effg', FAIL),
+ ('(bc+d$|ef*g.|h?i(j|k))', 'bcdd', FAIL),
+ ('(bc+d$|ef*g.|h?i(j|k))', 'reffgz', SUCCEED, 'effgz'),
]
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/forensics/yara.git
More information about the forensics-changes
mailing list