Signed-off-by: Steve Beattie <[email protected]>
---
 parser/parser_regex.c |   31 +++++++++++++++++++++++++++++++
 1 file changed, 31 insertions(+)

Index: b/parser/parser_regex.c
===================================================================
--- a/parser/parser_regex.c
+++ b/parser/parser_regex.c
@@ -1359,6 +1359,7 @@ static int test_aaregex_to_pcre(void)
        MY_REGEX_FAIL_TEST("blort]");
        MY_REGEX_FAIL_TEST("blo]rt");
        MY_REGEX_FAIL_TEST("]blort");
+       MY_REGEX_TEST("b[lor]t", "b[lor]t", ePatternRegex);
 
        /* simple alternation tests */
        MY_REGEX_TEST("{alpha,beta}", "(alpha|beta)", ePatternRegex);
@@ -1377,6 +1378,36 @@ static int test_aaregex_to_pcre(void)
        MY_REGEX_TEST("{{alpha,alpha{blort,nested}}beta,beta}", 
"((alpha|alpha(blort|nested))beta|beta)", ePatternRegex);
        MY_REGEX_TEST("{{alpha,alpha{blort,nested}}beta,beta}", 
"((alpha|alpha(blort|nested))beta|beta)", ePatternRegex);
        MY_REGEX_TEST("{{a,b{c,d}}e,{f,{g,{h{i,j,k},l}m},n}o}", 
"((a|b(c|d))e|(f|(g|(h(i|j|k)|l)m)|n)o)", ePatternRegex);
+       /* max nesting depth = 50 */
+       
MY_REGEX_TEST("{a{a{a{a{a{a{a{a{a{a{a{a{a{a{a{a{a{a{a{a{a{a{a{a{a{a{a{a{a{a{a{a{a{a{a{a{a{a{a{a{a{a{a{a{a{a{a{a{a,b},b},b},b},b},b},b},b},b},b},b},b},b},b},b},b},b},b},b},b},b},b},b},b},b},b},b},b},b},b},b},b},b},b},b},b},b},b},b},b},b},b},b},b},b},b},b},b}b,blort}",
+                       
"(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a(a|b)|b)|b)|b)|b)|b)|b)|b)|b)|b)|b)|b)|b)|b)|b)|b)|b)|b)|b)|b)|b)|b)|b)|b)|b)|b)|b)|b)|b)|b)|b)|b)|b)|b)|b)|b)|b)|b)|b)|b)|b)|b)|b)|b)|b)|b)|b)|b)b|blort)",
 ePatternRegex);
+       
MY_REGEX_FAIL_TEST("{a{a{a{a{a{a{a{a{a{a{a{a{a{a{a{a{a{a{a{a{a{a{a{a{a{a{a{a{a{a{a{a{a{a{a{a{a{a{a{a{a{a{a{a{a{a{a{a{a{a,b},b},b},b},b},b},b},b},b},b},b},b},b},b},b},b},b},b},b},b},b},b},b},b},b},b},b},b},b},b},b},b},b},b},b},b},b},b},b},b},b},b},b},b},b},b},b},b},b}b,blort}");
+
+       /* simple single char */
+       MY_REGEX_TEST("blor?t", "blor[^/\\x00]t", ePatternRegex);
+
+       /* simple globbing */
+       MY_REGEX_TEST("/*", "/[^/\\x00][^/\\x00]*", ePatternRegex);
+       MY_REGEX_TEST("/blort/*", "/blort/[^/\\x00][^/\\x00]*", ePatternRegex);
+       MY_REGEX_TEST("/*/blort", "/[^/\\x00][^/\\x00]*/blort", ePatternRegex);
+       MY_REGEX_TEST("/**", "/[^/\\x00][^\\x00]*", ePatternTailGlob);
+       MY_REGEX_TEST("/blort/**", "/blort/[^/\\x00][^\\x00]*", 
ePatternTailGlob);
+       MY_REGEX_TEST("/**/blort", "/[^/\\x00][^\\x00]*/blort", ePatternRegex);
+
+       /* more complicated quoting */
+       MY_REGEX_FAIL_TEST("\\\\[");
+       MY_REGEX_FAIL_TEST("\\\\]");
+       MY_REGEX_TEST("\\\\?", "\\\\[^/\\x00]", ePatternRegex);
+       MY_REGEX_FAIL_TEST("\\\\{");
+       MY_REGEX_FAIL_TEST("\\\\}");
+       MY_REGEX_TEST("\\\\,", "\\\\,", ePatternBasic);
+       MY_REGEX_TEST("\\\\^", "\\\\\\^", ePatternBasic);
+       MY_REGEX_TEST("\\\\$", "\\\\\\$", ePatternBasic);
+       MY_REGEX_TEST("\\\\.", "\\\\\\.", ePatternBasic);
+       MY_REGEX_TEST("\\\\+", "\\\\\\+", ePatternBasic);
+       MY_REGEX_TEST("\\\\|", "\\\\\\|", ePatternBasic);
+       MY_REGEX_TEST("\\\\(", "\\\\\\(", ePatternBasic);
+       MY_REGEX_TEST("\\\\)", "\\\\\\)", ePatternBasic);
 
        return rc;
 }


-- 
AppArmor mailing list
[email protected]
Modify settings or unsubscribe at: 
https://lists.ubuntu.com/mailman/listinfo/apparmor

Reply via email to