On Tue, Dec 03, 2013 at 12:12:20PM -0800, Steve Beattie wrote:
> Signed-off-by: Steve Beattie <[email protected]>

Acked-by: Seth Arnold <[email protected]>

I think one more case would be useful, to check that /**/ works as
expected:

        MY_REGEX_TEST("/**/", "/[^/\\x00][^\\x00]*/", ePatternTailGlob);

Does that look right?

Thanks

> ---
>  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;
>  }
> 

Attachment: signature.asc
Description: Digital signature

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

Reply via email to