Gentoo Archives: gentoo-commits

From: Mike Frysinger <vapier@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/sandbox:master commit in: /, libsandbox/wrapper-funcs/, libsandbox/, tests/
Date: Mon, 04 Jul 2011 23:06:48
Message-Id: 4924cc4606ef4bd5991d66a42996dfb8e7c543ca.vapier@gentoo
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) : "",