From c27849fbbf94f240704ac648f6b57daec08f0533 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Wed, 24 Mar 2010 12:10:51 -0700 Subject: [PATCH] Add test for last glob bug. --- ChangeLog | 8 ++++++++ posix/Makefile | 4 ++-- posix/bug-glob3.c | 45 +++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 55 insertions(+), 2 deletions(-) create mode 100644 posix/bug-glob3.c diff --git a/ChangeLog b/ChangeLog index 87d8d57ae1..b60b4a494e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2010-03-24 Ulrich Drepper + + * posix/tst-gnuglob.c: Add tests with empty patterns. For this + rewrite the tests to add support for failing glob calls. + Some other minor cleanups. + * posix/bug-glob3.c: New file. + * posix/Makefile (tests): Add bug-glob3. + 2010-03-24 Ulrich Drepper Andreas Schwab diff --git a/posix/Makefile b/posix/Makefile index 2a467a8f7b..1a369ddf84 100644 --- a/posix/Makefile +++ b/posix/Makefile @@ -1,4 +1,4 @@ -# Copyright (C) 1991-1999, 2000-2006, 2007, 2009 Free Software Foundation, Inc. +# Copyright (C) 1991-1999, 2000-2007, 2009, 2010 Free Software Foundation, Inc. # This file is part of the GNU C Library. # The GNU C Library is free software; you can redistribute it and/or @@ -86,7 +86,7 @@ tests := tstgetopt testfnm runtests runptests \ tst-nice tst-nanosleep tst-regex2 \ transbug tst-rxspencer tst-pcre tst-boost \ bug-ga1 tst-vfork1 tst-vfork2 tst-vfork3 tst-waitid \ - tst-getaddrinfo2 bug-glob1 bug-glob2 tst-sysconf \ + tst-getaddrinfo2 bug-glob1 bug-glob2 bug-glob3 tst-sysconf \ tst-execvp1 tst-execvp2 tst-execlp1 tst-execlp2 \ tst-execv1 tst-execv2 tst-execl1 tst-execl2 \ tst-execve1 tst-execve2 tst-execle1 tst-execle2 \ diff --git a/posix/bug-glob3.c b/posix/bug-glob3.c new file mode 100644 index 0000000000..f2fbd703dd --- /dev/null +++ b/posix/bug-glob3.c @@ -0,0 +1,45 @@ +#include +#include +#include + +static int +do_test (void) +{ + int result = 0; + glob_t g; + g.gl_pathc = 0; + + int r = glob ("", 0, NULL, &g); + if (r != GLOB_NOMATCH) + { + puts ("glob (\"\", 0, NULL, &g) did not fail"); + result = 1; + } + else if (g.gl_pathc != 0) + { + puts ("gl_pathc after glob (\"\", 0, NULL, &g) not zero"); + result = 1; + } + + r = glob ("", GLOB_NOCHECK, NULL, &g); + if (r != 0) + { + puts ("glob (\"\", GLOB_NOCHECK, NULL, &g) did fail"); + result = 1; + } + else if (g.gl_pathc != 1) + { + puts ("gl_pathc after glob (\"\", GLOB_NOCHECK, NULL, &g) not 1"); + result = 1; + } + else if (strcmp (g.gl_pathv[0], "") != 0) + { + puts ("gl_pathv[0] after glob (\"\", GLOB_NOCHECK, NULL, &g) not \"\""); + result = 1; + } + + return result; +} + +#define TEST_FUNCTION do_test () +#include "../test-skeleton.c"