From: Ulrich Drepper Date: Sun, 1 Apr 2007 19:43:35 +0000 (+0000) Subject: Test of fnmatch with patterns using lots of *. X-Git-Tag: cvs/fedora-glibc-20070416T2350~19 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=ed09a96ca8b1b9c830343b977f317ca11d691a27;p=thirdparty%2Fglibc.git Test of fnmatch with patterns using lots of *. --- diff --git a/posix/tst-fnmatch2.c b/posix/tst-fnmatch2.c new file mode 100644 index 00000000000..28a0871c1c6 --- /dev/null +++ b/posix/tst-fnmatch2.c @@ -0,0 +1,35 @@ +#include +#include + +int +do_test (void) +{ + char pattern[] = "a*b*c*d*e*f*g*h*i*j*k*l*m*n*o*p*q*r*s*t*u*v*w*x*y*z*"; + const char *string = "aaaabbbbccccddddeeeeffffgggghhhhiiiijjjjkkkkllllmmmm" + "nnnnooooppppqqqqrrrrssssttttuuuuvvvvwwwwxxxxyyyy"; + if (fnmatch (pattern, string, 0) != FNM_NOMATCH) + { + puts ("First fnmatch didn't return FNM_NOMATCH"); + return 1; + } + pattern[(sizeof pattern) - 3] = '*'; + if (fnmatch (pattern, string, 0) != 0) + { + puts ("Second fnmatch didn't return 0"); + return 1; + } + if (fnmatch ("a*b/*", "abbb/.x", FNM_PATHNAME | FNM_PERIOD) != FNM_NOMATCH) + { + puts ("Third fnmatch didn't return FNM_NOMATCH"); + return 1; + } + if (fnmatch ("a*b/*", "abbb/xy", FNM_PATHNAME | FNM_PERIOD) != 0) + { + puts ("Fourth fnmatch didn't return 0"); + return 1; + } + return 0; +} + +#define TEST_FUNCTION do_test () +#include "../test-skeleton.c"