This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH,HURD] mknod: allow to create also sockets


Alle venerdì 28 settembre 2012, Roland McGrath ha scritto:
> > To be honest, I was making tst-mknodat.c pass on Hurd; if it does
> > not make sense that mknod can create sockets, then that test
> > should be removed, since all it does is testing the creation of a
> > single socket.
> 
> I think the intent of the change is to test the mknodat interface,
> not any particular kind of node.  Just change the test to create a
> FIFO instead.

Right, patch attached.

-- 
Pino Toscano
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.

2012-09-28  Pino Toscano  <toscano.pino@tiscali.it>

	* io/tst-mknodat.c: Create a FIFO instead of a socket.
--- a/io/tst-mknodat.c
+++ b/io/tst-mknodat.c
@@ -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;

Attachment: signature.asc
Description: This is a digitally signed message part.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]