762f1fcc7f690faf388343c5b62967951d82fc4f
[libc-test] / src / regression / mkstemp-failure.c
1 // commit: 2e6239dd064d201c6e1b0f589bae9ff27949d2eb 2011-02-19
2 // commit: 382584724308442f03f3d29f7fc6de9e9d140982 2011-06-12
3 // mkstemp should return -1 on bad template
4 #define _BSD_SOURCE 1
5 #include <stdlib.h>
6 #include <string.h>
7 #include <errno.h>
8 #include "test.h"
9
10 int mkstemp(char *);
11
12 #define S "/dev/null/fooXXXX"
13
14 int main(void)
15 {
16         char p[] = S;
17         int r;
18
19         r = mkstemp(p);
20         if (r != -1)
21                 t_error("mkstemp(" S ") did not fail\n");
22         if (memcmp(p, S, sizeof p) != 0)
23                 t_error("mkstemp(" S ") modified the template: %s\n", p);
24         if (r == -1 && errno != EINVAL)
25                 t_error("mkstemp(" S ") failed with %d [%s] instead of %d [%s]\n",
26                         errno, strerror(errno), EINVAL, strerror(EINVAL));
27         return t_status;
28 }