This source file includes following definitions.
- main
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 #include <config.h>
20
21 #include <glob.h>
22
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
28 #include <errno.h>
29 #include <string.h>
30 #include <unistd.h>
31
32 #include "macros.h"
33
34 #define BASE "test-glob.t"
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
74 if ((symlink (GL_NO_SUCH_FILE, BASE "globlink1") == 0 || errno == EEXIST)
75 && (symlink (".", BASE "globlink2") == 0 || errno == EEXIST))
76 {
77 res = glob (BASE "globlink[12]", 0, NULL, &g);
78 ASSERT (res == 0 && g.gl_pathc == 2);
79 ASSERT (strcmp (g.gl_pathv[0], BASE "globlink1") == 0);
80 ASSERT (strcmp (g.gl_pathv[1], BASE "globlink2") == 0);
81 globfree (&g);
82
83 res = glob (BASE "globlink[12]", GLOB_MARK, NULL, &g);
84 ASSERT (res == 0 && g.gl_pathc == 2);
85 ASSERT (strcmp (g.gl_pathv[0], BASE "globlink1") == 0);
86 ASSERT (strcmp (g.gl_pathv[1], BASE "globlink2/") == 0);
87 globfree (&g);
88 }
89
90 return 0;
91 }