about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog8
-rw-r--r--posix/Makefile4
-rw-r--r--posix/bug-glob3.c45
3 files changed, 55 insertions, 2 deletions
diff --git a/ChangeLog b/ChangeLog
index 87d8d57ae1..b60b4a494e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,4 +1,12 @@
 2010-03-24  Ulrich Drepper  <drepper@redhat.com>
+
+	* 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  <drepper@redhat.com>
 	    Andreas Schwab  <andreas@redhat.com>
 
 	* posix/glob.c (glob): Clean up gl_pathc and gl_pathv earlier.
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 <glob.h>
+#include <stdio.h>
+#include <string.h>
+
+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"