diff options
Diffstat (limited to 'src/regress/lib/libc/glob')
-rw-r--r-- | src/regress/lib/libc/glob/Makefile | 16 | ||||
-rw-r--r-- | src/regress/lib/libc/glob/files | 47 | ||||
-rw-r--r-- | src/regress/lib/libc/glob/globtest.c | 142 | ||||
-rw-r--r-- | src/regress/lib/libc/glob/globtest.in | 116 |
4 files changed, 0 insertions, 321 deletions
diff --git a/src/regress/lib/libc/glob/Makefile b/src/regress/lib/libc/glob/Makefile deleted file mode 100644 index b3f9567833..0000000000 --- a/src/regress/lib/libc/glob/Makefile +++ /dev/null | |||
@@ -1,16 +0,0 @@ | |||
1 | # $OpenBSD: Makefile,v 1.4 2011/05/01 04:25:40 guenther Exp $ | ||
2 | |||
3 | PROG= globtest | ||
4 | |||
5 | run-regress-${PROG}: | ||
6 | mkdir -m 755 -p `sed 's@/[^/]*$$@@' ${.CURDIR}/files | sort -u` | ||
7 | umask 022; touch `cat ${.CURDIR}/files` | ||
8 | chmod 0755 `grep '/r[^/]*$$' ${.CURDIR}/files` | ||
9 | chmod 0444 `grep '/s[^/]*$$' ${.CURDIR}/files` | ||
10 | chmod 0711 `grep '/t[^/]*$$' ${.CURDIR}/files` | ||
11 | ./${PROG} ${.CURDIR}/${PROG}.in | ||
12 | |||
13 | clean: | ||
14 | rm -rf fake ${PROG} ${OBJS} *.core | ||
15 | |||
16 | .include <bsd.regress.mk> | ||
diff --git a/src/regress/lib/libc/glob/files b/src/regress/lib/libc/glob/files deleted file mode 100644 index c5e92aacd5..0000000000 --- a/src/regress/lib/libc/glob/files +++ /dev/null | |||
@@ -1,47 +0,0 @@ | |||
1 | fake/bin/[ | ||
2 | fake/bin/cat | ||
3 | fake/bin/chgrp | ||
4 | fake/bin/chio | ||
5 | fake/bin/chmod | ||
6 | fake/bin/cksum | ||
7 | fake/bin/cp | ||
8 | fake/bin/cpio | ||
9 | fake/bin/csh | ||
10 | fake/bin/date | ||
11 | fake/bin/dd | ||
12 | fake/bin/df | ||
13 | fake/bin/domainname | ||
14 | fake/bin/echo | ||
15 | fake/bin/ed | ||
16 | fake/bin/eject | ||
17 | fake/bin/expr | ||
18 | fake/bin/hostname | ||
19 | fake/bin/kill | ||
20 | fake/bin/ksh | ||
21 | fake/bin/ln | ||
22 | fake/bin/ls | ||
23 | fake/bin/md5 | ||
24 | fake/bin/mkdir | ||
25 | fake/bin/mt | ||
26 | fake/bin/mv | ||
27 | fake/bin/pax | ||
28 | fake/bin/ps | ||
29 | fake/bin/pwd | ||
30 | fake/bin/rcp | ||
31 | fake/bin/rksh | ||
32 | fake/bin/rm | ||
33 | fake/bin/rmail | ||
34 | fake/bin/rmd160 | ||
35 | fake/bin/rmdir | ||
36 | fake/bin/sh | ||
37 | fake/bin/sha1 | ||
38 | fake/bin/sha256 | ||
39 | fake/bin/sha384 | ||
40 | fake/bin/sha512 | ||
41 | fake/bin/sleep | ||
42 | fake/bin/stty | ||
43 | fake/bin/sum | ||
44 | fake/bin/sync | ||
45 | fake/bin/systrace | ||
46 | fake/bin/tar | ||
47 | fake/bin/test | ||
diff --git a/src/regress/lib/libc/glob/globtest.c b/src/regress/lib/libc/glob/globtest.c deleted file mode 100644 index 325a7750f0..0000000000 --- a/src/regress/lib/libc/glob/globtest.c +++ /dev/null | |||
@@ -1,142 +0,0 @@ | |||
1 | /* $OpenBSD: globtest.c,v 1.3 2011/01/07 19:45:44 millert Exp $ */ | ||
2 | |||
3 | /* | ||
4 | * Public domain, 2008, Todd C. Miller <Todd.Miller@courtesan.com> | ||
5 | */ | ||
6 | |||
7 | #include <err.h> | ||
8 | #include <glob.h> | ||
9 | #include <stdio.h> | ||
10 | #include <stdlib.h> | ||
11 | #include <string.h> | ||
12 | |||
13 | #define MAX_RESULTS 256 | ||
14 | |||
15 | struct gl_entry { | ||
16 | int flags; | ||
17 | int nresults; | ||
18 | char pattern[1024]; | ||
19 | char *results[MAX_RESULTS]; | ||
20 | mode_t modes[MAX_RESULTS]; | ||
21 | }; | ||
22 | |||
23 | int test_glob(struct gl_entry *); | ||
24 | |||
25 | int | ||
26 | main(int argc, char **argv) | ||
27 | { | ||
28 | FILE *fp = stdin; | ||
29 | char *buf, *cp; | ||
30 | int errors = 0, lineno, mode; | ||
31 | struct gl_entry entry; | ||
32 | size_t len; | ||
33 | |||
34 | if (argc > 1) { | ||
35 | if ((fp = fopen(argv[1], "r")) == NULL) | ||
36 | err(1, "%s", argv[1]); | ||
37 | } | ||
38 | |||
39 | /* | ||
40 | * Read in test file, which is formatted thusly: | ||
41 | * | ||
42 | * [pattern] <flags> | ||
43 | * result1 [mode] | ||
44 | * result2 [mode] | ||
45 | * result3 [mode] | ||
46 | * ... | ||
47 | * | ||
48 | */ | ||
49 | lineno = 0; | ||
50 | memset(&entry, 0, sizeof(entry)); | ||
51 | while ((buf = fgetln(fp, &len)) != NULL) { | ||
52 | lineno++; | ||
53 | if (buf[len - 1] != '\n') | ||
54 | errx(1, "missing newline at EOF"); | ||
55 | buf[--len] = '\0'; | ||
56 | if (len == 0) | ||
57 | continue; /* blank line */ | ||
58 | |||
59 | if (buf[0] == '[') { | ||
60 | /* check previous pattern */ | ||
61 | if (entry.pattern[0]) | ||
62 | errors += test_glob(&entry); | ||
63 | |||
64 | /* start new entry */ | ||
65 | if ((cp = strrchr(buf + 1, ']')) == NULL) | ||
66 | errx(1, "invalid entry on line %d", lineno); | ||
67 | len = cp - buf - 1; | ||
68 | if (len >= sizeof(entry.pattern)) | ||
69 | errx(1, "pattern too big on line %d", lineno); | ||
70 | memcpy(entry.pattern, buf + 1, len); | ||
71 | entry.pattern[len] = '\0'; | ||
72 | |||
73 | buf = cp + 2; | ||
74 | if (*buf++ != '<') | ||
75 | errx(1, "invalid entry on line %d", lineno); | ||
76 | if ((cp = strchr(buf, '>')) == NULL) | ||
77 | errx(1, "invalid entry on line %d", lineno); | ||
78 | entry.flags = (int)strtol(buf, &cp, 0); | ||
79 | if (*cp != '>' || entry.flags < 0 || entry.flags > 0x4000) | ||
80 | errx(1, "invalid flags: %s", buf); | ||
81 | entry.nresults = 0; | ||
82 | continue; | ||
83 | } | ||
84 | if (!entry.pattern[0]) | ||
85 | errx(1, "missing entry on line %d", lineno); | ||
86 | |||
87 | if (entry.nresults + 1 > MAX_RESULTS) { | ||
88 | errx(1, "too many results for %s, max %d", | ||
89 | entry.pattern, MAX_RESULTS); | ||
90 | } | ||
91 | if ((cp = strchr(buf, ' ')) != NULL) { | ||
92 | *cp++ = '\0'; | ||
93 | mode = strtol(cp, NULL, 8); | ||
94 | } else | ||
95 | mode = -1; | ||
96 | entry.modes[entry.nresults] = (mode_t)mode; | ||
97 | entry.results[entry.nresults++] = strdup(buf); | ||
98 | } | ||
99 | if (entry.pattern[0]) | ||
100 | errors += test_glob(&entry); /* test last pattern */ | ||
101 | exit(errors); | ||
102 | } | ||
103 | |||
104 | int test_glob(struct gl_entry *entry) | ||
105 | { | ||
106 | glob_t gl; | ||
107 | int i = 0; | ||
108 | |||
109 | if (glob(entry->pattern, entry->flags, NULL, &gl) != 0) | ||
110 | errx(1, "glob failed: %s", entry->pattern); | ||
111 | |||
112 | if (gl.gl_matchc != entry->nresults) | ||
113 | goto mismatch; | ||
114 | |||
115 | for (i = 0; i < gl.gl_matchc; i++) { | ||
116 | if (strcmp(gl.gl_pathv[i], entry->results[i]) != 0) | ||
117 | goto mismatch; | ||
118 | if ((entry->flags & GLOB_KEEPSTAT) != 0) { | ||
119 | if (entry->modes[i] == -1 || | ||
120 | gl.gl_statv[i] == NULL || | ||
121 | entry->modes[i] != gl.gl_statv[i]->st_mode) | ||
122 | goto badmode; | ||
123 | } | ||
124 | free(entry->results[i]); | ||
125 | } | ||
126 | return (0); | ||
127 | badmode: | ||
128 | warnx("mismatch mode for pattern %s, flags 0x%x, file \"%s\" " | ||
129 | "(found %07o, expected %07o)", entry->pattern, entry->flags, | ||
130 | gl.gl_pathv[i], gl.gl_statv[i] ? gl.gl_statv[i]->st_mode : 0, | ||
131 | entry->modes[i]); | ||
132 | goto cleanup; | ||
133 | mismatch: | ||
134 | warnx("mismatch for pattern %s, flags 0x%x " | ||
135 | "(found \"%s\", expected \"%s\")", entry->pattern, entry->flags, | ||
136 | gl.gl_pathv[i], entry->results[i]); | ||
137 | cleanup: | ||
138 | while (i < gl.gl_matchc) { | ||
139 | free(entry->results[i++]); | ||
140 | } | ||
141 | return (1); | ||
142 | } | ||
diff --git a/src/regress/lib/libc/glob/globtest.in b/src/regress/lib/libc/glob/globtest.in deleted file mode 100644 index 2ae3b4dfb2..0000000000 --- a/src/regress/lib/libc/glob/globtest.in +++ /dev/null | |||
@@ -1,116 +0,0 @@ | |||
1 | [fake/bin/[[:alpha:]]*] <0x0> | ||
2 | fake/bin/cat | ||
3 | fake/bin/chgrp | ||
4 | fake/bin/chio | ||
5 | fake/bin/chmod | ||
6 | fake/bin/cksum | ||
7 | fake/bin/cp | ||
8 | fake/bin/cpio | ||
9 | fake/bin/csh | ||
10 | fake/bin/date | ||
11 | fake/bin/dd | ||
12 | fake/bin/df | ||
13 | fake/bin/domainname | ||
14 | fake/bin/echo | ||
15 | fake/bin/ed | ||
16 | fake/bin/eject | ||
17 | fake/bin/expr | ||
18 | fake/bin/hostname | ||
19 | fake/bin/kill | ||
20 | fake/bin/ksh | ||
21 | fake/bin/ln | ||
22 | fake/bin/ls | ||
23 | fake/bin/md5 | ||
24 | fake/bin/mkdir | ||
25 | fake/bin/mt | ||
26 | fake/bin/mv | ||
27 | fake/bin/pax | ||
28 | fake/bin/ps | ||
29 | fake/bin/pwd | ||
30 | fake/bin/rcp | ||
31 | fake/bin/rksh | ||
32 | fake/bin/rm | ||
33 | fake/bin/rmail | ||
34 | fake/bin/rmd160 | ||
35 | fake/bin/rmdir | ||
36 | fake/bin/sh | ||
37 | fake/bin/sha1 | ||
38 | fake/bin/sha256 | ||
39 | fake/bin/sha384 | ||
40 | fake/bin/sha512 | ||
41 | fake/bin/sleep | ||
42 | fake/bin/stty | ||
43 | fake/bin/sum | ||
44 | fake/bin/sync | ||
45 | fake/bin/systrace | ||
46 | fake/bin/tar | ||
47 | fake/bin/test | ||
48 | |||
49 | [fake/bin/[[:alpha:]]*] <0x4000> | ||
50 | fake/bin/cat 0100644 | ||
51 | fake/bin/chgrp 0100644 | ||
52 | fake/bin/chio 0100644 | ||
53 | fake/bin/chmod 0100644 | ||
54 | fake/bin/cksum 0100644 | ||
55 | fake/bin/cp 0100644 | ||
56 | fake/bin/cpio 0100644 | ||
57 | fake/bin/csh 0100644 | ||
58 | fake/bin/date 0100644 | ||
59 | fake/bin/dd 0100644 | ||
60 | fake/bin/df 0100644 | ||
61 | fake/bin/domainname 0100644 | ||
62 | fake/bin/echo 0100644 | ||
63 | fake/bin/ed 0100644 | ||
64 | fake/bin/eject 0100644 | ||
65 | fake/bin/expr 0100644 | ||
66 | fake/bin/hostname 0100644 | ||
67 | fake/bin/kill 0100644 | ||
68 | fake/bin/ksh 0100644 | ||
69 | fake/bin/ln 0100644 | ||
70 | fake/bin/ls 0100644 | ||
71 | fake/bin/md5 0100644 | ||
72 | fake/bin/mkdir 0100644 | ||
73 | fake/bin/mt 0100644 | ||
74 | fake/bin/mv 0100644 | ||
75 | fake/bin/pax 0100644 | ||
76 | fake/bin/ps 0100644 | ||
77 | fake/bin/pwd 0100644 | ||
78 | fake/bin/rcp 0100755 | ||
79 | fake/bin/rksh 0100755 | ||
80 | fake/bin/rm 0100755 | ||
81 | fake/bin/rmail 0100755 | ||
82 | fake/bin/rmd160 0100755 | ||
83 | fake/bin/rmdir 0100755 | ||
84 | fake/bin/sh 0100444 | ||
85 | fake/bin/sha1 0100444 | ||
86 | fake/bin/sha256 0100444 | ||
87 | fake/bin/sha384 0100444 | ||
88 | fake/bin/sha512 0100444 | ||
89 | fake/bin/sleep 0100444 | ||
90 | fake/bin/stty 0100444 | ||
91 | fake/bin/sum 0100444 | ||
92 | fake/bin/sync 0100444 | ||
93 | fake/bin/systrace 0100444 | ||
94 | fake/bin/tar 0100711 | ||
95 | fake/bin/test 0100711 | ||
96 | |||
97 | [fake/bin/rm{,dir,ail}] <0x80> | ||
98 | fake/bin/rm | ||
99 | fake/bin/rmdir | ||
100 | fake/bin/rmail | ||
101 | |||
102 | [fake/bin/sha[[:digit:]]] <0x0> | ||
103 | fake/bin/sha1 | ||
104 | |||
105 | [fake/bin/sha[[:digit:]]*] <0x0> | ||
106 | fake/bin/sha1 | ||
107 | fake/bin/sha256 | ||
108 | fake/bin/sha384 | ||
109 | fake/bin/sha512 | ||
110 | |||
111 | [fake/bin/ca[a-z]] <0x0> | ||
112 | fake/bin/cat | ||
113 | |||
114 | [fake/b[a-z]*] <0x4000> | ||
115 | fake/bin 0040755 | ||
116 | |||