Mercurial > gnulib
annotate tests/test-glob.c @ 40203:30d91797009f
autoupdate
author | Karl Berry <karl@freefriends.org> |
---|---|
date | Fri, 01 Mar 2019 08:42:42 -0800 |
parents | b06060465f09 |
children |
rev | line source |
---|---|
11549 | 1 /* Test of glob/globfree functions. |
40057
b06060465f09
maint: Run 'make update-copyright'
Paul Eggert <eggert@cs.ucla.edu>
parents:
39777
diff
changeset
|
2 Copyright (C) 2009-2019 Free Software Foundation, Inc. |
11549 | 3 |
4 This program is free software: you can redistribute it and/or modify | |
5 it under the terms of the GNU General Public License as published by | |
6 the Free Software Foundation; either version 3 of the License, or | |
7 (at your option) any later version. | |
8 | |
9 This program is distributed in the hope that it will be useful, | |
10 but WITHOUT ANY WARRANTY; without even the implied warranty of | |
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
12 GNU General Public License for more details. | |
13 | |
14 You should have received a copy of the GNU General Public License | |
19190 | 15 along with this program. If not, see <https://www.gnu.org/licenses/>. */ |
11549 | 16 |
17 /* Written by Simon Josefsson <simon@josefsson.org>, 2009. */ | |
18 | |
19 #include <config.h> | |
20 | |
21 #include <glob.h> | |
22 | |
12489 | 23 #include "signature.h" |
24 SIGNATURE_CHECK (glob, int, (char const *, int, int (*) (char const *, int), | |
25 glob_t *)); | |
26 SIGNATURE_CHECK (globfree, void, (glob_t *)); | |
27 | |
39777 | 28 #include <errno.h> |
11579
6ca34e75d78f
tests/test-glob.c: Include string.h for strcmp prototype.
Simon Josefsson <simon@josefsson.org>
parents:
11549
diff
changeset
|
29 #include <string.h> |
39777 | 30 #include <unistd.h> |
11549 | 31 |
12496
a48d3d749ca5
Refactor common macros used in tests.
Bruno Haible <bruno@clisp.org>
parents:
12489
diff
changeset
|
32 #include "macros.h" |
11549 | 33 |
19104
4e436f948972
glob: match dangling symlinks
Paul Eggert <eggert@cs.ucla.edu>
parents:
18626
diff
changeset
|
34 #define BASE "test-glob.t" |
11549 | 35 #define GL_NO_SUCH_FILE "/gnulib-magic-does-not-exist" |
36 | |
37 int | |
38 main () | |
39 { | |
40 int res; | |
41 glob_t g; | |
42 | |
43 res = glob (".", 0, NULL, &g); | |
44 ASSERT (res == 0 && g.gl_pathc == 1); | |
45 globfree (&g); | |
46 | |
47 res = glob (".", GLOB_NOSORT, NULL, &g); | |
48 ASSERT (res == 0 && g.gl_pathc == 1); | |
49 globfree (&g); | |
50 | |
51 res = glob (".", GLOB_MARK, NULL, &g); | |
52 ASSERT (res == 0 && g.gl_pathc == 1); | |
53 | |
54 res = glob (".", GLOB_APPEND, NULL, &g); | |
55 ASSERT (res == 0 && g.gl_pathc == 2); | |
56 globfree (&g); | |
57 | |
58 res = glob (".", GLOB_NOESCAPE, NULL, &g); | |
59 ASSERT (res == 0 && g.gl_pathc == 1); | |
60 globfree (&g); | |
61 | |
62 res = glob ("./*", 0, NULL, &g); | |
63 ASSERT (res == 0 && g.gl_pathc >= 1); | |
64 globfree (&g); | |
65 | |
66 res = glob (GL_NO_SUCH_FILE, 0, NULL, &g); | |
67 ASSERT (res == GLOB_NOMATCH); | |
68 | |
69 res = glob (GL_NO_SUCH_FILE, GLOB_NOCHECK, NULL, &g); | |
70 ASSERT (res == 0 && g.gl_pathc == 1); | |
71 ASSERT (strcmp (g.gl_pathv[0], GL_NO_SUCH_FILE) == 0); | |
72 globfree (&g); | |
73 | |
19104
4e436f948972
glob: match dangling symlinks
Paul Eggert <eggert@cs.ucla.edu>
parents:
18626
diff
changeset
|
74 if ((symlink (GL_NO_SUCH_FILE, BASE "globlink1") == 0 || errno == EEXIST) |
4e436f948972
glob: match dangling symlinks
Paul Eggert <eggert@cs.ucla.edu>
parents:
18626
diff
changeset
|
75 && (symlink (".", BASE "globlink2") == 0 || errno == EEXIST)) |
4e436f948972
glob: match dangling symlinks
Paul Eggert <eggert@cs.ucla.edu>
parents:
18626
diff
changeset
|
76 { |
4e436f948972
glob: match dangling symlinks
Paul Eggert <eggert@cs.ucla.edu>
parents:
18626
diff
changeset
|
77 res = glob (BASE "globlink[12]", 0, NULL, &g); |
4e436f948972
glob: match dangling symlinks
Paul Eggert <eggert@cs.ucla.edu>
parents:
18626
diff
changeset
|
78 ASSERT (res == 0 && g.gl_pathc == 2); |
4e436f948972
glob: match dangling symlinks
Paul Eggert <eggert@cs.ucla.edu>
parents:
18626
diff
changeset
|
79 ASSERT (strcmp (g.gl_pathv[0], BASE "globlink1") == 0); |
4e436f948972
glob: match dangling symlinks
Paul Eggert <eggert@cs.ucla.edu>
parents:
18626
diff
changeset
|
80 ASSERT (strcmp (g.gl_pathv[1], BASE "globlink2") == 0); |
4e436f948972
glob: match dangling symlinks
Paul Eggert <eggert@cs.ucla.edu>
parents:
18626
diff
changeset
|
81 globfree (&g); |
4e436f948972
glob: match dangling symlinks
Paul Eggert <eggert@cs.ucla.edu>
parents:
18626
diff
changeset
|
82 |
4e436f948972
glob: match dangling symlinks
Paul Eggert <eggert@cs.ucla.edu>
parents:
18626
diff
changeset
|
83 res = glob (BASE "globlink[12]", GLOB_MARK, NULL, &g); |
4e436f948972
glob: match dangling symlinks
Paul Eggert <eggert@cs.ucla.edu>
parents:
18626
diff
changeset
|
84 ASSERT (res == 0 && g.gl_pathc == 2); |
4e436f948972
glob: match dangling symlinks
Paul Eggert <eggert@cs.ucla.edu>
parents:
18626
diff
changeset
|
85 ASSERT (strcmp (g.gl_pathv[0], BASE "globlink1") == 0); |
4e436f948972
glob: match dangling symlinks
Paul Eggert <eggert@cs.ucla.edu>
parents:
18626
diff
changeset
|
86 ASSERT (strcmp (g.gl_pathv[1], BASE "globlink2/") == 0); |
4e436f948972
glob: match dangling symlinks
Paul Eggert <eggert@cs.ucla.edu>
parents:
18626
diff
changeset
|
87 globfree (&g); |
4e436f948972
glob: match dangling symlinks
Paul Eggert <eggert@cs.ucla.edu>
parents:
18626
diff
changeset
|
88 } |
4e436f948972
glob: match dangling symlinks
Paul Eggert <eggert@cs.ucla.edu>
parents:
18626
diff
changeset
|
89 |
11549 | 90 return 0; |
91 } |