From e30d02286081804e8eeeac42c17973446fc5aa07 Mon Sep 17 00:00:00 2001 From: Simon Josefsson Date: Mon, 4 May 2009 09:15:34 +0200 Subject: [PATCH] New module glob-tests. --- ChangeLog | 5 ++++ modules/glob-tests | 6 ++++ tests/test-glob.c | 84 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 95 insertions(+) create mode 100644 modules/glob-tests create mode 100644 tests/test-glob.c diff --git a/ChangeLog b/ChangeLog index cd32b23cd..02062fb0d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,10 @@ 2009-05-04 Simon Josefsson + * modules/glob-tests: New module. + * tests/test-glob.c: Add. + +2009-05-04 Simon Josefsson + * modules/fnmatch-tests: New module. * tests/test-fnmatch.c: Add. diff --git a/modules/glob-tests b/modules/glob-tests new file mode 100644 index 000000000..f1b5c383b --- /dev/null +++ b/modules/glob-tests @@ -0,0 +1,6 @@ +Files: +tests/test-glob.c + +Makefile.am: +TESTS += test-glob +check_PROGRAMS += test-glob diff --git a/tests/test-glob.c b/tests/test-glob.c new file mode 100644 index 000000000..cd1ea4d97 --- /dev/null +++ b/tests/test-glob.c @@ -0,0 +1,84 @@ +/* Test of glob/globfree functions. + Copyright (C) 2009 Free Software Foundation, Inc. + + This program is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation; either version 3 of the License, or + (at your option) any later version. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program. If not, see . */ + +/* Written by Simon Josefsson , 2009. */ + +#include + +#include + +#include +#include + +#define ASSERT(expr) \ + do \ + { \ + if (!(expr)) \ + { \ + fprintf (stderr, "%s:%d: assertion failed\n", \ + __FILE__, __LINE__); \ + fflush (stderr); \ + abort (); \ + } \ + } \ + while (0) + +#define GL_NO_SUCH_FILE "/gnulib-magic-does-not-exist" + +int +main () +{ + int res; + glob_t g; + + /* Make sure glob_t struct members exists. */ + ASSERT (sizeof (g.gl_pathc)); + ASSERT (sizeof (g.gl_pathv)); + ASSERT (sizeof (g.gl_offs)); + + res = glob (".", 0, NULL, &g); + ASSERT (res == 0 && g.gl_pathc == 1); + globfree (&g); + + res = glob (".", GLOB_NOSORT, NULL, &g); + ASSERT (res == 0 && g.gl_pathc == 1); + globfree (&g); + + res = glob (".", GLOB_MARK, NULL, &g); + ASSERT (res == 0 && g.gl_pathc == 1); + + res = glob (".", GLOB_APPEND, NULL, &g); + ASSERT (res == 0 && g.gl_pathc == 2); + globfree (&g); + + res = glob (".", GLOB_NOESCAPE, NULL, &g); + ASSERT (res == 0 && g.gl_pathc == 1); + globfree (&g); + + res = glob ("./*", 0, NULL, &g); + ASSERT (res == 0 && g.gl_pathc >= 1); + globfree (&g); + + res = glob (GL_NO_SUCH_FILE, 0, NULL, &g); + ASSERT (res == GLOB_NOMATCH); + + res = glob (GL_NO_SUCH_FILE, GLOB_NOCHECK, NULL, &g); + ASSERT (res == 0 && g.gl_pathc == 1); + ASSERT (strcmp (g.gl_pathv[0], GL_NO_SUCH_FILE) == 0); + globfree (&g); + + return 0; +} -- 2.11.0