2 * Test application for mkstemp/mkstemps/mkostemp/mkostemps
3 * Copyright (C) 2015 by Romain Naour <romain.naour@openwide.fr>
5 * Licensed under the LGPL v2.1, see the file COPYING.LIB in this tarball.
18 fputs ("test failed: " #x "\n", stderr); \
24 main (int argc, char *argv[])
27 char name_suffix[256];
31 int flags = O_RDONLY | O_CLOEXEC;
36 sprintf(name, "%s-uClibc-test.XXXXXX", __FILE__);
41 assert ((sb_f1.st_mode & S_IFMT) == S_IFREG)
44 assert ((sb_f2.st_mode & S_IFMT) == S_IFREG)
46 assert (sb_f1.st_ino == sb_f2.st_ino)
52 sprintf(name_suffix, "%s-uClibc-test.XXXXXX.txt", __FILE__);
54 fd = mkstemps(name_suffix, 4);
57 assert ((sb_f1.st_mode & S_IFMT) == S_IFREG)
59 stat(name_suffix, &sb_f2);
60 assert ((sb_f2.st_mode & S_IFMT) == S_IFREG)
62 assert (sb_f1.st_ino == sb_f2.st_ino)
68 sprintf(name, "%s-uClibc-test.XXXXXX", __FILE__);
70 fd = mkostemp(name, flags);
73 assert ((sb_f1.st_mode & S_IFMT) == S_IFREG)
76 assert ((sb_f2.st_mode & S_IFMT) == S_IFREG)
78 assert (sb_f1.st_ino == sb_f2.st_ino)
79 assert (sb_f1.st_mode == sb_f2.st_mode)
85 sprintf(name_suffix, "%s-uClibc-test.XXXXXX.txt", __FILE__);
87 fd = mkostemps(name_suffix, 4, flags);
90 assert ((sb_f1.st_mode & S_IFMT) == S_IFREG)
93 assert ((sb_f2.st_mode & S_IFMT) == S_IFREG)
95 assert (sb_f1.st_ino == sb_f2.st_ino)
96 assert (sb_f1.st_mode == sb_f2.st_mode)
102 sprintf(name_suffix, "%s-uClibc-test.XXXXXX", __FILE__);
104 fd = mkostemps(name_suffix, 0, flags);
107 assert ((sb_f1.st_mode & S_IFMT) == S_IFREG)
110 assert ((sb_f2.st_mode & S_IFMT) == S_IFREG)
112 assert (sb_f1.st_ino == sb_f2.st_ino)
113 assert (sb_f1.st_mode == sb_f2.st_mode)
116 unlink (name_suffix);
120 /* template len < 6 */
121 sprintf(name, "XXXXX");
126 assert(errno == EINVAL);
129 sprintf(name_suffix, "%s-uClibc-test.XXXXXX.txt", __FILE__);
131 fd = mkostemps(name_suffix, -1, flags);
134 assert(errno == EINVAL);
137 sprintf(name_suffix, "%s-uClibc-test.XXXXX.txt", __FILE__);
139 fd = mkostemps(name_suffix, 4, flags);
142 assert(errno == EINVAL);
144 /* wrong suffixlen */
145 sprintf(name_suffix, "%s-uClibc-test.XXXXXX.txt", __FILE__);
147 fd = mkostemps(name_suffix, 2, flags);
150 assert(errno == EINVAL);
154 assert (fclose (fp) == 0);
156 unlink (name_suffix);