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:
Pino Toscano 2012-09-28 21:33:52 +02:00
parent 715a900c90
commit 72581615f5
2 changed files with 18 additions and 14 deletions

View File

@ -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>
[BZ #6530]

View File

@ -80,8 +80,8 @@ do_test (void)
}
closedir (dir);
/* Create a new directory. */
int e = mknodat (dir_fd, "some-sock", 0777 | S_IFSOCK, 0);
/* Create a new fifo. */
int e = mknodat (dir_fd, "some-fifo", 0777 | S_IFIFO, 0);
if (e == -1)
{
if (errno == ENOSYS)
@ -90,19 +90,19 @@ do_test (void)
return 0;
}
puts ("socket creation failed");
puts ("fifo creation failed");
return 1;
}
struct stat64 st1;
if (fstatat64 (dir_fd, "some-sock", &st1, 0) != 0)
if (fstatat64 (dir_fd, "some-fifo", &st1, 0) != 0)
{
puts ("fstat64 failed");
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;
}
@ -124,15 +124,15 @@ do_test (void)
puts ("2nd fdopendir failed");
return 1;
}
bool has_some_sock = false;
bool has_some_fifo = false;
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
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;
}
#endif
@ -144,13 +144,13 @@ do_test (void)
}
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;
}
if (unlinkat (dir_fd, "some-sock", 0) != 0)
if (unlinkat (dir_fd, "some-fifo", 0) != 0)
{
puts ("unlinkat failed");
return 1;