mirror of git://sourceware.org/git/glibc.git
tst-mknodat: create a FIFO instead of a socket
A FIFO is the only special file which is guaranteed to be created with mknod/mknodat.
This commit is contained in:
parent
715a900c90
commit
72581615f5
|
|
@ -1,3 +1,7 @@
|
||||||
|
2012-09-28 Pino Toscano <toscano.pino@tiscali.it>
|
||||||
|
|
||||||
|
* io/tst-mknodat.c: Create a FIFO instead of a socket.
|
||||||
|
|
||||||
2012-09-28 Andreas Schwab <schwab@linux-m68k.org>
|
2012-09-28 Andreas Schwab <schwab@linux-m68k.org>
|
||||||
|
|
||||||
[BZ #6530]
|
[BZ #6530]
|
||||||
|
|
|
||||||
|
|
@ -80,8 +80,8 @@ do_test (void)
|
||||||
}
|
}
|
||||||
closedir (dir);
|
closedir (dir);
|
||||||
|
|
||||||
/* Create a new directory. */
|
/* Create a new fifo. */
|
||||||
int e = mknodat (dir_fd, "some-sock", 0777 | S_IFSOCK, 0);
|
int e = mknodat (dir_fd, "some-fifo", 0777 | S_IFIFO, 0);
|
||||||
if (e == -1)
|
if (e == -1)
|
||||||
{
|
{
|
||||||
if (errno == ENOSYS)
|
if (errno == ENOSYS)
|
||||||
|
|
@ -90,19 +90,19 @@ do_test (void)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
puts ("socket creation failed");
|
puts ("fifo creation failed");
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
struct stat64 st1;
|
struct stat64 st1;
|
||||||
if (fstatat64 (dir_fd, "some-sock", &st1, 0) != 0)
|
if (fstatat64 (dir_fd, "some-fifo", &st1, 0) != 0)
|
||||||
{
|
{
|
||||||
puts ("fstat64 failed");
|
puts ("fstat64 failed");
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
if (!S_ISSOCK (st1.st_mode))
|
if (!S_ISFIFO (st1.st_mode))
|
||||||
{
|
{
|
||||||
puts ("mknodat did not create a Unix domain socket");
|
puts ("mknodat did not create a fifo");
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -124,15 +124,15 @@ do_test (void)
|
||||||
puts ("2nd fdopendir failed");
|
puts ("2nd fdopendir failed");
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
bool has_some_sock = false;
|
bool has_some_fifo = false;
|
||||||
while ((d = readdir64 (dir)) != NULL)
|
while ((d = readdir64 (dir)) != NULL)
|
||||||
if (strcmp (d->d_name, "some-sock") == 0)
|
if (strcmp (d->d_name, "some-fifo") == 0)
|
||||||
{
|
{
|
||||||
has_some_sock = true;
|
has_some_fifo = true;
|
||||||
#ifdef _DIRENT_HAVE_D_TYPE
|
#ifdef _DIRENT_HAVE_D_TYPE
|
||||||
if (d->d_type != DT_UNKNOWN && d->d_type != DT_SOCK)
|
if (d->d_type != DT_UNKNOWN && d->d_type != DT_FIFO)
|
||||||
{
|
{
|
||||||
puts ("d_type for some-sock wrong");
|
puts ("d_type for some-fifo wrong");
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
@ -144,13 +144,13 @@ do_test (void)
|
||||||
}
|
}
|
||||||
closedir (dir);
|
closedir (dir);
|
||||||
|
|
||||||
if (!has_some_sock)
|
if (!has_some_fifo)
|
||||||
{
|
{
|
||||||
puts ("some-sock not in directory list");
|
puts ("some-fifo not in directory list");
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (unlinkat (dir_fd, "some-sock", 0) != 0)
|
if (unlinkat (dir_fd, "some-fifo", 0) != 0)
|
||||||
{
|
{
|
||||||
puts ("unlinkat failed");
|
puts ("unlinkat failed");
|
||||||
return 1;
|
return 1;
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue