1 |
commit: 4924cc4606ef4bd5991d66a42996dfb8e7c543ca |
2 |
Author: Mike Frysinger <vapier <AT> gentoo <DOT> org> |
3 |
AuthorDate: Mon Jul 4 22:36:03 2011 +0000 |
4 |
Commit: Mike Frysinger <vapier <AT> gentoo <DOT> org> |
5 |
CommitDate: Mon Jul 4 23:06:12 2011 +0000 |
6 |
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/sandbox.git;a=commit;h=4924cc46 |
7 |
|
8 |
libsandbox: catch mktemp related funcs |
9 |
|
10 |
URL: http://bugs.gentoo.org/374059 |
11 |
Reported-by: Nick Bowler <nbowler <AT> draconx.ca> |
12 |
Signed-off-by: Mike Frysinger <vapier <AT> gentoo.org> |
13 |
|
14 |
--- |
15 |
configure.ac | 9 +++++++++ |
16 |
libsandbox/libsandbox.c | 9 +++++++++ |
17 |
libsandbox/symbols.h.in | 9 +++++++++ |
18 |
libsandbox/wrapper-funcs/mkdtemp.c | 13 +++++++++++++ |
19 |
libsandbox/wrapper-funcs/mkostemp.c | 11 +++++++++++ |
20 |
libsandbox/wrapper-funcs/mkostemp64.c | 8 ++++++++ |
21 |
libsandbox/wrapper-funcs/mkostemps.c | 11 +++++++++++ |
22 |
libsandbox/wrapper-funcs/mkostemps64.c | 8 ++++++++ |
23 |
libsandbox/wrapper-funcs/mkstemp.c | 11 +++++++++++ |
24 |
libsandbox/wrapper-funcs/mkstemp64.c | 8 ++++++++ |
25 |
libsandbox/wrapper-funcs/mkstemps.c | 11 +++++++++++ |
26 |
libsandbox/wrapper-funcs/mkstemps64.c | 8 ++++++++ |
27 |
tests/Makefile.am | 11 ++++++++++- |
28 |
tests/mkdtemp-0.c | 13 +++++++++++++ |
29 |
tests/mkdtemp-1.sh | 10 ++++++++++ |
30 |
tests/mkdtemp.at | 1 + |
31 |
tests/mkostemp-0.c | 16 ++++++++++++++++ |
32 |
tests/mkostemp-1.sh | 8 ++++++++ |
33 |
tests/mkostemp.at | 1 + |
34 |
tests/mkostemp64-0.c | 16 ++++++++++++++++ |
35 |
tests/mkostemp64-1.sh | 8 ++++++++ |
36 |
tests/mkostemp64.at | 1 + |
37 |
tests/mkostemps-0.c | 20 ++++++++++++++++++++ |
38 |
tests/mkostemps-1.sh | 8 ++++++++ |
39 |
tests/mkostemps.at | 1 + |
40 |
tests/mkostemps64-0.c | 20 ++++++++++++++++++++ |
41 |
tests/mkostemps64-1.sh | 8 ++++++++ |
42 |
tests/mkostemps64.at | 1 + |
43 |
tests/mkstemp-0.c | 13 +++++++++++++ |
44 |
tests/mkstemp-1.sh | 8 ++++++++ |
45 |
tests/mkstemp.at | 1 + |
46 |
tests/mkstemp64-0.c | 13 +++++++++++++ |
47 |
tests/mkstemp64-1.sh | 8 ++++++++ |
48 |
tests/mkstemp64.at | 1 + |
49 |
tests/mkstemps-0.c | 17 +++++++++++++++++ |
50 |
tests/mkstemps-1.sh | 8 ++++++++ |
51 |
tests/mkstemps.at | 1 + |
52 |
tests/mkstemps64-0.c | 17 +++++++++++++++++ |
53 |
tests/mkstemps64-1.sh | 8 ++++++++ |
54 |
tests/mkstemps64.at | 1 + |
55 |
tests/test-skel-0.c | 2 ++ |
56 |
41 files changed, 356 insertions(+), 1 deletions(-) |
57 |
|
58 |
diff --git a/configure.ac b/configure.ac |
59 |
index 5c1a110..de3926c 100644 |
60 |
--- a/configure.ac |
61 |
+++ b/configure.ac |
62 |
@@ -146,8 +146,17 @@ AC_CHECK_FUNCS_ONCE([ \ |
63 |
memset \ |
64 |
mkdir \ |
65 |
mkdirat \ |
66 |
+ mkdtemp \ |
67 |
mkfifoat \ |
68 |
mknodat \ |
69 |
+ mkostemp \ |
70 |
+ mkostemp64 \ |
71 |
+ mkostemps \ |
72 |
+ mkostemps64 \ |
73 |
+ mkstemp \ |
74 |
+ mkstemp64 \ |
75 |
+ mkstemps \ |
76 |
+ mkstemps64 \ |
77 |
open64 \ |
78 |
openat \ |
79 |
openat64 \ |
80 |
|
81 |
diff --git a/libsandbox/libsandbox.c b/libsandbox/libsandbox.c |
82 |
index e2ac750..a8929ae 100644 |
83 |
--- a/libsandbox/libsandbox.c |
84 |
+++ b/libsandbox/libsandbox.c |
85 |
@@ -791,10 +791,19 @@ static int check_access(sbcontext_t *sbcontext, int sb_nr, const char *func, |
86 |
sb_nr == SB_NR_LUTIMES || |
87 |
sb_nr == SB_NR_MKDIR || |
88 |
sb_nr == SB_NR_MKDIRAT || |
89 |
+ sb_nr == SB_NR_MKDTEMP || |
90 |
sb_nr == SB_NR_MKFIFO || |
91 |
sb_nr == SB_NR_MKFIFOAT || |
92 |
sb_nr == SB_NR_MKNOD || |
93 |
sb_nr == SB_NR_MKNODAT || |
94 |
+ sb_nr == SB_NR_MKOSTEMP || |
95 |
+ sb_nr == SB_NR_MKOSTEMP64 || |
96 |
+ sb_nr == SB_NR_MKOSTEMPS || |
97 |
+ sb_nr == SB_NR_MKOSTEMPS64 || |
98 |
+ sb_nr == SB_NR_MKSTEMP || |
99 |
+ sb_nr == SB_NR_MKSTEMP64 || |
100 |
+ sb_nr == SB_NR_MKSTEMPS || |
101 |
+ sb_nr == SB_NR_MKSTEMPS64 || |
102 |
sb_nr == SB_NR_OPEN_WR || |
103 |
sb_nr == SB_NR_REMOVE || |
104 |
sb_nr == SB_NR_RENAME || |
105 |
|
106 |
diff --git a/libsandbox/symbols.h.in b/libsandbox/symbols.h.in |
107 |
index cf33e72..e34b977 100644 |
108 |
--- a/libsandbox/symbols.h.in |
109 |
+++ b/libsandbox/symbols.h.in |
110 |
@@ -48,6 +48,15 @@ __openat64_2 |
111 |
creat64 |
112 |
fopen64 |
113 |
truncate64 |
114 |
+mkdtemp |
115 |
+mkostemp |
116 |
+mkostemp64 |
117 |
+mkostemps |
118 |
+mkostemps64 |
119 |
+mkstemp |
120 |
+mkstemp64 |
121 |
+mkstemps |
122 |
+mkstemps64 |
123 |
#execl |
124 |
#execle |
125 |
#execlp |
126 |
|
127 |
diff --git a/libsandbox/wrapper-funcs/mkdtemp.c b/libsandbox/wrapper-funcs/mkdtemp.c |
128 |
new file mode 100644 |
129 |
index 0000000..6c86114 |
130 |
--- /dev/null |
131 |
+++ b/libsandbox/wrapper-funcs/mkdtemp.c |
132 |
@@ -0,0 +1,13 @@ |
133 |
+/* |
134 |
+ * mkdtemp() wrapper. |
135 |
+ * |
136 |
+ * Copyright 1999-2011 Gentoo Foundation |
137 |
+ * Licensed under the GPL-2 |
138 |
+ */ |
139 |
+ |
140 |
+#define WRAPPER_ARGS_PROTO char *template |
141 |
+#define WRAPPER_ARGS template |
142 |
+#define WRAPPER_RET_TYPE char * |
143 |
+#define WRAPPER_RET_DEFAULT NULL |
144 |
+#define WRAPPER_SAFE() SB_SAFE(template) |
145 |
+#include "__wrapper_simple.c" |
146 |
|
147 |
diff --git a/libsandbox/wrapper-funcs/mkostemp.c b/libsandbox/wrapper-funcs/mkostemp.c |
148 |
new file mode 100644 |
149 |
index 0000000..0ecb87f |
150 |
--- /dev/null |
151 |
+++ b/libsandbox/wrapper-funcs/mkostemp.c |
152 |
@@ -0,0 +1,11 @@ |
153 |
+/* |
154 |
+ * mkostemp() wrapper. |
155 |
+ * |
156 |
+ * Copyright 1999-2011 Gentoo Foundation |
157 |
+ * Licensed under the GPL-2 |
158 |
+ */ |
159 |
+ |
160 |
+#define WRAPPER_ARGS_PROTO char *template, int flags |
161 |
+#define WRAPPER_ARGS template, flags |
162 |
+#define WRAPPER_SAFE() SB_SAFE(template) |
163 |
+#include "__wrapper_simple.c" |
164 |
|
165 |
diff --git a/libsandbox/wrapper-funcs/mkostemp64.c b/libsandbox/wrapper-funcs/mkostemp64.c |
166 |
new file mode 100644 |
167 |
index 0000000..51dfa11 |
168 |
--- /dev/null |
169 |
+++ b/libsandbox/wrapper-funcs/mkostemp64.c |
170 |
@@ -0,0 +1,8 @@ |
171 |
+/* |
172 |
+ * mkostemp64() wrapper. |
173 |
+ * |
174 |
+ * Copyright 1999-2011 Gentoo Foundation |
175 |
+ * Licensed under the GPL-2 |
176 |
+ */ |
177 |
+ |
178 |
+#include "mkostemp.c" |
179 |
|
180 |
diff --git a/libsandbox/wrapper-funcs/mkostemps.c b/libsandbox/wrapper-funcs/mkostemps.c |
181 |
new file mode 100644 |
182 |
index 0000000..888dc42 |
183 |
--- /dev/null |
184 |
+++ b/libsandbox/wrapper-funcs/mkostemps.c |
185 |
@@ -0,0 +1,11 @@ |
186 |
+/* |
187 |
+ * mkostemps() wrapper. |
188 |
+ * |
189 |
+ * Copyright 1999-2011 Gentoo Foundation |
190 |
+ * Licensed under the GPL-2 |
191 |
+ */ |
192 |
+ |
193 |
+#define WRAPPER_ARGS_PROTO char *template, int suffixlen, int flags |
194 |
+#define WRAPPER_ARGS template, suffixlen, flags |
195 |
+#define WRAPPER_SAFE() SB_SAFE(template) |
196 |
+#include "__wrapper_simple.c" |
197 |
|
198 |
diff --git a/libsandbox/wrapper-funcs/mkostemps64.c b/libsandbox/wrapper-funcs/mkostemps64.c |
199 |
new file mode 100644 |
200 |
index 0000000..92ca0c5 |
201 |
--- /dev/null |
202 |
+++ b/libsandbox/wrapper-funcs/mkostemps64.c |
203 |
@@ -0,0 +1,8 @@ |
204 |
+/* |
205 |
+ * mkostemps64() wrapper. |
206 |
+ * |
207 |
+ * Copyright 1999-2011 Gentoo Foundation |
208 |
+ * Licensed under the GPL-2 |
209 |
+ */ |
210 |
+ |
211 |
+#include "mkostemps.c" |
212 |
|
213 |
diff --git a/libsandbox/wrapper-funcs/mkstemp.c b/libsandbox/wrapper-funcs/mkstemp.c |
214 |
new file mode 100644 |
215 |
index 0000000..99a53b3 |
216 |
--- /dev/null |
217 |
+++ b/libsandbox/wrapper-funcs/mkstemp.c |
218 |
@@ -0,0 +1,11 @@ |
219 |
+/* |
220 |
+ * mkstemp() wrapper. |
221 |
+ * |
222 |
+ * Copyright 1999-2011 Gentoo Foundation |
223 |
+ * Licensed under the GPL-2 |
224 |
+ */ |
225 |
+ |
226 |
+#define WRAPPER_ARGS_PROTO char *template |
227 |
+#define WRAPPER_ARGS template |
228 |
+#define WRAPPER_SAFE() SB_SAFE(template) |
229 |
+#include "__wrapper_simple.c" |
230 |
|
231 |
diff --git a/libsandbox/wrapper-funcs/mkstemp64.c b/libsandbox/wrapper-funcs/mkstemp64.c |
232 |
new file mode 100644 |
233 |
index 0000000..0c5c82b |
234 |
--- /dev/null |
235 |
+++ b/libsandbox/wrapper-funcs/mkstemp64.c |
236 |
@@ -0,0 +1,8 @@ |
237 |
+/* |
238 |
+ * mkstemp64() wrapper. |
239 |
+ * |
240 |
+ * Copyright 1999-2011 Gentoo Foundation |
241 |
+ * Licensed under the GPL-2 |
242 |
+ */ |
243 |
+ |
244 |
+#include "mkstemp.c" |
245 |
|
246 |
diff --git a/libsandbox/wrapper-funcs/mkstemps.c b/libsandbox/wrapper-funcs/mkstemps.c |
247 |
new file mode 100644 |
248 |
index 0000000..090652f |
249 |
--- /dev/null |
250 |
+++ b/libsandbox/wrapper-funcs/mkstemps.c |
251 |
@@ -0,0 +1,11 @@ |
252 |
+/* |
253 |
+ * mkstemps() wrapper. |
254 |
+ * |
255 |
+ * Copyright 1999-2011 Gentoo Foundation |
256 |
+ * Licensed under the GPL-2 |
257 |
+ */ |
258 |
+ |
259 |
+#define WRAPPER_ARGS_PROTO char *template, int suffixlen |
260 |
+#define WRAPPER_ARGS template, suffixlen |
261 |
+#define WRAPPER_SAFE() SB_SAFE(template) |
262 |
+#include "__wrapper_simple.c" |
263 |
|
264 |
diff --git a/libsandbox/wrapper-funcs/mkstemps64.c b/libsandbox/wrapper-funcs/mkstemps64.c |
265 |
new file mode 100644 |
266 |
index 0000000..27cba5b |
267 |
--- /dev/null |
268 |
+++ b/libsandbox/wrapper-funcs/mkstemps64.c |
269 |
@@ -0,0 +1,8 @@ |
270 |
+/* |
271 |
+ * mkstemps64() wrapper. |
272 |
+ * |
273 |
+ * Copyright 1999-2011 Gentoo Foundation |
274 |
+ * Licensed under the GPL-2 |
275 |
+ */ |
276 |
+ |
277 |
+#include "mkstemps.c" |
278 |
|
279 |
diff --git a/tests/Makefile.am b/tests/Makefile.am |
280 |
index d3ff11d..e1ba631 100644 |
281 |
--- a/tests/Makefile.am |
282 |
+++ b/tests/Makefile.am |
283 |
@@ -29,6 +29,7 @@ check_PROGRAMS = \ |
284 |
linkat-0 \ |
285 |
linkat_static-0 \ |
286 |
lutimes-0 \ |
287 |
+ mkdtemp-0 \ |
288 |
mkdir-0 \ |
289 |
mkdir_static-0 \ |
290 |
mkdirat-0 \ |
291 |
@@ -36,6 +37,14 @@ check_PROGRAMS = \ |
292 |
mkfifoat-0 \ |
293 |
mknod-0 \ |
294 |
mknodat-0 \ |
295 |
+ mkostemp-0 \ |
296 |
+ mkostemp64-0 \ |
297 |
+ mkostemps-0 \ |
298 |
+ mkostemps64-0 \ |
299 |
+ mkstemp-0 \ |
300 |
+ mkstemp64-0 \ |
301 |
+ mkstemps-0 \ |
302 |
+ mkstemps64-0 \ |
303 |
open-0 \ |
304 |
open_static-0 \ |
305 |
open64-0 \ |
306 |
@@ -96,5 +105,5 @@ $(TESTSUITE): $(AT_FILES) testsuite.list.at |
307 |
mv $@.tmp $@ |
308 |
|
309 |
testsuite.list.at: $(AT_FILES) |
310 |
- $(GREP) -l '^SB_CHECK' $(AT_FILES) | \ |
311 |
+ $(GREP) -l '^SB_CHECK' $(AT_FILES) | LC_ALL=C sort | \ |
312 |
$(SED) -e 's:^[.]/:sb_inc([:' -e 's:[.]at$$:]):' > $@ |
313 |
|
314 |
diff --git a/tests/mkdtemp-0.c b/tests/mkdtemp-0.c |
315 |
new file mode 100644 |
316 |
index 0000000..29c0650 |
317 |
--- /dev/null |
318 |
+++ b/tests/mkdtemp-0.c |
319 |
@@ -0,0 +1,13 @@ |
320 |
+#define CONFIG HAVE_MKDTEMP |
321 |
+#define FUNC mkdtemp |
322 |
+#define SFUNC "mkdtemp" |
323 |
+#define FUNC_STR "\"%s\"" |
324 |
+#define FUNC_IMP template |
325 |
+#define ARG_CNT 1 |
326 |
+#define ARG_USE "<template>" |
327 |
+ |
328 |
+#define process_args() \ |
329 |
+ s = argv[i++]; \ |
330 |
+ char *template = s; |
331 |
+ |
332 |
+#include "test-skel-0.c" |
333 |
|
334 |
diff --git a/tests/mkdtemp-1.sh b/tests/mkdtemp-1.sh |
335 |
new file mode 100644 |
336 |
index 0000000..8022065 |
337 |
--- /dev/null |
338 |
+++ b/tests/mkdtemp-1.sh |
339 |
@@ -0,0 +1,10 @@ |
340 |
+#!/bin/sh |
341 |
+# basic functionality check |
342 |
+ |
343 |
+addwrite $PWD |
344 |
+ |
345 |
+mkdtemp-0 0 "" || exit 1 |
346 |
+mkdtemp-0 0 fffffffff || exit 1 |
347 |
+# mkdtemp() returns a pointer, so any non-zero value is OK |
348 |
+mkdtemp-0 0 $PWD/f.XXXXXX && exit 1 |
349 |
+exit 0 |
350 |
|
351 |
diff --git a/tests/mkdtemp.at b/tests/mkdtemp.at |
352 |
new file mode 100644 |
353 |
index 0000000..081d7d2 |
354 |
--- /dev/null |
355 |
+++ b/tests/mkdtemp.at |
356 |
@@ -0,0 +1 @@ |
357 |
+SB_CHECK(1) |
358 |
|
359 |
diff --git a/tests/mkostemp-0.c b/tests/mkostemp-0.c |
360 |
new file mode 100644 |
361 |
index 0000000..7445126 |
362 |
--- /dev/null |
363 |
+++ b/tests/mkostemp-0.c |
364 |
@@ -0,0 +1,16 @@ |
365 |
+#define CONFIG HAVE_MKOSTEMP |
366 |
+#define FUNC mkostemp |
367 |
+#define SFUNC "mkostemp" |
368 |
+#define FUNC_STR "\"%s\", %#x" |
369 |
+#define FUNC_IMP template, flags |
370 |
+#define ARG_CNT 2 |
371 |
+#define ARG_USE "<template> <flags>" |
372 |
+ |
373 |
+#define process_args() \ |
374 |
+ s = argv[i++]; \ |
375 |
+ char *template = s; \ |
376 |
+ \ |
377 |
+ s = argv[i++]; \ |
378 |
+ int flags = f_get_flags(s); |
379 |
+ |
380 |
+#include "test-skel-0.c" |
381 |
|
382 |
diff --git a/tests/mkostemp-1.sh b/tests/mkostemp-1.sh |
383 |
new file mode 100644 |
384 |
index 0000000..5ef180e |
385 |
--- /dev/null |
386 |
+++ b/tests/mkostemp-1.sh |
387 |
@@ -0,0 +1,8 @@ |
388 |
+#!/bin/sh |
389 |
+# basic functionality check |
390 |
+ |
391 |
+addwrite $PWD |
392 |
+ |
393 |
+mkostemp-0 -1 "" 0 || exit 1 |
394 |
+mkostemp-0 -1 ff 0 || exit 1 |
395 |
+exec mkostemp-0 3 $PWD/f.XXXXXX 0 |
396 |
|
397 |
diff --git a/tests/mkostemp.at b/tests/mkostemp.at |
398 |
new file mode 100644 |
399 |
index 0000000..081d7d2 |
400 |
--- /dev/null |
401 |
+++ b/tests/mkostemp.at |
402 |
@@ -0,0 +1 @@ |
403 |
+SB_CHECK(1) |
404 |
|
405 |
diff --git a/tests/mkostemp64-0.c b/tests/mkostemp64-0.c |
406 |
new file mode 100644 |
407 |
index 0000000..6b25c29 |
408 |
--- /dev/null |
409 |
+++ b/tests/mkostemp64-0.c |
410 |
@@ -0,0 +1,16 @@ |
411 |
+#define CONFIG HAVE_MKOSTEMP64 |
412 |
+#define FUNC mkostemp64 |
413 |
+#define SFUNC "mkostemp64" |
414 |
+#define FUNC_STR "\"%s\", %#x" |
415 |
+#define FUNC_IMP template, flags |
416 |
+#define ARG_CNT 2 |
417 |
+#define ARG_USE "<template> <flags>" |
418 |
+ |
419 |
+#define process_args() \ |
420 |
+ s = argv[i++]; \ |
421 |
+ char *template = s; \ |
422 |
+ \ |
423 |
+ s = argv[i++]; \ |
424 |
+ int flags = f_get_flags(s); |
425 |
+ |
426 |
+#include "test-skel-0.c" |
427 |
|
428 |
diff --git a/tests/mkostemp64-1.sh b/tests/mkostemp64-1.sh |
429 |
new file mode 100644 |
430 |
index 0000000..f8e1e6a |
431 |
--- /dev/null |
432 |
+++ b/tests/mkostemp64-1.sh |
433 |
@@ -0,0 +1,8 @@ |
434 |
+#!/bin/sh |
435 |
+# basic functionality check |
436 |
+ |
437 |
+addwrite $PWD |
438 |
+ |
439 |
+mkostemp64-0 -1 "" 0 || exit 1 |
440 |
+mkostemp64-0 -1 ff 0 || exit 1 |
441 |
+exec mkostemp64-0 3 $PWD/f.XXXXXX 0 |
442 |
|
443 |
diff --git a/tests/mkostemp64.at b/tests/mkostemp64.at |
444 |
new file mode 100644 |
445 |
index 0000000..081d7d2 |
446 |
--- /dev/null |
447 |
+++ b/tests/mkostemp64.at |
448 |
@@ -0,0 +1 @@ |
449 |
+SB_CHECK(1) |
450 |
|
451 |
diff --git a/tests/mkostemps-0.c b/tests/mkostemps-0.c |
452 |
new file mode 100644 |
453 |
index 0000000..62857b8 |
454 |
--- /dev/null |
455 |
+++ b/tests/mkostemps-0.c |
456 |
@@ -0,0 +1,20 @@ |
457 |
+#define CONFIG HAVE_MKOSTEMPS |
458 |
+#define FUNC mkostemps |
459 |
+#define SFUNC "mkostemps" |
460 |
+#define FUNC_STR "\"%s\", %i, %#x" |
461 |
+#define FUNC_IMP template, suffixlen, flags |
462 |
+#define ARG_CNT 3 |
463 |
+#define ARG_USE "<template> <suffixlen> <flags>" |
464 |
+ |
465 |
+#define process_args() \ |
466 |
+ s = argv[i++]; \ |
467 |
+ char *template = s; \ |
468 |
+ \ |
469 |
+ s = argv[i++]; \ |
470 |
+ int suffixlen = 0; \ |
471 |
+ sscanf(s, "%i", &suffixlen); \ |
472 |
+ \ |
473 |
+ s = argv[i++]; \ |
474 |
+ int flags = f_get_flags(s); |
475 |
+ |
476 |
+#include "test-skel-0.c" |
477 |
|
478 |
diff --git a/tests/mkostemps-1.sh b/tests/mkostemps-1.sh |
479 |
new file mode 100644 |
480 |
index 0000000..7205c01 |
481 |
--- /dev/null |
482 |
+++ b/tests/mkostemps-1.sh |
483 |
@@ -0,0 +1,8 @@ |
484 |
+#!/bin/sh |
485 |
+# basic functionality check |
486 |
+ |
487 |
+addwrite $PWD |
488 |
+ |
489 |
+mkostemps-0 -1 "" 0 0 || exit 1 |
490 |
+mkostemps-0 -1 ff 0 0 || exit 1 |
491 |
+exec mkostemps-0 3 $PWD/f.XXXXXX 0 0 |
492 |
|
493 |
diff --git a/tests/mkostemps.at b/tests/mkostemps.at |
494 |
new file mode 100644 |
495 |
index 0000000..081d7d2 |
496 |
--- /dev/null |
497 |
+++ b/tests/mkostemps.at |
498 |
@@ -0,0 +1 @@ |
499 |
+SB_CHECK(1) |
500 |
|
501 |
diff --git a/tests/mkostemps64-0.c b/tests/mkostemps64-0.c |
502 |
new file mode 100644 |
503 |
index 0000000..146da61 |
504 |
--- /dev/null |
505 |
+++ b/tests/mkostemps64-0.c |
506 |
@@ -0,0 +1,20 @@ |
507 |
+#define CONFIG HAVE_MKOSTEMPS64 |
508 |
+#define FUNC mkostemps64 |
509 |
+#define SFUNC "mkostemps64" |
510 |
+#define FUNC_STR "\"%s\", %i, %#x" |
511 |
+#define FUNC_IMP template, suffixlen, flags |
512 |
+#define ARG_CNT 3 |
513 |
+#define ARG_USE "<template> <suffixlen> <flags>" |
514 |
+ |
515 |
+#define process_args() \ |
516 |
+ s = argv[i++]; \ |
517 |
+ char *template = s; \ |
518 |
+ \ |
519 |
+ s = argv[i++]; \ |
520 |
+ int suffixlen = 0; \ |
521 |
+ sscanf(s, "%i", &suffixlen); \ |
522 |
+ \ |
523 |
+ s = argv[i++]; \ |
524 |
+ int flags = f_get_flags(s); |
525 |
+ |
526 |
+#include "test-skel-0.c" |
527 |
|
528 |
diff --git a/tests/mkostemps64-1.sh b/tests/mkostemps64-1.sh |
529 |
new file mode 100644 |
530 |
index 0000000..2944049 |
531 |
--- /dev/null |
532 |
+++ b/tests/mkostemps64-1.sh |
533 |
@@ -0,0 +1,8 @@ |
534 |
+#!/bin/sh |
535 |
+# basic functionality check |
536 |
+ |
537 |
+addwrite $PWD |
538 |
+ |
539 |
+mkostemps64-0 -1 "" 0 0 || exit 1 |
540 |
+mkostemps64-0 -1 ff 0 0 || exit 1 |
541 |
+exec mkostemps64-0 3 $PWD/f.XXXXXX 0 0 |
542 |
|
543 |
diff --git a/tests/mkostemps64.at b/tests/mkostemps64.at |
544 |
new file mode 100644 |
545 |
index 0000000..081d7d2 |
546 |
--- /dev/null |
547 |
+++ b/tests/mkostemps64.at |
548 |
@@ -0,0 +1 @@ |
549 |
+SB_CHECK(1) |
550 |
|
551 |
diff --git a/tests/mkstemp-0.c b/tests/mkstemp-0.c |
552 |
new file mode 100644 |
553 |
index 0000000..a81344b |
554 |
--- /dev/null |
555 |
+++ b/tests/mkstemp-0.c |
556 |
@@ -0,0 +1,13 @@ |
557 |
+#define CONFIG HAVE_MKSTEMP |
558 |
+#define FUNC mkstemp |
559 |
+#define SFUNC "mkstemp" |
560 |
+#define FUNC_STR "\"%s\"" |
561 |
+#define FUNC_IMP template |
562 |
+#define ARG_CNT 1 |
563 |
+#define ARG_USE "<template>" |
564 |
+ |
565 |
+#define process_args() \ |
566 |
+ s = argv[i++]; \ |
567 |
+ char *template = s; |
568 |
+ |
569 |
+#include "test-skel-0.c" |
570 |
|
571 |
diff --git a/tests/mkstemp-1.sh b/tests/mkstemp-1.sh |
572 |
new file mode 100644 |
573 |
index 0000000..fa62419 |
574 |
--- /dev/null |
575 |
+++ b/tests/mkstemp-1.sh |
576 |
@@ -0,0 +1,8 @@ |
577 |
+#!/bin/sh |
578 |
+# basic functionality check |
579 |
+ |
580 |
+addwrite $PWD |
581 |
+ |
582 |
+mkstemp-0 -1 "" || exit 1 |
583 |
+mkstemp-0 -1 ff || exit 1 |
584 |
+exec mkstemp-0 3 $PWD/f.XXXXXX |
585 |
|
586 |
diff --git a/tests/mkstemp.at b/tests/mkstemp.at |
587 |
new file mode 100644 |
588 |
index 0000000..081d7d2 |
589 |
--- /dev/null |
590 |
+++ b/tests/mkstemp.at |
591 |
@@ -0,0 +1 @@ |
592 |
+SB_CHECK(1) |
593 |
|
594 |
diff --git a/tests/mkstemp64-0.c b/tests/mkstemp64-0.c |
595 |
new file mode 100644 |
596 |
index 0000000..4e6dc24 |
597 |
--- /dev/null |
598 |
+++ b/tests/mkstemp64-0.c |
599 |
@@ -0,0 +1,13 @@ |
600 |
+#define CONFIG HAVE_MKSTEMP64 |
601 |
+#define FUNC mkstemp64 |
602 |
+#define SFUNC "mkstemp64" |
603 |
+#define FUNC_STR "\"%s\"" |
604 |
+#define FUNC_IMP template |
605 |
+#define ARG_CNT 1 |
606 |
+#define ARG_USE "<template>" |
607 |
+ |
608 |
+#define process_args() \ |
609 |
+ s = argv[i++]; \ |
610 |
+ char *template = s; |
611 |
+ |
612 |
+#include "test-skel-0.c" |
613 |
|
614 |
diff --git a/tests/mkstemp64-1.sh b/tests/mkstemp64-1.sh |
615 |
new file mode 100644 |
616 |
index 0000000..887b921 |
617 |
--- /dev/null |
618 |
+++ b/tests/mkstemp64-1.sh |
619 |
@@ -0,0 +1,8 @@ |
620 |
+#!/bin/sh |
621 |
+# basic functionality check |
622 |
+ |
623 |
+addwrite $PWD |
624 |
+ |
625 |
+mkstemp64-0 -1 "" || exit 1 |
626 |
+mkstemp64-0 -1 ff || exit 1 |
627 |
+exec mkstemp64-0 3 $PWD/f.XXXXXX |
628 |
|
629 |
diff --git a/tests/mkstemp64.at b/tests/mkstemp64.at |
630 |
new file mode 100644 |
631 |
index 0000000..081d7d2 |
632 |
--- /dev/null |
633 |
+++ b/tests/mkstemp64.at |
634 |
@@ -0,0 +1 @@ |
635 |
+SB_CHECK(1) |
636 |
|
637 |
diff --git a/tests/mkstemps-0.c b/tests/mkstemps-0.c |
638 |
new file mode 100644 |
639 |
index 0000000..e1c73fc |
640 |
--- /dev/null |
641 |
+++ b/tests/mkstemps-0.c |
642 |
@@ -0,0 +1,17 @@ |
643 |
+#define CONFIG HAVE_MKSTEMPS |
644 |
+#define FUNC mkstemps |
645 |
+#define SFUNC "mkstemps" |
646 |
+#define FUNC_STR "\"%s\", %i" |
647 |
+#define FUNC_IMP template, suffixlen |
648 |
+#define ARG_CNT 2 |
649 |
+#define ARG_USE "<template> <suffixlen>" |
650 |
+ |
651 |
+#define process_args() \ |
652 |
+ s = argv[i++]; \ |
653 |
+ char *template = s; \ |
654 |
+ \ |
655 |
+ s = argv[i++]; \ |
656 |
+ int suffixlen = 0; \ |
657 |
+ sscanf(s, "%i", &suffixlen); |
658 |
+ |
659 |
+#include "test-skel-0.c" |
660 |
|
661 |
diff --git a/tests/mkstemps-1.sh b/tests/mkstemps-1.sh |
662 |
new file mode 100644 |
663 |
index 0000000..737b023 |
664 |
--- /dev/null |
665 |
+++ b/tests/mkstemps-1.sh |
666 |
@@ -0,0 +1,8 @@ |
667 |
+#!/bin/sh |
668 |
+# basic functionality check |
669 |
+ |
670 |
+addwrite $PWD |
671 |
+ |
672 |
+mkstemps-0 -1 "" 0 || exit 1 |
673 |
+mkstemps-0 -1 ff 0 || exit 1 |
674 |
+exec mkstemps-0 3 $PWD/f.XXXXXX 0 |
675 |
|
676 |
diff --git a/tests/mkstemps.at b/tests/mkstemps.at |
677 |
new file mode 100644 |
678 |
index 0000000..081d7d2 |
679 |
--- /dev/null |
680 |
+++ b/tests/mkstemps.at |
681 |
@@ -0,0 +1 @@ |
682 |
+SB_CHECK(1) |
683 |
|
684 |
diff --git a/tests/mkstemps64-0.c b/tests/mkstemps64-0.c |
685 |
new file mode 100644 |
686 |
index 0000000..8506332 |
687 |
--- /dev/null |
688 |
+++ b/tests/mkstemps64-0.c |
689 |
@@ -0,0 +1,17 @@ |
690 |
+#define CONFIG HAVE_MKSTEMPS64 |
691 |
+#define FUNC mkstemps64 |
692 |
+#define SFUNC "mkstemps64" |
693 |
+#define FUNC_STR "\"%s\", %i" |
694 |
+#define FUNC_IMP template, suffixlen |
695 |
+#define ARG_CNT 2 |
696 |
+#define ARG_USE "<template> <suffixlen>" |
697 |
+ |
698 |
+#define process_args() \ |
699 |
+ s = argv[i++]; \ |
700 |
+ char *template = s; \ |
701 |
+ \ |
702 |
+ s = argv[i++]; \ |
703 |
+ int suffixlen = 0; \ |
704 |
+ sscanf(s, "%i", &suffixlen); |
705 |
+ |
706 |
+#include "test-skel-0.c" |
707 |
|
708 |
diff --git a/tests/mkstemps64-1.sh b/tests/mkstemps64-1.sh |
709 |
new file mode 100644 |
710 |
index 0000000..79a8928 |
711 |
--- /dev/null |
712 |
+++ b/tests/mkstemps64-1.sh |
713 |
@@ -0,0 +1,8 @@ |
714 |
+#!/bin/sh |
715 |
+# basic functionality check |
716 |
+ |
717 |
+addwrite $PWD |
718 |
+ |
719 |
+mkstemps64-0 -1 "" 0 || exit 1 |
720 |
+mkstemps64-0 -1 ff 0 || exit 1 |
721 |
+exec mkstemps64-0 3 $PWD/f.XXXXXX 0 |
722 |
|
723 |
diff --git a/tests/mkstemps64.at b/tests/mkstemps64.at |
724 |
new file mode 100644 |
725 |
index 0000000..081d7d2 |
726 |
--- /dev/null |
727 |
+++ b/tests/mkstemps64.at |
728 |
@@ -0,0 +1 @@ |
729 |
+SB_CHECK(1) |
730 |
|
731 |
diff --git a/tests/test-skel-0.c b/tests/test-skel-0.c |
732 |
index b5771d7..3476552 100644 |
733 |
--- a/tests/test-skel-0.c |
734 |
+++ b/tests/test-skel-0.c |
735 |
@@ -171,7 +171,9 @@ int main(int argc, char *argv[]) |
736 |
"%s%li (wanted %li)%s; " |
737 |
"%serrno = %s:%i [%s] (wanted %s:%i [%s])%s\n", |
738 |
COLOR(passed), passed ? "PASS" : "FAIL", color_normal, |
739 |
+#if ARG_CNT |
740 |
FUNC_IMP, |
741 |
+#endif |
742 |
(passed ? "" : COLOR(passed_ret)), |
743 |
actual_ret, want_ret, color_normal, |
744 |
(!passed && want_errno) ? COLOR(passed_errno) : "", |