1*74989affSNico Weber // RUN: %clangxx -O0 -g %s -o %t && %run %t 2>&1 | FileCheck %s
2*74989affSNico Weber 
3*74989affSNico Weber #include <assert.h>
4*74989affSNico Weber #include <fcntl.h>
5*74989affSNico Weber #include <stdio.h>
6*74989affSNico Weber #include <stdlib.h>
7*74989affSNico Weber #include <unistd.h>
8*74989affSNico Weber #include <sys/stat.h>
9*74989affSNico Weber 
test_fdevname()10*74989affSNico Weber void test_fdevname() {
11*74989affSNico Weber   int fd = open("/dev/null", O_RDONLY);
12*74989affSNico Weber   char *name;
13*74989affSNico Weber 
14*74989affSNico Weber   printf("test_fdevname\n");
15*74989affSNico Weber   assert(fd != -1);
16*74989affSNico Weber   assert((name = fdevname(fd)));
17*74989affSNico Weber   close(fd);
18*74989affSNico Weber 
19*74989affSNico Weber   printf("%s\n", name);
20*74989affSNico Weber }
21*74989affSNico Weber 
test_fdevname_r()22*74989affSNico Weber void test_fdevname_r() {
23*74989affSNico Weber   int fd = open("/dev/null", O_RDONLY);
24*74989affSNico Weber   char *name;
25*74989affSNico Weber   char buf[5];
26*74989affSNico Weber 
27*74989affSNico Weber   printf("test_fdevname_r\n");
28*74989affSNico Weber   assert(fd != -1);
29*74989affSNico Weber   assert((name = fdevname_r(fd, buf, sizeof(buf))));
30*74989affSNico Weber   close(fd);
31*74989affSNico Weber 
32*74989affSNico Weber   printf("%s\n", name);
33*74989affSNico Weber }
34*74989affSNico Weber 
main(void)35*74989affSNico Weber int main(void) {
36*74989affSNico Weber   test_fdevname();
37*74989affSNico Weber   test_fdevname_r();
38*74989affSNico Weber   // CHECK: test_fdevname
39*74989affSNico Weber   // CHECK: null
40*74989affSNico Weber   // CHECK: test_fdevname_r
41*74989affSNico Weber   // CHECK: null
42*74989affSNico Weber 
43*74989affSNico Weber   return 0;
44*74989affSNico Weber }
45