<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>change log for rtems (2010-07-01)</title>
</head>
<body text='#000000' bgcolor='#ffffff'>
<a name='cs1'></a>
<table border='0' cellspacing='0' cellpadding='5' width='100%' bgcolor='#eeeeee'>
<tr><td colspan='3' bgcolor='#dddddd'>
 <font color='#bb2222'><strong>joel</strong></font>
</td></tr>
<tr><td colspan='3' bgcolor='#dddddd'><pre>2010-07-01 Vinu Rajashekhar <vinutheraj@gmail.com>

        PR 1597/cpukit
        * libcsupport/Makefile.am, libcsupport/src/chown.c: Add lchown() and
        utimes().
        * libcsupport/src/lchown.c, libcsupport/src/utimes.c: New files.
</pre></td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/cpukit/ChangeLog.diff?r1=text&tr1=1.2483&r2=text&tr2=1.2484&diff_format=h">M</a></td><td width='1%'>1.2484</td><td width='100%'>cpukit/ChangeLog</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/cpukit/libcsupport/Makefile.am.diff?r1=text&tr1=1.123&r2=text&tr2=1.124&diff_format=h">M</a></td><td width='1%'>1.124</td><td width='100%'>cpukit/libcsupport/Makefile.am</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/cpukit/libcsupport/src/chown.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.14&diff_format=h">M</a></td><td width='1%'>1.14</td><td width='100%'>cpukit/libcsupport/src/chown.c</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/cpukit/libcsupport/src/lchown.c?rev=1.1&content-type=text/vnd.viewcvs-markup">A</a></td><td width='1%'><font color="#000088">1.1</font></td><td width='100%'><font color="#000088">cpukit/libcsupport/src/lchown.c</font></td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/cpukit/libcsupport/src/utimes.c?rev=1.1&content-type=text/vnd.viewcvs-markup">A</a></td><td width='1%'><font color="#000088">1.1</font></td><td width='100%'><font color="#000088">cpukit/libcsupport/src/utimes.c</font></td></tr>
</table>
<pre>
<font color='#006600'>diff -u rtems/cpukit/ChangeLog:1.2483 rtems/cpukit/ChangeLog:1.2484
--- rtems/cpukit/ChangeLog:1.2483       Thu Jul  1 11:29:16 2010
+++ rtems/cpukit/ChangeLog      Thu Jul  1 12:22:00 2010
</font><font color='#997700'>@@ -1,5 +1,12 @@
</font> 2010-07-01        Vinu Rajashekhar <vinutheraj@gmail.com>
 
<font color='#000088'>+   PR 1597/cpukit
+       * libcsupport/Makefile.am, libcsupport/src/chown.c: Add lchown() and
+       utimes().
+       * libcsupport/src/lchown.c, libcsupport/src/utimes.c: New files.
+
+2010-07-01     Vinu Rajashekhar <vinutheraj@gmail.com>
+
</font>   PR 1529/cpukit
        * utime.c: Change file access time and modified time to
        current time if pointer to struct utimbuf is NULL.

<font color='#006600'>diff -u rtems/cpukit/libcsupport/Makefile.am:1.123 rtems/cpukit/libcsupport/Makefile.am:1.124
--- rtems/cpukit/libcsupport/Makefile.am:1.123  Wed Jun 30 10:36:47 2010
+++ rtems/cpukit/libcsupport/Makefile.am        Thu Jul  1 12:22:02 2010
</font><font color='#997700'>@@ -62,7 +62,7 @@
</font>     src/link.c src/unlink.c src/umask.c src/ftruncate.c src/utime.c src/fstat.c \
     src/fcntl.c src/fpathconf.c src/getdents.c src/fsync.c src/fdatasync.c \
     src/pipe.c src/dup.c src/dup2.c src/symlink.c src/readlink.c src/creat.c \
<font color='#880000'>-    src/chroot.c src/sync.c src/_rename_r.c src/statvfs.c
</font><font color='#000088'>+    src/chroot.c src/sync.c src/_rename_r.c src/statvfs.c src/utimes.c src/lchown.c
</font> 
 ## Until sys/uio.h is moved to libcsupport, we have to have networking
 ## enabled to compile these.  Hopefully this is a temporary situation.

<font color='#006600'>diff -u rtems/cpukit/libcsupport/src/chown.c:1.13 rtems/cpukit/libcsupport/src/chown.c:1.14
--- rtems/cpukit/libcsupport/src/chown.c:1.13   Thu Jul  1 10:12:36 2010
+++ rtems/cpukit/libcsupport/src/chown.c        Thu Jul  1 12:22:03 2010
</font><font color='#997700'>@@ -24,16 +24,17 @@
</font> #include <rtems/libio_.h>
 #include <rtems/seterr.h>
 
<font color='#880000'>-int chown(
</font><font color='#000088'>+int _chown_helper(
</font>   const char *path,
   uid_t       owner,
<font color='#880000'>-  gid_t       group
</font><font color='#000088'>+  gid_t       group,
+  int         follow_link
</font> )
 {
   rtems_filesystem_location_info_t   loc;
   int                                result;
 
<font color='#880000'>-  if ( rtems_filesystem_evaluate_path( path, strlen( path ), 0x00, &loc, true ) )
</font><font color='#000088'>+  if ( rtems_filesystem_evaluate_path( path, strlen( path ), 0x00, &loc, follow_link ) )
</font>     return -1;
 
   result = (*loc.ops->chown_h)( &loc, owner, group );
<font color='#997700'>@@ -42,3 +43,12 @@
</font> 
   return result;
 }
<font color='#000088'>+
+int chown(
+  const char *path,
+  uid_t       owner,
+  gid_t       group
+)
+{
+  return _chown_helper( path, owner, group, true );
+}
</font>
<font color='#006600'>diff -u /dev/null rtems/cpukit/libcsupport/src/lchown.c:1.1
--- /dev/null   Thu Jul  1 13:14:43 2010
+++ rtems/cpukit/libcsupport/src/lchown.c       Thu Jul  1 12:22:03 2010
</font><font color='#997700'>@@ -0,0 +1,31 @@
</font><font color='#000088'>+/*
+ *  lchown() - POSIX 1003.1b 5.6.5 - Change Owner and Group of a File
+ *             But Do Not Follow a Symlink
+ *
+ *  Written by: Vinu Rajashekhar <vinutheraj@gmail.com>
+ *
+ *  The license and distribution terms for this file may be
+ *  found in the file LICENSE in this distribution or at
+ *  http://www.rtems.com/license/LICENSE.
+ *
+ *  $Id$
+ */
+
+#if HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <sys/stat.h>
+
+#include <rtems.h>
+
+int _chown_helper( const char *path, uid_t owner, gid_t group, int follow_link);
+
+int lchown(
+  const char *path,
+  uid_t       owner,
+  gid_t       group
+)
+{
+  return _chown_helper( path, owner, group, false );
+}
</font>
<font color='#006600'>diff -u /dev/null rtems/cpukit/libcsupport/src/utimes.c:1.1
--- /dev/null   Thu Jul  1 13:14:43 2010
+++ rtems/cpukit/libcsupport/src/utimes.c       Thu Jul  1 12:22:03 2010
</font><font color='#997700'>@@ -0,0 +1,33 @@
</font><font color='#000088'>+/*
+ *  Written by: Vinu Rajashekhar <vinutheraj@gmail.com>
+ *
+ *  The license and distribution terms for this file may be
+ *  found in the file LICENSE in this distribution or at
+ *  http://www.rtems.com/license/LICENSE.
+ *
+ *  $Id$
+ */
+
+#if HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <sys/types.h>
+#include <utime.h>
+#include <sys/time.h>
+
+int utimes(
+  const char           *path,
+  const struct timeval  times[2]
+)<span style="background-color: #FF0000"> </span>
+{
+  struct utimbuf timeinsecs;
+
+  if ( times == NULL )
+    return utime( path, NULL );
+
+  timeinsecs.actime  = (time_t) times[0].tv_sec;
+  timeinsecs.modtime = (time_t) times[1].tv_sec;
+
+  return utime( path, &timeinsecs );
+}
</font></pre>
<p> </p>
<a name='cs2'></a>
<table border='0' cellspacing='0' cellpadding='5' width='100%' bgcolor='#eeeeee'>
<tr><td colspan='3' bgcolor='#dddddd'>
 <font color='#bb2222'><strong>joel</strong></font>
</td></tr>
<tr><td colspan='3' bgcolor='#dddddd'><pre>2010-07-01 Vinu Rajashekhar <vinutheraj@gmail.com>

        PR 1597/cpukit
        * psx13/psx13.scn, psx13/test.c, psxstat/psxstat.scn,
        psxstat/test.c: Add lchown() and utimes().
</pre></td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/testsuites/psxtests/ChangeLog.diff?r1=text&tr1=1.278&r2=text&tr2=1.279&diff_format=h">M</a></td><td width='1%'>1.279</td><td width='100%'>testsuites/psxtests/ChangeLog</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/testsuites/psxtests/psx13/psx13.scn.diff?r1=text&tr1=1.6&r2=text&tr2=1.7&diff_format=h">M</a></td><td width='1%'>1.7</td><td width='100%'>testsuites/psxtests/psx13/psx13.scn</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/testsuites/psxtests/psx13/test.c.diff?r1=text&tr1=1.13&r2=text&tr2=1.14&diff_format=h">M</a></td><td width='1%'>1.14</td><td width='100%'>testsuites/psxtests/psx13/test.c</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/testsuites/psxtests/psxstat/psxstat.scn.diff?r1=text&tr1=1.9&r2=text&tr2=1.10&diff_format=h">M</a></td><td width='1%'>1.10</td><td width='100%'>testsuites/psxtests/psxstat/psxstat.scn</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/testsuites/psxtests/psxstat/test.c.diff?r1=text&tr1=1.26&r2=text&tr2=1.27&diff_format=h">M</a></td><td width='1%'>1.27</td><td width='100%'>testsuites/psxtests/psxstat/test.c</td></tr>
</table>
<pre>
<font color='#006600'>diff -u rtems/testsuites/psxtests/ChangeLog:1.278 rtems/testsuites/psxtests/ChangeLog:1.279
--- rtems/testsuites/psxtests/ChangeLog:1.278   Thu Jul  1 09:40:08 2010
+++ rtems/testsuites/psxtests/ChangeLog Thu Jul  1 12:24:35 2010
</font><font color='#997700'>@@ -1,3 +1,9 @@
</font><font color='#000088'>+2010-07-01    Vinu Rajashekhar <vinutheraj@gmail.com>
+
+       PR 1597/cpukit
+       * psx13/psx13.scn, psx13/test.c, psxstat/psxstat.scn,
+       psxstat/test.c: Add lchown() and utimes().
+
</font> 2010-07-01        Joel Sherrill <joel.sherrill@oarcorp.com>
 
        * Makefile.am, configure.ac: Add tests for file lock stubs as well as

<font color='#006600'>diff -u rtems/testsuites/psxtests/psx13/psx13.scn:1.6 rtems/testsuites/psxtests/psx13/psx13.scn:1.7
--- rtems/testsuites/psxtests/psx13/psx13.scn:1.6       Mon Dec 28 10:43:10 2009
+++ rtems/testsuites/psxtests/psx13/psx13.scn   Thu Jul  1 12:23:47 2010
</font><font color='#997700'>@@ -7,6 +7,7 @@
</font> Testing fdatasync()...... Success.
 Testing umask().......... Success.
 Testing utime().......... Success.
<font color='#000088'>+Testing utimes().......... Success.
</font> Testing pipe()........... Success.
 Testing pipe() with NULL........... Failed!!!
 Testing fsync().......... Success.

<font color='#006600'>diff -u rtems/testsuites/psxtests/psx13/test.c:1.13 rtems/testsuites/psxtests/psx13/test.c:1.14
--- rtems/testsuites/psxtests/psx13/test.c:1.13 Mon Dec 28 10:43:10 2009
+++ rtems/testsuites/psxtests/psx13/test.c      Thu Jul  1 12:23:47 2010
</font><font color='#997700'>@@ -14,6 +14,7 @@
</font>  *     pipe         - test implemented
  *     umask        - test implemented
  *     utime        - test implemented
<font color='#000088'>+ *     utimes       - test implemented
</font>  *
  *  COPYRIGHT (c) 1989-2009.
  *  On-Line Applications Research Corporation (OAR).
<font color='#997700'>@@ -44,6 +45,7 @@
</font> int FDataSyncTest(void);
 int UMaskTest(void);
 int UTimeTest(void);
<font color='#000088'>+int UTimesTest(void);
</font> int PipeTest(void);
 int PipeTestNull(void);
 int PathConfTest(void);
<font color='#997700'>@@ -427,6 +429,66 @@
</font> }
 
 /* ---------------------------------------------------------------
<font color='#000088'>+ * UTimesTest function
+ *
+ * Hits the utimes code. Does NOT test the functionality of the underlying utime
+ * entry in the IMFS op table.
+ *
+ * arguments: none
+ * assumptions: utimes function available.
+ * actions: set utimes for an invalid filename.
+ *          set utimes for a valid filename.
+ *
+ * returns: TRUE if time on valid file is set correctly and utimes failed on
+ *          an invalid filename.
+ *          FALSE otherwise.
+ *
+ * ---------------------------------------------------------------
+ */
+
+int UTimesTest (void)
+{
+  int error = 0, retval = FALSE;
+  struct timeval time[2];
+  struct stat fstat;
+
+  /* First, an invalid filename. */
+  error = utimes("!This is an =invalid p@thname!!! :)", NULL);
+
+  if (error == -1)
+    retval = TRUE;
+  else
+    retval = FALSE;
+
+  /* Now, the success test. */
+  if (retval == TRUE) {
+
+    time[0].tv_sec = 12345;
+    time[1].tv_sec = 54321;
+
+    error = utimes("testfile1.tst", &time);
+
+    if (error == 0) {
+
+      /* But, did it set the time? */
+      stat ("testfile1.tst", &fstat);
+
+      if ((fstat.st_atime == 12345) && (fstat.st_mtime == 54321 ))
+       retval = TRUE;
+      else
+       retval = FALSE;
+    }
+
+    else
+      retval = FALSE;
+  }
+
+  /* assert (retval == TRUE);*/
+
+  return (retval);
+}
+
+/* ---------------------------------------------------------------
</font>  * PipeTest function
  *
  * Hits the pipe code.
<font color='#997700'>@@ -663,6 +725,12 @@
</font>     else
       printf ("Failed!!!\n");
 
<font color='#000088'>+   printf ("Testing utimes().......... ");
+    if (UTimesTest() == TRUE)
+      printf ("Success.\n");
+    else
+      printf ("Failed!!!\n");
+
</font>    printf ("Testing pipe()........... ");
     if (PipeTest() == TRUE)
       printf ("Success.\n");

<font color='#006600'>diff -u rtems/testsuites/psxtests/psxstat/psxstat.scn:1.9 rtems/testsuites/psxtests/psxstat/psxstat.scn:1.10
--- rtems/testsuites/psxtests/psxstat/psxstat.scn:1.9   Thu Jun 18 11:19:53 2009
+++ rtems/testsuites/psxtests/psxstat/psxstat.scn       Thu Jul  1 12:23:47 2010
</font><font color='#997700'>@@ -1,5 +1,5 @@
</font> *** STAT TEST 01 ***
<font color='#880000'>---->Current Time:  - rtems_clock_get - 09:00:00   12/31/1988
</font><font color='#000088'>+--->Current Time:  - rtems_clock_get_tod - 09:00:00   12/31/1988
</font> Making directory /my_mount_point/dir1
 Making directory /my_mount_point/dir2
 Making directory /my_mount_point/dir3
<font color='#997700'>@@ -60,8 +60,10 @@
</font> ...st_atime   Sat Dec 31 09:00:00 1988
 ...st_mtime   Sat Dec 31 09:00:00 1988
 ...st_ctime   Sat Dec 31 09:00:00 1988
<font color='#000088'>+...st_blksize 0
+...st_blocks  0
</font> stat( ////my_mount_point/dir1/\//file1\\// ) returned<span style="background-color: #FF0000"> </span>
<font color='#880000'>-...st_dev     (0x0:0x0)
</font><font color='#000088'>+...st_dev     (0xfffe:0x1)
</font> ...st_ino     b
 ...st_mode    100004
 ...st_nlink   3
<font color='#997700'>@@ -72,8 +74,10 @@
</font> ...st_atime   Sat Dec 31 09:00:00 1988
 ...st_mtime   Sat Dec 31 09:00:00 1988
 ...st_ctime   Sat Dec 31 09:00:10 1988
<font color='#000088'>+...st_blksize 0
+...st_blocks  0
</font> stat( /my_mount_point/dir1/\\/file2 ) returned<span style="background-color: #FF0000"> </span>
<font color='#880000'>-...st_dev     (0x0:0x0)
</font><font color='#000088'>+...st_dev     (0xfffe:0x1)
</font> ...st_ino     c
 ...st_mode    100004
 ...st_nlink   3
<font color='#997700'>@@ -84,8 +88,10 @@
</font> ...st_atime   Sat Dec 31 09:00:00 1988
 ...st_mtime   Sat Dec 31 09:00:00 1988
 ...st_ctime   Sat Dec 31 09:00:10 1988
<font color='#000088'>+...st_blksize 0
+...st_blocks  0
</font> stat( /my_mount_point/dir1/file3/////\\\ ) returned<span style="background-color: #FF0000"> </span>
<font color='#880000'>-...st_dev     (0x0:0x0)
</font><font color='#000088'>+...st_dev     (0xfffe:0x1)
</font> ...st_ino     d
 ...st_mode    100004
 ...st_nlink   3
<font color='#997700'>@@ -96,8 +102,10 @@
</font> ...st_atime   Sat Dec 31 09:00:00 1988
 ...st_mtime   Sat Dec 31 09:00:00 1988
 ...st_ctime   Sat Dec 31 09:00:10 1988
<font color='#000088'>+...st_blksize 0
+...st_blocks  0
</font> stat( /my_mount_point/dir1/file4 ) returned<span style="background-color: #FF0000"> </span>
<font color='#880000'>-...st_dev     (0x0:0x0)
</font><font color='#000088'>+...st_dev     (0xfffe:0x1)
</font> ...st_ino     e
 ...st_mode    100004
 ...st_nlink   3
<font color='#997700'>@@ -108,8 +116,10 @@
</font> ...st_atime   Sat Dec 31 09:00:00 1988
 ...st_mtime   Sat Dec 31 09:00:00 1988
 ...st_ctime   Sat Dec 31 09:00:10 1988
<font color='#000088'>+...st_blksize 0
+...st_blocks  0
</font> stat( /my_mount_point/dir1/dir1/file1 ) returned<span style="background-color: #FF0000"> </span>
<font color='#880000'>-...st_dev     (0x0:0x0)
</font><font color='#000088'>+...st_dev     (0xfffe:0x1)
</font> ...st_ino     f
 ...st_mode    100004
 ...st_nlink   3
<font color='#997700'>@@ -120,8 +130,10 @@
</font> ...st_atime   Sat Dec 31 09:00:00 1988
 ...st_mtime   Sat Dec 31 09:00:00 1988
 ...st_ctime   Sat Dec 31 09:00:10 1988
<font color='#000088'>+...st_blksize 0
+...st_blocks  0
</font> stat( /my_mount_point/dir1/dir1/ file1 ) returned<span style="background-color: #FF0000"> </span>
<font color='#880000'>-...st_dev     (0x0:0x0)
</font><font color='#000088'>+...st_dev     (0xfffe:0x1)
</font> ...st_ino     10
 ...st_mode    100004
 ...st_nlink   3
<font color='#997700'>@@ -132,6 +144,8 @@
</font> ...st_atime   Sat Dec 31 09:00:00 1988
 ...st_mtime   Sat Dec 31 09:00:00 1988
 ...st_ctime   Sat Dec 31 09:00:10 1988
<font color='#000088'>+...st_blksize 0
+...st_blocks  0
</font> stat( /my_mount_point/dir1 ) returned<span style="background-color: #FF0000"> </span>
 ...st_dev     (0x0:0x0)
 ...st_ino     3
<font color='#997700'>@@ -140,10 +154,12 @@
</font> ...st_uid     0
 ...st_gid     0
 ...st_rdev    (0x0:0x0)
<font color='#880000'>-...st_size    1608
</font><font color='#000088'>+...st_size    3140
</font> ...st_atime   Sat Dec 31 09:00:00 1988
 ...st_mtime   Sat Dec 31 09:00:00 1988
 ...st_ctime   Sat Dec 31 09:00:05 1988
<font color='#000088'>+...st_blksize 0
+...st_blocks  0
</font> stat( /my_mount_point/dir2//////\ ) returned<span style="background-color: #FF0000"> </span>
 ...st_dev     (0x0:0x0)
 ...st_ino     4
<font color='#997700'>@@ -156,6 +172,8 @@
</font> ...st_atime   Sat Dec 31 09:00:00 1988
 ...st_mtime   Sat Dec 31 09:00:00 1988
 ...st_ctime   Sat Dec 31 09:00:05 1988
<font color='#000088'>+...st_blksize 0
+...st_blocks  0
</font> stat( /my_mount_point/dir3 ) returned<span style="background-color: #FF0000"> </span>
 ...st_dev     (0x0:0x0)
 ...st_ino     5
<font color='#997700'>@@ -168,6 +186,8 @@
</font> ...st_atime   Sat Dec 31 09:00:00 1988
 ...st_mtime   Sat Dec 31 09:00:00 1988
 ...st_ctime   Sat Dec 31 09:00:05 1988
<font color='#000088'>+...st_blksize 0
+...st_blocks  0
</font> stat( /my_mount_point/dir4 ) returned<span style="background-color: #FF0000"> </span>
 ...st_dev     (0x0:0x0)
 ...st_ino     6
<font color='#997700'>@@ -180,6 +200,8 @@
</font> ...st_atime   Sat Dec 31 09:00:00 1988
 ...st_mtime   Sat Dec 31 09:00:00 1988
 ...st_ctime   Sat Dec 31 09:00:05 1988
<font color='#000088'>+...st_blksize 0
+...st_blocks  0
</font> stat( /my_mount_point/dir1/dir1 ) returned<span style="background-color: #FF0000"> </span>
 ...st_dev     (0x0:0x0)
 ...st_ino     7
<font color='#997700'>@@ -188,10 +210,12 @@
</font> ...st_uid     0
 ...st_gid     0
 ...st_rdev    (0x0:0x0)
<font color='#880000'>-...st_size    536
</font><font color='#000088'>+...st_size    1040
</font> ...st_atime   Sat Dec 31 09:00:00 1988
 ...st_mtime   Sat Dec 31 09:00:00 1988
 ...st_ctime   Sat Dec 31 09:00:05 1988
<font color='#000088'>+...st_blksize 0
+...st_blocks  0
</font> stat( /my_mount_point/dir1/ dir1///\\ ) returned<span style="background-color: #FF0000"> </span>
 ...st_dev     (0x0:0x0)
 ...st_ino     8
<font color='#997700'>@@ -204,6 +228,8 @@
</font> ...st_atime   Sat Dec 31 09:00:00 1988
 ...st_mtime   Sat Dec 31 09:00:00 1988
 ...st_ctime   Sat Dec 31 09:00:05 1988
<font color='#000088'>+...st_blksize 0
+...st_blocks  0
</font> stat( /my_mount_point/\/\/\/\/\/\/links\/\/\/\/\/\ ) returned<span style="background-color: #FF0000"> </span>
 ...st_dev     (0x0:0x0)
 ...st_ino     9
<font color='#997700'>@@ -212,10 +238,12 @@
</font> ...st_uid     0
 ...st_gid     0
 ...st_rdev    (0x0:0x0)
<font color='#880000'>-...st_size    6968
</font><font color='#000088'>+...st_size    15640
</font> ...st_atime   Sat Dec 31 09:00:00 1988
 ...st_mtime   Sat Dec 31 09:00:00 1988
 ...st_ctime   Sat Dec 31 09:00:05 1988
<font color='#000088'>+...st_blksize 0
+...st_blocks  0
</font> 
 Doing the stat() on all the good relative paths
 stat( dev ) returned<span style="background-color: #FF0000"> </span>
<font color='#997700'>@@ -230,8 +258,10 @@
</font> ...st_atime   Sat Dec 31 09:00:00 1988
 ...st_mtime   Sat Dec 31 09:00:00 1988
 ...st_ctime   Sat Dec 31 09:00:00 1988
<font color='#000088'>+...st_blksize 0
+...st_blocks  0
</font> stat( dir1/\//file1\\// ) returned<span style="background-color: #FF0000"> </span>
<font color='#880000'>-...st_dev     (0x0:0x0)
</font><font color='#000088'>+...st_dev     (0xfffe:0x1)
</font> ...st_ino     b
 ...st_mode    100004
 ...st_nlink   3
<font color='#997700'>@@ -242,8 +272,10 @@
</font> ...st_atime   Sat Dec 31 09:00:00 1988
 ...st_mtime   Sat Dec 31 09:00:00 1988
 ...st_ctime   Sat Dec 31 09:00:10 1988
<font color='#000088'>+...st_blksize 0
+...st_blocks  0
</font> stat( dir1/\\/file2 ) returned<span style="background-color: #FF0000"> </span>
<font color='#880000'>-...st_dev     (0x0:0x0)
</font><font color='#000088'>+...st_dev     (0xfffe:0x1)
</font> ...st_ino     c
 ...st_mode    100004
 ...st_nlink   3
<font color='#997700'>@@ -254,8 +286,10 @@
</font> ...st_atime   Sat Dec 31 09:00:00 1988
 ...st_mtime   Sat Dec 31 09:00:00 1988
 ...st_ctime   Sat Dec 31 09:00:10 1988
<font color='#000088'>+...st_blksize 0
+...st_blocks  0
</font> stat( dir1/file3/////\\\ ) returned<span style="background-color: #FF0000"> </span>
<font color='#880000'>-...st_dev     (0x0:0x0)
</font><font color='#000088'>+...st_dev     (0xfffe:0x1)
</font> ...st_ino     d
 ...st_mode    100004
 ...st_nlink   3
<font color='#997700'>@@ -266,8 +300,10 @@
</font> ...st_atime   Sat Dec 31 09:00:00 1988
 ...st_mtime   Sat Dec 31 09:00:00 1988
 ...st_ctime   Sat Dec 31 09:00:10 1988
<font color='#000088'>+...st_blksize 0
+...st_blocks  0
</font> stat( dir1/file4 ) returned<span style="background-color: #FF0000"> </span>
<font color='#880000'>-...st_dev     (0x0:0x0)
</font><font color='#000088'>+...st_dev     (0xfffe:0x1)
</font> ...st_ino     e
 ...st_mode    100004
 ...st_nlink   3
<font color='#997700'>@@ -278,8 +314,10 @@
</font> ...st_atime   Sat Dec 31 09:00:00 1988
 ...st_mtime   Sat Dec 31 09:00:00 1988
 ...st_ctime   Sat Dec 31 09:00:10 1988
<font color='#000088'>+...st_blksize 0
+...st_blocks  0
</font> stat( dir1/dir1/file1 ) returned<span style="background-color: #FF0000"> </span>
<font color='#880000'>-...st_dev     (0x0:0x0)
</font><font color='#000088'>+...st_dev     (0xfffe:0x1)
</font> ...st_ino     f
 ...st_mode    100004
 ...st_nlink   3
<font color='#997700'>@@ -290,8 +328,10 @@
</font> ...st_atime   Sat Dec 31 09:00:00 1988
 ...st_mtime   Sat Dec 31 09:00:00 1988
 ...st_ctime   Sat Dec 31 09:00:10 1988
<font color='#000088'>+...st_blksize 0
+...st_blocks  0
</font> stat( dir1/dir1/ file1 ) returned<span style="background-color: #FF0000"> </span>
<font color='#880000'>-...st_dev     (0x0:0x0)
</font><font color='#000088'>+...st_dev     (0xfffe:0x1)
</font> ...st_ino     10
 ...st_mode    100004
 ...st_nlink   3
<font color='#997700'>@@ -302,6 +342,8 @@
</font> ...st_atime   Sat Dec 31 09:00:00 1988
 ...st_mtime   Sat Dec 31 09:00:00 1988
 ...st_ctime   Sat Dec 31 09:00:10 1988
<font color='#000088'>+...st_blksize 0
+...st_blocks  0
</font> stat( dir1 ) returned<span style="background-color: #FF0000"> </span>
 ...st_dev     (0x0:0x0)
 ...st_ino     3
<font color='#997700'>@@ -310,10 +352,12 @@
</font> ...st_uid     0
 ...st_gid     0
 ...st_rdev    (0x0:0x0)
<font color='#880000'>-...st_size    1608
</font><font color='#000088'>+...st_size    3140
</font> ...st_atime   Sat Dec 31 09:00:00 1988
 ...st_mtime   Sat Dec 31 09:00:00 1988
 ...st_ctime   Sat Dec 31 09:00:05 1988
<font color='#000088'>+...st_blksize 0
+...st_blocks  0
</font> stat( dir2//////\ ) returned<span style="background-color: #FF0000"> </span>
 ...st_dev     (0x0:0x0)
 ...st_ino     4
<font color='#997700'>@@ -326,6 +370,8 @@
</font> ...st_atime   Sat Dec 31 09:00:00 1988
 ...st_mtime   Sat Dec 31 09:00:00 1988
 ...st_ctime   Sat Dec 31 09:00:05 1988
<font color='#000088'>+...st_blksize 0
+...st_blocks  0
</font> stat( dir3 ) returned<span style="background-color: #FF0000"> </span>
 ...st_dev     (0x0:0x0)
 ...st_ino     5
<font color='#997700'>@@ -338,6 +384,8 @@
</font> ...st_atime   Sat Dec 31 09:00:00 1988
 ...st_mtime   Sat Dec 31 09:00:00 1988
 ...st_ctime   Sat Dec 31 09:00:05 1988
<font color='#000088'>+...st_blksize 0
+...st_blocks  0
</font> stat( dir4 ) returned<span style="background-color: #FF0000"> </span>
 ...st_dev     (0x0:0x0)
 ...st_ino     6
<font color='#997700'>@@ -350,6 +398,8 @@
</font> ...st_atime   Sat Dec 31 09:00:00 1988
 ...st_mtime   Sat Dec 31 09:00:00 1988
 ...st_ctime   Sat Dec 31 09:00:05 1988
<font color='#000088'>+...st_blksize 0
+...st_blocks  0
</font> stat( dir1/dir1 ) returned<span style="background-color: #FF0000"> </span>
 ...st_dev     (0x0:0x0)
 ...st_ino     7
<font color='#997700'>@@ -358,10 +408,12 @@
</font> ...st_uid     0
 ...st_gid     0
 ...st_rdev    (0x0:0x0)
<font color='#880000'>-...st_size    536
</font><font color='#000088'>+...st_size    1040
</font> ...st_atime   Sat Dec 31 09:00:00 1988
 ...st_mtime   Sat Dec 31 09:00:00 1988
 ...st_ctime   Sat Dec 31 09:00:05 1988
<font color='#000088'>+...st_blksize 0
+...st_blocks  0
</font> stat( dir1/ dir1///\\ ) returned<span style="background-color: #FF0000"> </span>
 ...st_dev     (0x0:0x0)
 ...st_ino     8
<font color='#997700'>@@ -374,8 +426,10 @@
</font> ...st_atime   Sat Dec 31 09:00:00 1988
 ...st_mtime   Sat Dec 31 09:00:00 1988
 ...st_ctime   Sat Dec 31 09:00:05 1988
<font color='#000088'>+...st_blksize 0
+...st_blocks  0
</font> stat( main.c ) returned<span style="background-color: #FF0000"> </span>
<font color='#880000'>-...st_dev     (0x0:0x0)
</font><font color='#000088'>+...st_dev     (0xfffe:0x1)
</font> ...st_ino     11
 ...st_mode    100004
 ...st_nlink   1
<font color='#997700'>@@ -386,6 +440,8 @@
</font> ...st_atime   Sat Dec 31 09:00:00 1988
 ...st_mtime   Sat Dec 31 09:00:00 1988
 ...st_ctime   Sat Dec 31 09:00:00 1988
<font color='#000088'>+...st_blksize 0
+...st_blocks  0
</font> 
 chdir to dev
 
<font color='#997700'>@@ -416,10 +472,12 @@
</font> ...st_uid     0
 ...st_gid     0
 ...st_rdev    (0x0:0x0)
<font color='#880000'>-...st_size    1608
</font><font color='#000088'>+...st_size    3140
</font> ...st_atime   Sat Dec 31 09:00:00 1988
 ...st_mtime   Sat Dec 31 09:00:00 1988
 ...st_ctime   Sat Dec 31 09:00:05 1988
<font color='#000088'>+...st_blksize 0
+...st_blocks  0
</font> stat( links/dir2 ) returned<span style="background-color: #FF0000"> </span>
 ...st_dev     (0x0:0x0)
 ...st_ino     4
<font color='#997700'>@@ -432,6 +490,8 @@
</font> ...st_atime   Sat Dec 31 09:00:00 1988
 ...st_mtime   Sat Dec 31 09:00:00 1988
 ...st_ctime   Sat Dec 31 09:00:05 1988
<font color='#000088'>+...st_blksize 0
+...st_blocks  0
</font> stat( links/dir3 ) returned<span style="background-color: #FF0000"> </span>
 ...st_dev     (0x0:0x0)
 ...st_ino     5
<font color='#997700'>@@ -444,6 +504,8 @@
</font> ...st_atime   Sat Dec 31 09:00:00 1988
 ...st_mtime   Sat Dec 31 09:00:00 1988
 ...st_ctime   Sat Dec 31 09:00:05 1988
<font color='#000088'>+...st_blksize 0
+...st_blocks  0
</font> stat( links/dir4 ) returned<span style="background-color: #FF0000"> </span>
 ...st_dev     (0x0:0x0)
 ...st_ino     6
<font color='#997700'>@@ -456,6 +518,8 @@
</font> ...st_atime   Sat Dec 31 09:00:00 1988
 ...st_mtime   Sat Dec 31 09:00:00 1988
 ...st_ctime   Sat Dec 31 09:00:05 1988
<font color='#000088'>+...st_blksize 0
+...st_blocks  0
</font> stat( links/dir1_dir1 ) returned<span style="background-color: #FF0000"> </span>
 ...st_dev     (0x0:0x0)
 ...st_ino     7
<font color='#997700'>@@ -464,10 +528,12 @@
</font> ...st_uid     0
 ...st_gid     0
 ...st_rdev    (0x0:0x0)
<font color='#880000'>-...st_size    536
</font><font color='#000088'>+...st_size    1040
</font> ...st_atime   Sat Dec 31 09:00:00 1988
 ...st_mtime   Sat Dec 31 09:00:00 1988
 ...st_ctime   Sat Dec 31 09:00:05 1988
<font color='#000088'>+...st_blksize 0
+...st_blocks  0
</font> stat( links/dir1_ dir1 ) returned<span style="background-color: #FF0000"> </span>
 ...st_dev     (0x0:0x0)
 ...st_ino     8
<font color='#997700'>@@ -480,6 +546,8 @@
</font> ...st_atime   Sat Dec 31 09:00:00 1988
 ...st_mtime   Sat Dec 31 09:00:00 1988
 ...st_ctime   Sat Dec 31 09:00:05 1988
<font color='#000088'>+...st_blksize 0
+...st_blocks  0
</font> stat( links/../links/../links/links ) returned<span style="background-color: #FF0000"> </span>
 ...st_dev     (0x0:0x0)
 ...st_ino     9
<font color='#997700'>@@ -488,12 +556,14 @@
</font> ...st_uid     0
 ...st_gid     0
 ...st_rdev    (0x0:0x0)
<font color='#880000'>-...st_size    6968
</font><font color='#000088'>+...st_size    15640
</font> ...st_atime   Sat Dec 31 09:00:00 1988
 ...st_mtime   Sat Dec 31 09:00:00 1988
 ...st_ctime   Sat Dec 31 09:00:05 1988
<font color='#000088'>+...st_blksize 0
+...st_blocks  0
</font> stat( links/dir1_file1 ) returned<span style="background-color: #FF0000"> </span>
<font color='#880000'>-...st_dev     (0x0:0x0)
</font><font color='#000088'>+...st_dev     (0xfffe:0x1)
</font> ...st_ino     b
 ...st_mode    100004
 ...st_nlink   3
<font color='#997700'>@@ -504,8 +574,10 @@
</font> ...st_atime   Sat Dec 31 09:00:00 1988
 ...st_mtime   Sat Dec 31 09:00:00 1988
 ...st_ctime   Sat Dec 31 09:00:10 1988
<font color='#000088'>+...st_blksize 0
+...st_blocks  0
</font> stat( links/dir1_file2 ) returned<span style="background-color: #FF0000"> </span>
<font color='#880000'>-...st_dev     (0x0:0x0)
</font><font color='#000088'>+...st_dev     (0xfffe:0x1)
</font> ...st_ino     c
 ...st_mode    100004
 ...st_nlink   3
<font color='#997700'>@@ -516,8 +588,10 @@
</font> ...st_atime   Sat Dec 31 09:00:00 1988
 ...st_mtime   Sat Dec 31 09:00:00 1988
 ...st_ctime   Sat Dec 31 09:00:10 1988
<font color='#000088'>+...st_blksize 0
+...st_blocks  0
</font> stat( links/dir1_file3 ) returned<span style="background-color: #FF0000"> </span>
<font color='#880000'>-...st_dev     (0x0:0x0)
</font><font color='#000088'>+...st_dev     (0xfffe:0x1)
</font> ...st_ino     d
 ...st_mode    100004
 ...st_nlink   3
<font color='#997700'>@@ -528,8 +602,10 @@
</font> ...st_atime   Sat Dec 31 09:00:00 1988
 ...st_mtime   Sat Dec 31 09:00:00 1988
 ...st_ctime   Sat Dec 31 09:00:10 1988
<font color='#000088'>+...st_blksize 0
+...st_blocks  0
</font> stat( links/dir1_file4 ) returned<span style="background-color: #FF0000"> </span>
<font color='#880000'>-...st_dev     (0x0:0x0)
</font><font color='#000088'>+...st_dev     (0xfffe:0x1)
</font> ...st_ino     e
 ...st_mode    100004
 ...st_nlink   3
<font color='#997700'>@@ -540,8 +616,10 @@
</font> ...st_atime   Sat Dec 31 09:00:00 1988
 ...st_mtime   Sat Dec 31 09:00:00 1988
 ...st_ctime   Sat Dec 31 09:00:10 1988
<font color='#000088'>+...st_blksize 0
+...st_blocks  0
</font> stat( links/dir1_dir1_f1 ) returned<span style="background-color: #FF0000"> </span>
<font color='#880000'>-...st_dev     (0x0:0x0)
</font><font color='#000088'>+...st_dev     (0xfffe:0x1)
</font> ...st_ino     f
 ...st_mode    100004
 ...st_nlink   3
<font color='#997700'>@@ -552,8 +630,10 @@
</font> ...st_atime   Sat Dec 31 09:00:00 1988
 ...st_mtime   Sat Dec 31 09:00:00 1988
 ...st_ctime   Sat Dec 31 09:00:10 1988
<font color='#000088'>+...st_blksize 0
+...st_blocks  0
</font> stat( links/dir1_dir1 f1 ) returned<span style="background-color: #FF0000"> </span>
<font color='#880000'>-...st_dev     (0x0:0x0)
</font><font color='#000088'>+...st_dev     (0xfffe:0x1)
</font> ...st_ino     10
 ...st_mode    100004
 ...st_nlink   3
<font color='#997700'>@@ -564,6 +644,8 @@
</font> ...st_atime   Sat Dec 31 09:00:00 1988
 ...st_mtime   Sat Dec 31 09:00:00 1988
 ...st_ctime   Sat Dec 31 09:00:10 1988
<font color='#000088'>+...st_blksize 0
+...st_blocks  0
</font> stat( links/links/links/links_dir1 ) returned<span style="background-color: #FF0000"> </span>
 ...st_dev     (0x0:0x0)
 ...st_ino     3
<font color='#997700'>@@ -572,10 +654,12 @@
</font> ...st_uid     0
 ...st_gid     0
 ...st_rdev    (0x0:0x0)
<font color='#880000'>-...st_size    1608
</font><font color='#000088'>+...st_size    3140
</font> ...st_atime   Sat Dec 31 09:00:00 1988
 ...st_mtime   Sat Dec 31 09:00:00 1988
 ...st_ctime   Sat Dec 31 09:00:05 1988
<font color='#000088'>+...st_blksize 0
+...st_blocks  0
</font> stat( links//links_dir2 ) returned<span style="background-color: #FF0000"> </span>
 ...st_dev     (0x0:0x0)
 ...st_ino     4
<font color='#997700'>@@ -588,6 +672,8 @@
</font> ...st_atime   Sat Dec 31 09:00:00 1988
 ...st_mtime   Sat Dec 31 09:00:00 1988
 ...st_ctime   Sat Dec 31 09:00:05 1988
<font color='#000088'>+...st_blksize 0
+...st_blocks  0
</font> stat( links//links_dir3 ) returned<span style="background-color: #FF0000"> </span>
 ...st_dev     (0x0:0x0)
 ...st_ino     5
<font color='#997700'>@@ -600,6 +686,8 @@
</font> ...st_atime   Sat Dec 31 09:00:00 1988
 ...st_mtime   Sat Dec 31 09:00:00 1988
 ...st_ctime   Sat Dec 31 09:00:05 1988
<font color='#000088'>+...st_blksize 0
+...st_blocks  0
</font> stat( links//links_dir4 ) returned<span style="background-color: #FF0000"> </span>
 ...st_dev     (0x0:0x0)
 ...st_ino     6
<font color='#997700'>@@ -612,6 +700,8 @@
</font> ...st_atime   Sat Dec 31 09:00:00 1988
 ...st_mtime   Sat Dec 31 09:00:00 1988
 ...st_ctime   Sat Dec 31 09:00:05 1988
<font color='#000088'>+...st_blksize 0
+...st_blocks  0
</font> stat( links//links_dir1_d1 ) returned<span style="background-color: #FF0000"> </span>
 ...st_dev     (0x0:0x0)
 ...st_ino     7
<font color='#997700'>@@ -620,10 +710,12 @@
</font> ...st_uid     0
 ...st_gid     0
 ...st_rdev    (0x0:0x0)
<font color='#880000'>-...st_size    536
</font><font color='#000088'>+...st_size    1040
</font> ...st_atime   Sat Dec 31 09:00:00 1988
 ...st_mtime   Sat Dec 31 09:00:00 1988
 ...st_ctime   Sat Dec 31 09:00:05 1988
<font color='#000088'>+...st_blksize 0
+...st_blocks  0
</font> stat( links//links_dir1 d1 ) returned<span style="background-color: #FF0000"> </span>
 ...st_dev     (0x0:0x0)
 ...st_ino     8
<font color='#997700'>@@ -636,6 +728,8 @@
</font> ...st_atime   Sat Dec 31 09:00:00 1988
 ...st_mtime   Sat Dec 31 09:00:00 1988
 ...st_ctime   Sat Dec 31 09:00:05 1988
<font color='#000088'>+...st_blksize 0
+...st_blocks  0
</font> stat( links//links_links ) returned<span style="background-color: #FF0000"> </span>
 ...st_dev     (0x0:0x0)
 ...st_ino     9
<font color='#997700'>@@ -644,12 +738,14 @@
</font> ...st_uid     0
 ...st_gid     0
 ...st_rdev    (0x0:0x0)
<font color='#880000'>-...st_size    6968
</font><font color='#000088'>+...st_size    15640
</font> ...st_atime   Sat Dec 31 09:00:00 1988
 ...st_mtime   Sat Dec 31 09:00:00 1988
 ...st_ctime   Sat Dec 31 09:00:05 1988
<font color='#000088'>+...st_blksize 0
+...st_blocks  0
</font> stat( links///links_d1_file1 ) returned<span style="background-color: #FF0000"> </span>
<font color='#880000'>-...st_dev     (0x0:0x0)
</font><font color='#000088'>+...st_dev     (0xfffe:0x1)
</font> ...st_ino     b
 ...st_mode    100004
 ...st_nlink   3
<font color='#997700'>@@ -660,8 +756,10 @@
</font> ...st_atime   Sat Dec 31 09:00:00 1988
 ...st_mtime   Sat Dec 31 09:00:00 1988
 ...st_ctime   Sat Dec 31 09:00:10 1988
<font color='#000088'>+...st_blksize 0
+...st_blocks  0
</font> stat( links///links_d1_file2 ) returned<span style="background-color: #FF0000"> </span>
<font color='#880000'>-...st_dev     (0x0:0x0)
</font><font color='#000088'>+...st_dev     (0xfffe:0x1)
</font> ...st_ino     c
 ...st_mode    100004
 ...st_nlink   3
<font color='#997700'>@@ -672,8 +770,10 @@
</font> ...st_atime   Sat Dec 31 09:00:00 1988
 ...st_mtime   Sat Dec 31 09:00:00 1988
 ...st_ctime   Sat Dec 31 09:00:10 1988
<font color='#000088'>+...st_blksize 0
+...st_blocks  0
</font> stat( links///links_d1_file3 ) returned<span style="background-color: #FF0000"> </span>
<font color='#880000'>-...st_dev     (0x0:0x0)
</font><font color='#000088'>+...st_dev     (0xfffe:0x1)
</font> ...st_ino     d
 ...st_mode    100004
 ...st_nlink   3
<font color='#997700'>@@ -684,8 +784,10 @@
</font> ...st_atime   Sat Dec 31 09:00:00 1988
 ...st_mtime   Sat Dec 31 09:00:00 1988
 ...st_ctime   Sat Dec 31 09:00:10 1988
<font color='#000088'>+...st_blksize 0
+...st_blocks  0
</font> stat( links///links_d1_file4 ) returned<span style="background-color: #FF0000"> </span>
<font color='#880000'>-...st_dev     (0x0:0x0)
</font><font color='#000088'>+...st_dev     (0xfffe:0x1)
</font> ...st_ino     e
 ...st_mode    100004
 ...st_nlink   3
<font color='#997700'>@@ -696,8 +798,10 @@
</font> ...st_atime   Sat Dec 31 09:00:00 1988
 ...st_mtime   Sat Dec 31 09:00:00 1988
 ...st_ctime   Sat Dec 31 09:00:10 1988
<font color='#000088'>+...st_blksize 0
+...st_blocks  0
</font> stat( links///links_d1_d1_f1 ) returned<span style="background-color: #FF0000"> </span>
<font color='#880000'>-...st_dev     (0x0:0x0)
</font><font color='#000088'>+...st_dev     (0xfffe:0x1)
</font> ...st_ino     f
 ...st_mode    100004
 ...st_nlink   3
<font color='#997700'>@@ -708,8 +812,10 @@
</font> ...st_atime   Sat Dec 31 09:00:00 1988
 ...st_mtime   Sat Dec 31 09:00:00 1988
 ...st_ctime   Sat Dec 31 09:00:10 1988
<font color='#000088'>+...st_blksize 0
+...st_blocks  0
</font> stat( links///links_r1_d1 f1 ) returned<span style="background-color: #FF0000"> </span>
<font color='#880000'>-...st_dev     (0x0:0x0)
</font><font color='#000088'>+...st_dev     (0xfffe:0x1)
</font> ...st_ino     10
 ...st_mode    100004
 ...st_nlink   3
<font color='#997700'>@@ -720,6 +826,8 @@
</font> ...st_atime   Sat Dec 31 09:00:00 1988
 ...st_mtime   Sat Dec 31 09:00:00 1988
 ...st_ctime   Sat Dec 31 09:00:10 1988
<font color='#000088'>+...st_blksize 0
+...st_blocks  0
</font> chmod of /my_mount_point/dir1/dir1 to Read/Write
 
 Doing the stat() on all the bad paths
<font color='#997700'>@@ -744,7 +852,7 @@
</font> Making file /my_mount_point/symlinks/links
 Verify with readlink
 stat( /my_mount_point/symlinks/a_file_symlink ) returned<span style="background-color: #FF0000"> </span>
<font color='#880000'>-...st_dev     (0x0:0x0)
</font><font color='#000088'>+...st_dev     (0xfffe:0x1)
</font> ...st_ino     b
 ...st_mode    100004
 ...st_nlink   3
<font color='#997700'>@@ -755,6 +863,22 @@
</font> ...st_atime   Sat Dec 31 09:00:00 1988
 ...st_mtime   Sat Dec 31 09:00:00 1988
 ...st_ctime   Sat Dec 31 09:00:10 1988
<font color='#000088'>+...st_blksize 0
+...st_blocks  0
+lstat( /my_mount_point/symlinks/a_file_symlink ) returned<span style="background-color: #FF0000"> </span>
+...st_dev     (0xfffe:0x1)
+...st_ino     2c
+...st_mode    120755
+...st_nlink   1
+...st_uid     0
+...st_gid     0
+...st_rdev    (0x0:0x0)
+...st_size    0
+...st_atime   Sat Dec 31 09:00:15 1988
+...st_mtime   Sat Dec 31 09:00:15 1988
+...st_ctime   Sat Dec 31 09:00:15 1988
+...st_blksize 0
+...st_blocks  0
</font> stat( /my_mount_point/symlinks/a_dir_symlink ) returned<span style="background-color: #FF0000"> </span>
 ...st_dev     (0x0:0x0)
 ...st_ino     3
<font color='#997700'>@@ -763,10 +887,26 @@
</font> ...st_uid     0
 ...st_gid     0
 ...st_rdev    (0x0:0x0)
<font color='#880000'>-...st_size    1876
</font><font color='#000088'>+...st_size    3560
</font> ...st_atime   Sat Dec 31 09:00:00 1988
 ...st_mtime   Sat Dec 31 09:00:00 1988
 ...st_ctime   Sat Dec 31 09:00:05 1988
<font color='#000088'>+...st_blksize 0
+...st_blocks  0
+lstat( /my_mount_point/symlinks/a_dir_symlink ) returned<span style="background-color: #FF0000"> </span>
+...st_dev     (0xfffe:0x1)
+...st_ino     2d
+...st_mode    120755
+...st_nlink   1
+...st_uid     0
+...st_gid     0
+...st_rdev    (0x0:0x0)
+...st_size    0
+...st_atime   Sat Dec 31 09:00:15 1988
+...st_mtime   Sat Dec 31 09:00:15 1988
+...st_ctime   Sat Dec 31 09:00:15 1988
+...st_blksize 0
+...st_blocks  0
</font> stat( /my_mount_point/symlinks/a_link_symlink ) returned<span style="background-color: #FF0000"> </span>
 ...st_dev     (0x0:0x0)
 ...st_ino     3
<font color='#997700'>@@ -775,11 +915,41 @@
</font> ...st_uid     0
 ...st_gid     0
 ...st_rdev    (0x0:0x0)
<font color='#880000'>-...st_size    1876
</font><font color='#000088'>+...st_size    3560
</font> ...st_atime   Sat Dec 31 09:00:00 1988
 ...st_mtime   Sat Dec 31 09:00:00 1988
 ...st_ctime   Sat Dec 31 09:00:05 1988
<font color='#000088'>+...st_blksize 0
+...st_blocks  0
+lstat( /my_mount_point/symlinks/a_link_symlink ) returned<span style="background-color: #FF0000"> </span>
+...st_dev     (0xfffe:0x1)
+...st_ino     2e
+...st_mode    120755
+...st_nlink   1
+...st_uid     0
+...st_gid     0
+...st_rdev    (0x0:0x0)
+...st_size    0
+...st_atime   Sat Dec 31 09:00:15 1988
+...st_mtime   Sat Dec 31 09:00:15 1988
+...st_ctime   Sat Dec 31 09:00:15 1988
+...st_blksize 0
+...st_blocks  0
</font> stat( ../symlinks/no_file ) returned : No such file or directory
<font color='#000088'>+lstat( ../symlinks/no_file ) returned<span style="background-color: #FF0000"> </span>
+...st_dev     (0xfffe:0x1)
+...st_ino     2f
+...st_mode    120755
+...st_nlink   1
+...st_uid     0
+...st_gid     0
+...st_rdev    (0x0:0x0)
+...st_size    0
+...st_atime   Sat Dec 31 09:00:15 1988
+...st_mtime   Sat Dec 31 09:00:15 1988
+...st_ctime   Sat Dec 31 09:00:15 1988
+...st_blksize 0
+...st_blocks  0
</font> stat( /my_mount_point/symlinks/a_dir_symlink/a_file_symlink ) returned<span style="background-color: #FF0000"> </span>
 ...st_dev     (0x0:0x0)
 ...st_ino     3
<font color='#997700'>@@ -788,10 +958,26 @@
</font> ...st_uid     0
 ...st_gid     0
 ...st_rdev    (0x0:0x0)
<font color='#880000'>-...st_size    1876
</font><font color='#000088'>+...st_size    3560
</font> ...st_atime   Sat Dec 31 09:00:00 1988
 ...st_mtime   Sat Dec 31 09:00:00 1988
 ...st_ctime   Sat Dec 31 09:00:05 1988
<font color='#000088'>+...st_blksize 0
+...st_blocks  0
+lstat( /my_mount_point/symlinks/a_dir_symlink/a_file_symlink ) returned<span style="background-color: #FF0000"> </span>
+...st_dev     (0xfffe:0x1)
+...st_ino     30
+...st_mode    120755
+...st_nlink   1
+...st_uid     0
+...st_gid     0
+...st_rdev    (0x0:0x0)
+...st_size    0
+...st_atime   Sat Dec 31 09:00:15 1988
+...st_mtime   Sat Dec 31 09:00:15 1988
+...st_ctime   Sat Dec 31 09:00:15 1988
+...st_blksize 0
+...st_blocks  0
</font> Making file 1
 Verify with readlink
 Making file 2
<font color='#997700'>@@ -811,14 +997,140 @@
</font> Making file 9
 Verify with readlink
 stat( 1 ) returned : No such file or directory
<font color='#000088'>+lstat( 1 ) returned<span style="background-color: #FF0000"> </span>
+...st_dev     (0xfffe:0x1)
+...st_ino     32
+...st_mode    120755
+...st_nlink   1
+...st_uid     0
+...st_gid     0
+...st_rdev    (0x0:0x0)
+...st_size    0
+...st_atime   Sat Dec 31 09:00:15 1988
+...st_mtime   Sat Dec 31 09:00:15 1988
+...st_ctime   Sat Dec 31 09:00:15 1988
+...st_blksize 0
+...st_blocks  0
</font> stat( 2 ) returned : No such file or directory
<font color='#000088'>+lstat( 2 ) returned<span style="background-color: #FF0000"> </span>
+...st_dev     (0xfffe:0x1)
+...st_ino     33
+...st_mode    120755
+...st_nlink   1
+...st_uid     0
+...st_gid     0
+...st_rdev    (0x0:0x0)
+...st_size    0
+...st_atime   Sat Dec 31 09:00:15 1988
+...st_mtime   Sat Dec 31 09:00:15 1988
+...st_ctime   Sat Dec 31 09:00:15 1988
+...st_blksize 0
+...st_blocks  0
</font> stat( 3 ) returned : No such file or directory
<font color='#000088'>+lstat( 3 ) returned<span style="background-color: #FF0000"> </span>
+...st_dev     (0xfffe:0x1)
+...st_ino     34
+...st_mode    120755
+...st_nlink   1
+...st_uid     0
+...st_gid     0
+...st_rdev    (0x0:0x0)
+...st_size    0
+...st_atime   Sat Dec 31 09:00:15 1988
+...st_mtime   Sat Dec 31 09:00:15 1988
+...st_ctime   Sat Dec 31 09:00:15 1988
+...st_blksize 0
+...st_blocks  0
</font> stat( 4 ) returned : No such file or directory
<font color='#000088'>+lstat( 4 ) returned<span style="background-color: #FF0000"> </span>
+...st_dev     (0xfffe:0x1)
+...st_ino     35
+...st_mode    120755
+...st_nlink   1
+...st_uid     0
+...st_gid     0
+...st_rdev    (0x0:0x0)
+...st_size    0
+...st_atime   Sat Dec 31 09:00:15 1988
+...st_mtime   Sat Dec 31 09:00:15 1988
+...st_ctime   Sat Dec 31 09:00:15 1988
+...st_blksize 0
+...st_blocks  0
</font> stat( 5 ) returned : No such file or directory
<font color='#000088'>+lstat( 5 ) returned<span style="background-color: #FF0000"> </span>
+...st_dev     (0xfffe:0x1)
+...st_ino     36
+...st_mode    120755
+...st_nlink   1
+...st_uid     0
+...st_gid     0
+...st_rdev    (0x0:0x0)
+...st_size    0
+...st_atime   Sat Dec 31 09:00:15 1988
+...st_mtime   Sat Dec 31 09:00:15 1988
+...st_ctime   Sat Dec 31 09:00:15 1988
+...st_blksize 0
+...st_blocks  0
</font> stat( 6 ) returned : Too many symbolic links
<font color='#000088'>+lstat( 6 ) returned<span style="background-color: #FF0000"> </span>
+...st_dev     (0xfffe:0x1)
+...st_ino     37
+...st_mode    120755
+...st_nlink   1
+...st_uid     0
+...st_gid     0
+...st_rdev    (0x0:0x0)
+...st_size    0
+...st_atime   Sat Dec 31 09:00:15 1988
+...st_mtime   Sat Dec 31 09:00:15 1988
+...st_ctime   Sat Dec 31 09:00:15 1988
+...st_blksize 0
+...st_blocks  0
</font> stat( 7 ) returned : Too many symbolic links
<font color='#000088'>+lstat( 7 ) returned<span style="background-color: #FF0000"> </span>
+...st_dev     (0xfffe:0x1)
+...st_ino     38
+...st_mode    120755
+...st_nlink   1
+...st_uid     0
+...st_gid     0
+...st_rdev    (0x0:0x0)
+...st_size    0
+...st_atime   Sat Dec 31 09:00:15 1988
+...st_mtime   Sat Dec 31 09:00:15 1988
+...st_ctime   Sat Dec 31 09:00:15 1988
+...st_blksize 0
+...st_blocks  0
</font> stat( 8 ) returned : Too many symbolic links
<font color='#000088'>+lstat( 8 ) returned<span style="background-color: #FF0000"> </span>
+...st_dev     (0xfffe:0x1)
+...st_ino     39
+...st_mode    120755
+...st_nlink   1
+...st_uid     0
+...st_gid     0
+...st_rdev    (0x0:0x0)
+...st_size    0
+...st_atime   Sat Dec 31 09:00:15 1988
+...st_mtime   Sat Dec 31 09:00:15 1988
+...st_ctime   Sat Dec 31 09:00:15 1988
+...st_blksize 0
+...st_blocks  0
</font> stat( 9 ) returned : Too many symbolic links
<font color='#000088'>+lstat( 9 ) returned<span style="background-color: #FF0000"> </span>
+...st_dev     (0xfffe:0x1)
+...st_ino     3a
+...st_mode    120755
+...st_nlink   1
+...st_uid     0
+...st_gid     0
+...st_rdev    (0x0:0x0)
+...st_size    0
+...st_atime   Sat Dec 31 09:00:15 1988
+...st_mtime   Sat Dec 31 09:00:15 1988
+...st_ctime   Sat Dec 31 09:00:15 1988
+...st_blksize 0
+...st_blocks  0
</font> chdir to a file should fail with ENOTDIR
 Verify RWX permission on /my_mount_point/dir1 via access
 chmod of /my_mount_point/dir1 to Read/Write
<font color='#997700'>@@ -855,6 +1167,8 @@
</font> ...st_atime   Sat Dec 31 09:00:00 1988
 ...st_mtime   Sat Dec 31 09:00:00 1988
 ...st_ctime   Sat Dec 31 09:00:20 1988
<font color='#000088'>+...st_blksize 0
+...st_blocks  0
</font> stat( links//links_dir1 d1 ) returned<span style="background-color: #FF0000"> </span>
 ...st_dev     (0x0:0x0)
 ...st_ino     8
<font color='#997700'>@@ -867,6 +1181,8 @@
</font> ...st_atime   Sat Dec 31 09:00:00 1988
 ...st_mtime   Sat Dec 31 09:00:00 1988
 ...st_ctime   Sat Dec 31 09:00:20 1988
<font color='#000088'>+...st_blksize 0
+...st_blocks  0
</font> Chdir to links/dir1_ dir1
 Chdir to .. should fail with ENOENT
 mkdir ../t should fail with ENOENT
<font color='#997700'>@@ -897,7 +1213,7 @@
</font> chdir to /my_mount_point<span style="background-color: #FF0000"> </span>
 Change group of /////my_mount_point/dir1/\//file1\\//
 stat( /////my_mount_point/dir1/\//file1\\// ) returned<span style="background-color: #FF0000"> </span>
<font color='#880000'>-...st_dev     (0x0:0x0)
</font><font color='#000088'>+...st_dev     (0xfffe:0x1)
</font> ...st_ino     b
 ...st_mode    100011
 ...st_nlink   3
<font color='#997700'>@@ -908,9 +1224,11 @@
</font> ...st_atime   Sat Dec 31 09:00:00 1988
 ...st_mtime   Sat Dec 31 09:00:00 1988
 ...st_ctime   Sat Dec 31 09:00:25 1988
<font color='#000088'>+...st_blksize 0
+...st_blocks  0
</font> Change owner of /////my_mount_point/dir1/\//file1\\//
 stat( /////my_mount_point/dir1/\//file1\\// ) returned<span style="background-color: #FF0000"> </span>
<font color='#880000'>-...st_dev     (0x0:0x0)
</font><font color='#000088'>+...st_dev     (0xfffe:0x1)
</font> ...st_ino     b
 ...st_mode    100011
 ...st_nlink   3
<font color='#997700'>@@ -921,9 +1239,11 @@
</font> ...st_atime   Sat Dec 31 09:00:00 1988
 ...st_mtime   Sat Dec 31 09:00:00 1988
 ...st_ctime   Sat Dec 31 09:00:25 1988
<font color='#000088'>+...st_blksize 0
+...st_blocks  0
</font> Change group of /my_mount_point/dir1/file2
 stat( /my_mount_point/dir1/file2 ) returned<span style="background-color: #FF0000"> </span>
<font color='#880000'>-...st_dev     (0x0:0x0)
</font><font color='#000088'>+...st_dev     (0xfffe:0x1)
</font> ...st_ino     c
 ...st_mode    100004
 ...st_nlink   3
<font color='#997700'>@@ -934,9 +1254,11 @@
</font> ...st_atime   Sat Dec 31 09:00:00 1988
 ...st_mtime   Sat Dec 31 09:00:00 1988
 ...st_ctime   Sat Dec 31 09:00:25 1988
<font color='#000088'>+...st_blksize 0
+...st_blocks  0
</font> Change owner of /my_mount_point/dir1/file2
 stat( /my_mount_point/dir1/file2 ) returned<span style="background-color: #FF0000"> </span>
<font color='#880000'>-...st_dev     (0x0:0x0)
</font><font color='#000088'>+...st_dev     (0xfffe:0x1)
</font> ...st_ino     c
 ...st_mode    100004
 ...st_nlink   3
<font color='#997700'>@@ -947,9 +1269,11 @@
</font> ...st_atime   Sat Dec 31 09:00:00 1988
 ...st_mtime   Sat Dec 31 09:00:00 1988
 ...st_ctime   Sat Dec 31 09:00:25 1988
<font color='#000088'>+...st_blksize 0
+...st_blocks  0
</font> Change group of /my_mount_point/dir1/file3
 stat( /my_mount_point/dir1/file3 ) returned<span style="background-color: #FF0000"> </span>
<font color='#880000'>-...st_dev     (0x0:0x0)
</font><font color='#000088'>+...st_dev     (0xfffe:0x1)
</font> ...st_ino     d
 ...st_mode    100004
 ...st_nlink   3
<font color='#997700'>@@ -959,10 +1283,12 @@
</font> ...st_size    0
 ...st_atime   Sat Dec 31 09:00:00 1988
 ...st_mtime   Sat Dec 31 09:00:00 1988
<font color='#880000'>-...st_ctime   Sat Dec 31 09:00:26 1988
</font><font color='#000088'>+...st_ctime   Sat Dec 31 09:00:25 1988
+...st_blksize 0
+...st_blocks  0
</font> Change owner of /my_mount_point/dir1/file3
 stat( /my_mount_point/dir1/file3 ) returned<span style="background-color: #FF0000"> </span>
<font color='#880000'>-...st_dev     (0x0:0x0)
</font><font color='#000088'>+...st_dev     (0xfffe:0x1)
</font> ...st_ino     d
 ...st_mode    100004
 ...st_nlink   3
<font color='#997700'>@@ -972,10 +1298,12 @@
</font> ...st_size    0
 ...st_atime   Sat Dec 31 09:00:00 1988
 ...st_mtime   Sat Dec 31 09:00:00 1988
<font color='#880000'>-...st_ctime   Sat Dec 31 09:00:26 1988
</font><font color='#000088'>+...st_ctime   Sat Dec 31 09:00:25 1988
+...st_blksize 0
+...st_blocks  0
</font> Change group of /my_mount_point/dir1/file4
 stat( /my_mount_point/dir1/file4 ) returned<span style="background-color: #FF0000"> </span>
<font color='#880000'>-...st_dev     (0x0:0x0)
</font><font color='#000088'>+...st_dev     (0xfffe:0x1)
</font> ...st_ino     e
 ...st_mode    100004
 ...st_nlink   3
<font color='#997700'>@@ -985,10 +1313,12 @@
</font> ...st_size    0
 ...st_atime   Sat Dec 31 09:00:00 1988
 ...st_mtime   Sat Dec 31 09:00:00 1988
<font color='#880000'>-...st_ctime   Sat Dec 31 09:00:26 1988
</font><font color='#000088'>+...st_ctime   Sat Dec 31 09:00:25 1988
+...st_blksize 0
+...st_blocks  0
</font> Change owner of /my_mount_point/dir1/file4
 stat( /my_mount_point/dir1/file4 ) returned<span style="background-color: #FF0000"> </span>
<font color='#880000'>-...st_dev     (0x0:0x0)
</font><font color='#000088'>+...st_dev     (0xfffe:0x1)
</font> ...st_ino     e
 ...st_mode    100004
 ...st_nlink   3
<font color='#997700'>@@ -998,10 +1328,12 @@
</font> ...st_size    0
 ...st_atime   Sat Dec 31 09:00:00 1988
 ...st_mtime   Sat Dec 31 09:00:00 1988
<font color='#880000'>-...st_ctime   Sat Dec 31 09:00:26 1988
</font><font color='#000088'>+...st_ctime   Sat Dec 31 09:00:25 1988
+...st_blksize 0
+...st_blocks  0
</font> Change group of /my_mount_point/dir1/dir1/file1
 stat( /my_mount_point/dir1/dir1/file1 ) returned<span style="background-color: #FF0000"> </span>
<font color='#880000'>-...st_dev     (0x0:0x0)
</font><font color='#000088'>+...st_dev     (0xfffe:0x1)
</font> ...st_ino     f
 ...st_mode    100004
 ...st_nlink   3
<font color='#997700'>@@ -1011,10 +1343,12 @@
</font> ...st_size    0
 ...st_atime   Sat Dec 31 09:00:00 1988
 ...st_mtime   Sat Dec 31 09:00:00 1988
<font color='#880000'>-...st_ctime   Sat Dec 31 09:00:26 1988
</font><font color='#000088'>+...st_ctime   Sat Dec 31 09:00:25 1988
+...st_blksize 0
+...st_blocks  0
</font> Change owner of /my_mount_point/dir1/dir1/file1
 stat( /my_mount_point/dir1/dir1/file1 ) returned<span style="background-color: #FF0000"> </span>
<font color='#880000'>-...st_dev     (0x0:0x0)
</font><font color='#000088'>+...st_dev     (0xfffe:0x1)
</font> ...st_ino     f
 ...st_mode    100004
 ...st_nlink   3
<font color='#997700'>@@ -1024,10 +1358,12 @@
</font> ...st_size    0
 ...st_atime   Sat Dec 31 09:00:00 1988
 ...st_mtime   Sat Dec 31 09:00:00 1988
<font color='#880000'>-...st_ctime   Sat Dec 31 09:00:26 1988
</font><font color='#000088'>+...st_ctime   Sat Dec 31 09:00:25 1988
+...st_blksize 0
+...st_blocks  0
</font> Change group of ../../..//my_mount_point/dir1/./././dir1/ file1
 stat( ../../..//my_mount_point/dir1/./././dir1/ file1 ) returned<span style="background-color: #FF0000"> </span>
<font color='#880000'>-...st_dev     (0x0:0x0)
</font><font color='#000088'>+...st_dev     (0xfffe:0x1)
</font> ...st_ino     10
 ...st_mode    100004
 ...st_nlink   3
<font color='#997700'>@@ -1037,10 +1373,12 @@
</font> ...st_size    0
 ...st_atime   Sat Dec 31 09:00:00 1988
 ...st_mtime   Sat Dec 31 09:00:00 1988
<font color='#880000'>-...st_ctime   Sat Dec 31 09:00:26 1988
</font><font color='#000088'>+...st_ctime   Sat Dec 31 09:00:25 1988
+...st_blksize 0
+...st_blocks  0
</font> Change owner of ../../..//my_mount_point/dir1/./././dir1/ file1
 stat( ../../..//my_mount_point/dir1/./././dir1/ file1 ) returned<span style="background-color: #FF0000"> </span>
<font color='#880000'>-...st_dev     (0x0:0x0)
</font><font color='#000088'>+...st_dev     (0xfffe:0x1)
</font> ...st_ino     10
 ...st_mode    100004
 ...st_nlink   3
<font color='#997700'>@@ -1050,10 +1388,12 @@
</font> ...st_size    0
 ...st_atime   Sat Dec 31 09:00:00 1988
 ...st_mtime   Sat Dec 31 09:00:00 1988
<font color='#880000'>-...st_ctime   Sat Dec 31 09:00:26 1988
</font><font color='#000088'>+...st_ctime   Sat Dec 31 09:00:25 1988
+...st_blksize 0
+...st_blocks  0
</font> Change group of main.c
 stat( main.c ) returned<span style="background-color: #FF0000"> </span>
<font color='#880000'>-...st_dev     (0x0:0x0)
</font><font color='#000088'>+...st_dev     (0xfffe:0x1)
</font> ...st_ino     11
 ...st_mode    100004
 ...st_nlink   1
<font color='#997700'>@@ -1063,10 +1403,12 @@
</font> ...st_size    0
 ...st_atime   Sat Dec 31 09:00:00 1988
 ...st_mtime   Sat Dec 31 09:00:00 1988
<font color='#880000'>-...st_ctime   Sat Dec 31 09:00:26 1988
</font><font color='#000088'>+...st_ctime   Sat Dec 31 09:00:25 1988
+...st_blksize 0
+...st_blocks  0
</font> Change owner of main.c
 stat( main.c ) returned<span style="background-color: #FF0000"> </span>
<font color='#880000'>-...st_dev     (0x0:0x0)
</font><font color='#000088'>+...st_dev     (0xfffe:0x1)
</font> ...st_ino     11
 ...st_mode    100004
 ...st_nlink   1
<font color='#997700'>@@ -1076,7 +1418,9 @@
</font> ...st_size    0
 ...st_atime   Sat Dec 31 09:00:00 1988
 ...st_mtime   Sat Dec 31 09:00:00 1988
<font color='#880000'>-...st_ctime   Sat Dec 31 09:00:26 1988
</font><font color='#000088'>+...st_ctime   Sat Dec 31 09:00:25 1988
+...st_blksize 0
+...st_blocks  0
</font> Change group of dir1/dir1/../../links/dir1
 stat( dir1/dir1/../../links/dir1 ) returned<span style="background-color: #FF0000"> </span>
 ...st_dev     (0x0:0x0)
<font color='#997700'>@@ -1086,10 +1430,12 @@
</font> ...st_uid     0
 ...st_gid     1
 ...st_rdev    (0x0:0x0)
<font color='#880000'>-...st_size    1876
</font><font color='#000088'>+...st_size    3560
</font> ...st_atime   Sat Dec 31 09:00:00 1988
 ...st_mtime   Sat Dec 31 09:00:00 1988
<font color='#880000'>-...st_ctime   Sat Dec 31 09:00:31 1988
</font><font color='#000088'>+...st_ctime   Sat Dec 31 09:00:30 1988
+...st_blksize 0
+...st_blocks  0
</font> Change owner of dir1/dir1/../../links/dir1
 stat( dir1/dir1/../../links/dir1 ) returned : Permission denied
 Change group of links/dir2
<font color='#997700'>@@ -1104,7 +1450,9 @@
</font> ...st_size    0
 ...st_atime   Sat Dec 31 09:00:00 1988
 ...st_mtime   Sat Dec 31 09:00:00 1988
<font color='#880000'>-...st_ctime   Sat Dec 31 09:00:31 1988
</font><font color='#000088'>+...st_ctime   Sat Dec 31 09:00:30 1988
+...st_blksize 0
+...st_blocks  0
</font> Change owner of links/dir2
 stat( links/dir2 ) returned<span style="background-color: #FF0000"> </span>
 ...st_dev     (0x0:0x0)
<font color='#997700'>@@ -1117,7 +1465,9 @@
</font> ...st_size    0
 ...st_atime   Sat Dec 31 09:00:00 1988
 ...st_mtime   Sat Dec 31 09:00:00 1988
<font color='#880000'>-...st_ctime   Sat Dec 31 09:00:31 1988
</font><font color='#000088'>+...st_ctime   Sat Dec 31 09:00:30 1988
+...st_blksize 0
+...st_blocks  0
</font> Change group of links/dir3
 stat( links/dir3 ) returned<span style="background-color: #FF0000"> </span>
 ...st_dev     (0x0:0x0)
<font color='#997700'>@@ -1130,7 +1480,9 @@
</font> ...st_size    0
 ...st_atime   Sat Dec 31 09:00:00 1988
 ...st_mtime   Sat Dec 31 09:00:00 1988
<font color='#880000'>-...st_ctime   Sat Dec 31 09:00:31 1988
</font><font color='#000088'>+...st_ctime   Sat Dec 31 09:00:30 1988
+...st_blksize 0
+...st_blocks  0
</font> Change owner of links/dir3
 stat( links/dir3 ) returned<span style="background-color: #FF0000"> </span>
 ...st_dev     (0x0:0x0)
<font color='#997700'>@@ -1143,7 +1495,9 @@
</font> ...st_size    0
 ...st_atime   Sat Dec 31 09:00:00 1988
 ...st_mtime   Sat Dec 31 09:00:00 1988
<font color='#880000'>-...st_ctime   Sat Dec 31 09:00:31 1988
</font><font color='#000088'>+...st_ctime   Sat Dec 31 09:00:30 1988
+...st_blksize 0
+...st_blocks  0
</font> Change group of links/dir4
 stat( links/dir4 ) returned<span style="background-color: #FF0000"> </span>
 ...st_dev     (0x0:0x0)
<font color='#997700'>@@ -1156,7 +1510,9 @@
</font> ...st_size    0
 ...st_atime   Sat Dec 31 09:00:00 1988
 ...st_mtime   Sat Dec 31 09:00:00 1988
<font color='#880000'>-...st_ctime   Sat Dec 31 09:00:31 1988
</font><font color='#000088'>+...st_ctime   Sat Dec 31 09:00:30 1988
+...st_blksize 0
+...st_blocks  0
</font> Change owner of links/dir4
 stat( links/dir4 ) returned<span style="background-color: #FF0000"> </span>
 ...st_dev     (0x0:0x0)
<font color='#997700'>@@ -1169,7 +1525,9 @@
</font> ...st_size    0
 ...st_atime   Sat Dec 31 09:00:00 1988
 ...st_mtime   Sat Dec 31 09:00:00 1988
<font color='#880000'>-...st_ctime   Sat Dec 31 09:00:31 1988
</font><font color='#000088'>+...st_ctime   Sat Dec 31 09:00:30 1988
+...st_blksize 0
+...st_blocks  0
</font> Change group of links/dir1_dir1
 stat( links/dir1_dir1 ) returned<span style="background-color: #FF0000"> </span>
 ...st_dev     (0x0:0x0)
<font color='#997700'>@@ -1179,10 +1537,12 @@
</font> ...st_uid     0
 ...st_gid     1
 ...st_rdev    (0x0:0x0)
<font color='#880000'>-...st_size    536
</font><font color='#000088'>+...st_size    1040
</font> ...st_atime   Sat Dec 31 09:00:00 1988
 ...st_mtime   Sat Dec 31 09:00:00 1988
<font color='#880000'>-...st_ctime   Sat Dec 31 09:00:31 1988
</font><font color='#000088'>+...st_ctime   Sat Dec 31 09:00:30 1988
+...st_blksize 0
+...st_blocks  0
</font> Change owner of links/dir1_dir1
 stat( links/dir1_dir1 ) returned<span style="background-color: #FF0000"> </span>
 ...st_dev     (0x0:0x0)
<font color='#997700'>@@ -1192,10 +1552,12 @@
</font> ...st_uid     1
 ...st_gid     0
 ...st_rdev    (0x0:0x0)
<font color='#880000'>-...st_size    536
</font><font color='#000088'>+...st_size    1040
</font> ...st_atime   Sat Dec 31 09:00:00 1988
 ...st_mtime   Sat Dec 31 09:00:00 1988
<font color='#880000'>-...st_ctime   Sat Dec 31 09:00:31 1988
</font><font color='#000088'>+...st_ctime   Sat Dec 31 09:00:30 1988
+...st_blksize 0
+...st_blocks  0
</font> Change group of links/dir1_ dir1
 stat( links/dir1_ dir1 ) returned : No such file or directory
 Change owner of links/dir1_ dir1
<font color='#997700'>@@ -1209,12 +1571,138 @@
</font> ...st_uid     0
 ...st_gid     1
 ...st_rdev    (0x0:0x0)
<font color='#880000'>-...st_size    8844
</font><font color='#000088'>+...st_size    21420
</font> ...st_atime   Sat Dec 31 09:00:00 1988
 ...st_mtime   Sat Dec 31 09:00:00 1988
<font color='#880000'>-...st_ctime   Sat Dec 31 09:00:31 1988
</font><font color='#000088'>+...st_ctime   Sat Dec 31 09:00:30 1988
+...st_blksize 0
+...st_blocks  0
</font> Change owner of links/../links/../links/links
 stat( links/../links/../links/links ) returned : Permission denied
<font color='#000088'>+Change group of /my_mount_point/symlinks/a_file_symlink
+lstat( /my_mount_point/symlinks/a_file_symlink ) returned<span style="background-color: #FF0000"> </span>
+...st_dev     (0xfffe:0x1)
+...st_ino     2c
+...st_mode    120755
+...st_nlink   1
+...st_uid     0
+...st_gid     1
+...st_rdev    (0x0:0x0)
+...st_size    0
+...st_atime   Sat Dec 31 09:00:15 1988
+...st_mtime   Sat Dec 31 09:00:15 1988
+...st_ctime   Sat Dec 31 09:00:35 1988
+...st_blksize 0
+...st_blocks  0
+Change owner of /my_mount_point/symlinks/a_file_symlink
+lstat( /my_mount_point/symlinks/a_file_symlink ) returned<span style="background-color: #FF0000"> </span>
+...st_dev     (0xfffe:0x1)
+...st_ino     2c
+...st_mode    120755
+...st_nlink   1
+...st_uid     1
+...st_gid     0
+...st_rdev    (0x0:0x0)
+...st_size    0
+...st_atime   Sat Dec 31 09:00:15 1988
+...st_mtime   Sat Dec 31 09:00:15 1988
+...st_ctime   Sat Dec 31 09:00:35 1988
+...st_blksize 0
+...st_blocks  0
+Change group of /my_mount_point/symlinks/a_dir_symlink
+lstat( /my_mount_point/symlinks/a_dir_symlink ) returned<span style="background-color: #FF0000"> </span>
+...st_dev     (0xfffe:0x1)
+...st_ino     2d
+...st_mode    120755
+...st_nlink   1
+...st_uid     0
+...st_gid     1
+...st_rdev    (0x0:0x0)
+...st_size    0
+...st_atime   Sat Dec 31 09:00:15 1988
+...st_mtime   Sat Dec 31 09:00:15 1988
+...st_ctime   Sat Dec 31 09:00:35 1988
+...st_blksize 0
+...st_blocks  0
+Change owner of /my_mount_point/symlinks/a_dir_symlink
+lstat( /my_mount_point/symlinks/a_dir_symlink ) returned<span style="background-color: #FF0000"> </span>
+...st_dev     (0xfffe:0x1)
+...st_ino     2d
+...st_mode    120755
+...st_nlink   1
+...st_uid     1
+...st_gid     0
+...st_rdev    (0x0:0x0)
+...st_size    0
+...st_atime   Sat Dec 31 09:00:15 1988
+...st_mtime   Sat Dec 31 09:00:15 1988
+...st_ctime   Sat Dec 31 09:00:35 1988
+...st_blksize 0
+...st_blocks  0
+Change group of /my_mount_point/symlinks/a_link_symlink
+lstat( /my_mount_point/symlinks/a_link_symlink ) returned<span style="background-color: #FF0000"> </span>
+...st_dev     (0xfffe:0x1)
+...st_ino     2e
+...st_mode    120755
+...st_nlink   1
+...st_uid     0
+...st_gid     1
+...st_rdev    (0x0:0x0)
+...st_size    0
+...st_atime   Sat Dec 31 09:00:15 1988
+...st_mtime   Sat Dec 31 09:00:15 1988
+...st_ctime   Sat Dec 31 09:00:35 1988
+...st_blksize 0
+...st_blocks  0
+Change owner of /my_mount_point/symlinks/a_link_symlink
+lstat( /my_mount_point/symlinks/a_link_symlink ) returned<span style="background-color: #FF0000"> </span>
+...st_dev     (0xfffe:0x1)
+...st_ino     2e
+...st_mode    120755
+...st_nlink   1
+...st_uid     1
+...st_gid     0
+...st_rdev    (0x0:0x0)
+...st_size    0
+...st_atime   Sat Dec 31 09:00:15 1988
+...st_mtime   Sat Dec 31 09:00:15 1988
+...st_ctime   Sat Dec 31 09:00:35 1988
+...st_blksize 0
+...st_blocks  0
+Change group of ../symlinks/no_file
+lstat( ../symlinks/no_file ) returned : No such file or directory
+Change owner of ../symlinks/no_file
+lstat( ../symlinks/no_file ) returned : No such file or directory
+Change group of /my_mount_point/symlinks/a_dir_symlink/a_file_symlink
+lstat( /my_mount_point/symlinks/a_dir_symlink/a_file_symlink ) returned<span style="background-color: #FF0000"> </span>
+...st_dev     (0xfffe:0x1)
+...st_ino     30
+...st_mode    120755
+...st_nlink   1
+...st_uid     0
+...st_gid     1
+...st_rdev    (0x0:0x0)
+...st_size    0
+...st_atime   Sat Dec 31 09:00:15 1988
+...st_mtime   Sat Dec 31 09:00:15 1988
+...st_ctime   Sat Dec 31 09:00:35 1988
+...st_blksize 0
+...st_blocks  0
+Change owner of /my_mount_point/symlinks/a_dir_symlink/a_file_symlink
+lstat( /my_mount_point/symlinks/a_dir_symlink/a_file_symlink ) returned<span style="background-color: #FF0000"> </span>
+...st_dev     (0xfffe:0x1)
+...st_ino     30
+...st_mode    120755
+...st_nlink   1
+...st_uid     1
+...st_gid     0
+...st_rdev    (0x0:0x0)
+...st_size    0
+...st_atime   Sat Dec 31 09:00:15 1988
+...st_mtime   Sat Dec 31 09:00:15 1988
+...st_ctime   Sat Dec 31 09:00:35 1988
+...st_blksize 0
+...st_blocks  0
</font> 
 
 *** END OF STAT TEST 01 ***

<font color='#006600'>diff -u rtems/testsuites/psxtests/psxstat/test.c:1.26 rtems/testsuites/psxtests/psxstat/test.c:1.27
--- rtems/testsuites/psxtests/psxstat/test.c:1.26       Tue Jun  1 19:50:37 2010
+++ rtems/testsuites/psxtests/psxstat/test.c    Thu Jul  1 12:23:47 2010
</font><font color='#997700'>@@ -2,6 +2,9 @@
</font>  *  This test exercises stat() via fstat() and generates as many of the
  *  path evaluation cases as possible.
  *
<font color='#000088'>+ *  This test also exercises lstat() and lchown() when symlinks are
+ *  involved.
+ *
</font>  *  COPYRIGHT (c) 1989-2009.
  *  On-Line Applications Research Corporation (OAR).
  *
<font color='#997700'>@@ -164,11 +167,12 @@
</font> };
 
 /*
<font color='#880000'>- *  Do a stat on a single file and report the status.
</font><font color='#000088'>+ *  Do a stat/lstat on a single file and report the status.
</font>  */
 
<font color='#880000'>-void stat_a_file(
-  const char *file
</font><font color='#000088'>+void stat_a_file_helper(
+  const char *file,
+  int         follow_link
</font> )
 {
   int         status;
<font color='#997700'>@@ -181,10 +185,15 @@
</font> 
   rtems_test_assert( file );
 
<font color='#880000'>-  printf( "stat( %s ) returned ", file );
-  fflush( stdout );
-
-  status = stat( file, &statbuf );
</font><font color='#000088'>+  if ( follow_link ) {
+    printf( "stat( %s ) returned ", file );
+    fflush( stdout );
+    status = stat( file, &statbuf );
+  } else {
+    printf( "lstat( %s ) returned ", file );
+    fflush( stdout );
+    status = lstat( file, &statbuf );
+  }
</font> 
   if ( status == -1 ) {
     printf( ": %s\n", strerror( errno ) );
<font color='#997700'>@@ -211,6 +220,26 @@
</font> }
 
 /*
<font color='#000088'>+ *  Do a stat on a single file and report the status.
+*/
+void stat_a_file(
+  const char *file
+)
+{
+  stat_a_file_helper( file, true );
+}
+
+/*
+ *  Do a lstat on a single file and report the status.
+ */
+void lstat_a_file(
+  const char *file
+)
+{
+  stat_a_file_helper( file, false );
+}
+
+/*
</font>  *  stat() multiple files at a time
  */
 
<font color='#997700'>@@ -228,10 +257,11 @@
</font> }
 
 /*
<font color='#880000'>- *  chown() multiple files at a time
</font><font color='#000088'>+ *  chown()/lchown() multiple files at a time
</font>  */
<font color='#880000'>-void chown_multiple_files(
-  char **files
</font><font color='#000088'>+void chown_multiple_files_helper(
+  char **files,
+  int    follow_link
</font> )
 {
   int    i;
<font color='#997700'>@@ -244,18 +274,46 @@
</font>   i = 0;
   while ( files[i] ) {
     printf("Change group of %s\n", files[i]);
<font color='#880000'>-    chown( files[i], st_uid, (st_gid+1) );
-    stat_a_file( files[i] );
</font><font color='#000088'>+    if ( follow_link ) {
+      chown( files[i], st_uid, (st_gid+1) );
+      stat_a_file( files[i] );
+    } else {
+      lchown( files[i], st_uid, (st_gid+1) );
+      lstat_a_file( files[i] );
+    }
</font> 
     printf("Change owner of %s\n", files[i]);
<font color='#880000'>-    chown( files[i], (st_uid+1), st_gid );
-    stat_a_file( files[i] );
</font><font color='#000088'>+    if ( follow_link ) {
+      chown( files[i], (st_uid+1), st_gid );
+      stat_a_file( files[i] );
+    } else {
+      lchown( files[i], (st_uid+1), st_gid );
+      lstat_a_file( files[i] );
+    }
</font>     i++;
   }
 
 }
 
<font color='#000088'>+/*
+ *  chown() multiple files at a time
+ */
+void chown_multiple_files(
+  char **files
+)
+{
+  chown_multiple_files_helper( files, true );
+}
</font> 
<font color='#000088'>+/*
+ *  lchown() multiple files at a time
+ */
+void lchown_multiple_files(
+  char **files
+)
+{
+  chown_multiple_files_helper( files, false );
+}
</font> 
 /*
  *  mknod() multiple files at a time
<font color='#997700'>@@ -377,7 +435,7 @@
</font> 
 void make_multiple_symlinks(void)
 {
<font color='#880000'>- int  status;
</font><font color='#000088'>+ int  status, i;
</font> 
  make_a_symlink( Files[0],             SymLinks[0] );
  make_a_symlink( Directories[0],       SymLinks[1] );
<font color='#997700'>@@ -386,11 +444,10 @@
</font>  make_a_symlink( SymLinks[1],          SymLinks[4] );
  make_a_symlink( "//my_mount_point/links","/my_mount_point/symlinks/links" );
 
<font color='#880000'>- stat_a_file( SymLinks[0] );
- stat_a_file( SymLinks[1] );
- stat_a_file( SymLinks[2] );
- stat_a_file( SymLinks[3] );
- stat_a_file( SymLinks[4] );
</font><font color='#000088'>+ for (i = 0; i < 5; i++) {
+   stat_a_file( SymLinks[i] );
+   lstat_a_file( SymLinks[i] );
+ }
</font> 
  status = symlink(  "//links", "bob/frank" );
  rtems_test_assert (status == -1);
<font color='#997700'>@@ -433,6 +490,7 @@
</font>   for (i=1; i < link_count; i++) {
     sprintf( name1, "%d", i );
     stat_a_file( name1 );
<font color='#000088'>+    lstat_a_file( name1 );
</font>   }
 
 }
<font color='#997700'>@@ -841,6 +899,9 @@
</font>   status = rtems_task_wake_after( TIMEOUT_VALUE );
   chown_multiple_files( Links_to_Dirs );
 
<font color='#000088'>+  status = rtems_task_wake_after( TIMEOUT_VALUE );
+  lchown_multiple_files( SymLinks );
+
</font>   puts( "\n\n*** END OF STAT TEST 01 ***" );
   rtems_test_exit(0);
 }
</pre>
<p> </p>
<a name='cs3'></a>
<table border='0' cellspacing='0' cellpadding='5' width='100%' bgcolor='#eeeeee'>
<tr><td colspan='3' bgcolor='#dddddd'>
 <font color='#bb2222'><strong>joel</strong></font>
</td></tr>
<tr><td colspan='3' bgcolor='#dddddd'><pre>2010-07-01 Bharath Suri <bharath.s.jois@gmail.com>

        PR 1598/testing
        * Makefile.am, configure.ac, psxpasswd01/init.c,
        psxpasswd01/psxpasswd01.doc, psxpasswd01/psxpasswd01.scn: Add testing
        for POSIX user database (e.g. /etc/group and /etc/passwd) access
        routines which are implemented in libcsupport/src/getpwent.c.
        * psxpasswd02/.cvsignore, psxpasswd02/Makefile.am, psxpasswd02/init.c,
        psxpasswd02/psxpasswd02.doc, psxpasswd02/psxpasswd02.scn: New files.
</pre></td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/testsuites/psxtests/ChangeLog.diff?r1=text&tr1=1.279&r2=text&tr2=1.280&diff_format=h">M</a></td><td width='1%'>1.280</td><td width='100%'>testsuites/psxtests/ChangeLog</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/testsuites/psxtests/Makefile.am.diff?r1=text&tr1=1.63&r2=text&tr2=1.64&diff_format=h">M</a></td><td width='1%'>1.64</td><td width='100%'>testsuites/psxtests/Makefile.am</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/testsuites/psxtests/configure.ac.diff?r1=text&tr1=1.67&r2=text&tr2=1.68&diff_format=h">M</a></td><td width='1%'>1.68</td><td width='100%'>testsuites/psxtests/configure.ac</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/testsuites/psxtests/psxpasswd01/init.c.diff?r1=text&tr1=1.1&r2=text&tr2=1.2&diff_format=h">M</a></td><td width='1%'>1.2</td><td width='100%'>testsuites/psxtests/psxpasswd01/init.c</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/testsuites/psxtests/psxpasswd01/psxpasswd01.doc.diff?r1=text&tr1=1.1&r2=text&tr2=1.2&diff_format=h">M</a></td><td width='1%'>1.2</td><td width='100%'>testsuites/psxtests/psxpasswd01/psxpasswd01.doc</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/testsuites/psxtests/psxpasswd01/psxpasswd01.scn.diff?r1=text&tr1=1.1&r2=text&tr2=1.2&diff_format=h">M</a></td><td width='1%'>1.2</td><td width='100%'>testsuites/psxtests/psxpasswd01/psxpasswd01.scn</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/testsuites/psxtests/psxpasswd02/.cvsignore?rev=1.1&content-type=text/vnd.viewcvs-markup">A</a></td><td width='1%'><font color="#000088">1.1</font></td><td width='100%'><font color="#000088">testsuites/psxtests/psxpasswd02/.cvsignore</font></td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/testsuites/psxtests/psxpasswd02/Makefile.am?rev=1.1&content-type=text/vnd.viewcvs-markup">A</a></td><td width='1%'><font color="#000088">1.1</font></td><td width='100%'><font color="#000088">testsuites/psxtests/psxpasswd02/Makefile.am</font></td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/testsuites/psxtests/psxpasswd02/init.c?rev=1.1&content-type=text/vnd.viewcvs-markup">A</a></td><td width='1%'><font color="#000088">1.1</font></td><td width='100%'><font color="#000088">testsuites/psxtests/psxpasswd02/init.c</font></td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/testsuites/psxtests/psxpasswd02/psxpasswd02.doc?rev=1.1&content-type=text/vnd.viewcvs-markup">A</a></td><td width='1%'><font color="#000088">1.1</font></td><td width='100%'><font color="#000088">testsuites/psxtests/psxpasswd02/psxpasswd02.doc</font></td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/testsuites/psxtests/psxpasswd02/psxpasswd02.scn?rev=1.1&content-type=text/vnd.viewcvs-markup">A</a></td><td width='1%'><font color="#000088">1.1</font></td><td width='100%'><font color="#000088">testsuites/psxtests/psxpasswd02/psxpasswd02.scn</font></td></tr>
</table>
<pre>
<font color='#006600'>diff -u rtems/testsuites/psxtests/ChangeLog:1.279 rtems/testsuites/psxtests/ChangeLog:1.280
--- rtems/testsuites/psxtests/ChangeLog:1.279   Thu Jul  1 12:24:35 2010
+++ rtems/testsuites/psxtests/ChangeLog Thu Jul  1 12:26:27 2010
</font><font color='#997700'>@@ -1,3 +1,13 @@
</font><font color='#000088'>+2010-07-01    Bharath Suri <bharath.s.jois@gmail.com>
+
+       PR 1598/testing
+       * Makefile.am, configure.ac, psxpasswd01/init.c,
+       psxpasswd01/psxpasswd01.doc, psxpasswd01/psxpasswd01.scn: Add testing
+       for POSIX user database (e.g. /etc/group and /etc/passwd) access
+       routines which are implemented in libcsupport/src/getpwent.c.
+       * psxpasswd02/.cvsignore, psxpasswd02/Makefile.am, psxpasswd02/init.c,
+       psxpasswd02/psxpasswd02.doc, psxpasswd02/psxpasswd02.scn: New files.
+
</font> 2010-07-01        Vinu Rajashekhar <vinutheraj@gmail.com>
 
        PR 1597/cpukit

<font color='#006600'>diff -u rtems/testsuites/psxtests/Makefile.am:1.63 rtems/testsuites/psxtests/Makefile.am:1.64
--- rtems/testsuites/psxtests/Makefile.am:1.63  Thu Jul  1 09:40:09 2010
+++ rtems/testsuites/psxtests/Makefile.am       Thu Jul  1 12:26:29 2010
</font><font color='#997700'>@@ -20,7 +20,7 @@
</font> 
 ## File IO tests
 SUBDIRS += psxfile01 psxfile02 psxfilelock01 psxid01 psximfs01 psxreaddir \
<font color='#880000'>-    psxstat psxmount psx13 psxchroot01 psxpasswd01
</font><font color='#000088'>+    psxstat psxmount psx13 psxchroot01 psxpasswd01 psxpasswd02
</font> 
 ## Until sys/uio.h is moved to libcsupport, we have to have networking
 ## enabled to support readv and writev.  Hopefully this is a temporary

<font color='#006600'>diff -u rtems/testsuites/psxtests/configure.ac:1.67 rtems/testsuites/psxtests/configure.ac:1.68
--- rtems/testsuites/psxtests/configure.ac:1.67 Thu Jul  1 09:40:09 2010
+++ rtems/testsuites/psxtests/configure.ac      Thu Jul  1 12:26:30 2010
</font><font color='#997700'>@@ -105,6 +105,7 @@
</font> psxmutexattr01/Makefile
 psxobj01/Makefile
 psxpasswd01/Makefile
<font color='#000088'>+psxpasswd02/Makefile
</font> psxreaddir/Makefile
 psxrdwrv/Makefile
 psxrwlock01/Makefile

<font color='#006600'>diff -u rtems/testsuites/psxtests/psxpasswd01/init.c:1.1 rtems/testsuites/psxtests/psxpasswd01/init.c:1.2
--- rtems/testsuites/psxtests/psxpasswd01/init.c:1.1    Thu Dec  3 11:15:02 2009
+++ rtems/testsuites/psxtests/psxpasswd01/init.c        Thu Jul  1 12:26:31 2010
</font><font color='#997700'>@@ -60,19 +60,100 @@
</font>   struct passwd *pw;
   struct group  *gr;
 
<font color='#880000'>-  puts( "*** PASSWORD/GROUP TEST ***" );
</font><font color='#000088'>+  puts( "*** PASSWORD/GROUP TEST - 01 ***" );
+
+  /* getpwent */
+  puts( "Init - getpwent() -- OK, result should be NULL" );
+  pw = getpwent();
+  rtems_test_assert( !pw );
+
+  /* getgrent */
+  puts( "Init - getgrent() -- OK, result should be NULL" );
+  gr = getgrent();
+  rtems_test_assert( !gr );
+
+  /* setpwent */
+
+  puts( "Init - setpwent() -- OK" );
+  setpwent();
+
+  /* setgrent */
+
+  puts( "Init - setgrent() -- OK" );
+  setgrent();
+
+  /* getpwent */
+
+  puts( "Init - getpwent() (1) -- OK" );
+  pw = getpwent();
+  rtems_test_assert( pw );
+  print_passwd( pw );
+
+  puts( "Init - getpwent() (2) -- OK" );
+  pw = getpwent();
+  rtems_test_assert( pw );
+  print_passwd( pw );
+
+  puts( "Init - getpwent() (3) -- OK" );
+  pw = getpwent();
+  rtems_test_assert( pw );
+  print_passwd( pw );
+
+  puts( "Init - getpwent() (4) -- result should be NULL" );
+  pw = getpwent();
+  rtems_test_assert( !pw );
+
+  /* getgrent */
+
+  puts( "Init - getgrent() (1) -- OK" );
+  gr = getgrent();
+  rtems_test_assert( gr );
+  print_group( gr );
+
+  puts( "Init - getgrent() (2) -- OK" );
+  gr = getgrent();
+  rtems_test_assert( gr );
+  print_group( gr );
+
+  puts( "Init - getgrent() (3) -- OK" );
+  gr = getgrent();
+  rtems_test_assert( gr );
+  print_group( gr );
+
+  puts( "Init - getgrent() (4) -- result should be NULL" );
+  gr = getgrent();
+  rtems_test_assert( !gr );
</font> 
   /* getpwnam */
   puts( "Init - getpwnam(\"root\") -- OK" );
<font color='#880000'>-  pw = getpwnam("root");
</font><font color='#000088'>+  pw = getpwnam( "root" );
</font>   rtems_test_assert( pw );
   print_passwd( pw );
 
   puts( "Init - getpwnam(\"rtems\") -- OK" );
<font color='#880000'>-  pw = getpwnam("rtems");
</font><font color='#000088'>+  pw = getpwnam( "rtems" );
</font>   rtems_test_assert( pw );
   print_passwd( pw );
 
<font color='#000088'>+  puts( "Init - getpwnam(\"suser\") -- result should be NULL" );
+  pw = getpwnam( "suser" );
+  rtems_test_assert( !pw );
+
+  /* getpwuid */
+  puts( "Init - getpwuid(0) -- OK" );
+  pw = getpwuid( 0 );
+  rtems_test_assert( pw );
+  print_passwd( pw );
+
+  puts( "Init - getpwuid(1) -- OK" );
+  pw = getpwuid( 1 );
+  rtems_test_assert( pw );
+  print_passwd( pw );
+
+  puts( "Init - getpwuid(4) -- result should be NULL" );
+  pw = getpwuid( 4 );
+  rtems_test_assert( !pw );
+
</font>   /* getgrnam */
   puts( "Init - getgrnam(\"root\") -- OK" );
   gr = getgrnam("root");
<font color='#997700'>@@ -84,7 +165,30 @@
</font>   rtems_test_assert( gr );
   print_group( gr );
 
<font color='#880000'>-  puts( "*** END OF PASSWORD/GROUP TEST ***" );
</font><font color='#000088'>+  /* getgrgid */
+  puts( "Init - getgrgid(0) -- OK" );
+  gr = getgrgid(0);
+  rtems_test_assert( gr );
+  print_group( gr );
+
+  puts( "Init - getgrgid(1) -- OK" );
+  gr = getgrgid(1);
+  rtems_test_assert( gr );
+  print_group( gr );
+
+  puts( "Init - getgrgid(4) -- result should be NULL");
+  gr = getgrgid( 4 );
+  rtems_test_assert( !gr );
+
+  /* endpwent */
+  puts( "Init - endpwent() -- OK" );
+  endpwent();
+
+  /* endgrent */
+  puts( "Init - endgrent() -- OK" );
+  endgrent();
+
+  puts( "*** END OF PASSWORD/GROUP TEST - 01 ***" );
</font>   rtems_test_exit( 0 );
 }
 

<font color='#006600'>diff -u rtems/testsuites/psxtests/psxpasswd01/psxpasswd01.doc:1.1 rtems/testsuites/psxtests/psxpasswd01/psxpasswd01.doc:1.2
--- rtems/testsuites/psxtests/psxpasswd01/psxpasswd01.doc:1.1   Thu Dec  3 11:15:02 2009
+++ rtems/testsuites/psxtests/psxpasswd01/psxpasswd01.doc       Thu Jul  1 12:26:33 2010
</font><font color='#997700'>@@ -18,11 +18,17 @@
</font>   getpwuid
   getpwnam_r
   getpwuid_r
<font color='#000088'>+  getpwent
+  setpwent
+  endpwent
</font> 
   getgrnam
   getgrgid
   getgrnam_r
   getgrgid_r
<font color='#000088'>+  getgrent
+  setgrent
+  endgrent
</font> 
 concepts:
 

<font color='#006600'>diff -u rtems/testsuites/psxtests/psxpasswd01/psxpasswd01.scn:1.1 rtems/testsuites/psxtests/psxpasswd01/psxpasswd01.scn:1.2
--- rtems/testsuites/psxtests/psxpasswd01/psxpasswd01.scn:1.1   Thu Dec  3 11:15:02 2009
+++ rtems/testsuites/psxtests/psxpasswd01/psxpasswd01.scn       Thu Jul  1 12:26:33 2010
</font><font color='#997700'>@@ -1,4 +1,48 @@
</font><font color='#880000'>-*** PASSWORD/GROUP TEST ***
</font><font color='#000088'>+Initialized console on port COM1 9600-8-N-1
+
+*** PASSWORD/GROUP TEST - 01 ***
+Init - getpwent() -- OK, result should be NULL
+Init - getgrent() -- OK, result should be NULL
+Init - setpwent() -- OK
+Init - setgrent() -- OK
+Init - getpwent() (1) -- OK
+  username: root
+  user password: *
+  user ID: 0
+  group ID: 0
+  real name:<span style="background-color: #FF0000"> </span>
+  home directory: /
+  shell program: /bin/sh
+Init - getpwent() (2) -- OK
+  username: rtems
+  user password: *
+  user ID: 1
+  group ID: 1
+  real name:<span style="background-color: #FF0000"> </span>
+  home directory: /
+  shell program: /bin/sh
+Init - getpwent() (3) -- OK
+  username: tty
+  user password: !
+  user ID: 2
+  group ID: 2
+  real name:<span style="background-color: #FF0000"> </span>
+  home directory: /
+  shell program: /bin/false
+Init - getpwent() (4) -- result should be NULL
+Init - getgrent() (1) -- OK
+  group name: root
+  group  password: x
+  group  ID: 0
+Init - getgrent() (2) -- OK
+  group name: rtems
+  group  password: x
+  group  ID: 1
+Init - getgrent() (3) -- OK
+  group name: tty
+  group  password: x
+  group  ID: 2
+Init - getgrent() (4) -- result should be NULL
</font> Init - getpwnam("root") -- OK
   username: root
   user password: *
<font color='#997700'>@@ -15,7 +59,24 @@
</font>   real name:<span style="background-color: #FF0000"> </span>
   home directory: /
   shell program: /bin/sh
<font color='#880000'>-
</font><font color='#000088'>+Init - getpwnam("suser") -- result should be NULL
+Init - getpwuid(0) -- OK
+  username: root
+  user password: *
+  user ID: 0
+  group ID: 0
+  real name:<span style="background-color: #FF0000"> </span>
+  home directory: /
+  shell program: /bin/sh
+Init - getpwuid(1) -- OK
+  username: rtems
+  user password: *
+  user ID: 1
+  group ID: 1
+  real name:<span style="background-color: #FF0000"> </span>
+  home directory: /
+  shell program: /bin/sh
+Init - getpwuid(4) -- result should be NULL
</font> Init - getgrnam("root") -- OK
   group name: root
   group  password: x
<font color='#997700'>@@ -24,5 +85,15 @@
</font>   group name: rtems
   group  password: x
   group  ID: 1
<font color='#880000'>-*** END OF PASSWORD/GROUP TEST ***
-
</font><font color='#000088'>+Init - getgrgid(0) -- OK
+  group name: root
+  group  password: x
+  group  ID: 0
+Init - getgrgid(1) -- OK
+  group name: rtems
+  group  password: x
+  group  ID: 1
+Init - getgrgid(4) -- result should be NULL
+Init - endpwent() -- OK
+Init - endgrent() -- OK
+*** END OF PASSWORD/GROUP TEST - 01 ***
</font>
<font color='#006600'>diff -u /dev/null rtems/testsuites/psxtests/psxpasswd02/.cvsignore:1.1
--- /dev/null   Thu Jul  1 13:14:44 2010
+++ rtems/testsuites/psxtests/psxpasswd02/.cvsignore    Thu Jul  1 12:26:33 2010
</font><font color='#997700'>@@ -0,0 +1,2 @@
</font><font color='#000088'>+Makefile
+Makefile.in
</font>
<font color='#006600'>diff -u /dev/null rtems/testsuites/psxtests/psxpasswd02/Makefile.am:1.1
--- /dev/null   Thu Jul  1 13:14:44 2010
+++ rtems/testsuites/psxtests/psxpasswd02/Makefile.am   Thu Jul  1 12:26:33 2010
</font><font color='#997700'>@@ -0,0 +1,27 @@
</font><font color='#000088'>+##
+## $Id$
+##
+
+MANAGERS = all
+
+rtems_tests_PROGRAMS = psxpasswd02
+psxpasswd02_SOURCES = init.c ../include/pmacros.h
+
+dist_rtems_tests_DATA = psxpasswd02.scn
+
+include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
+include $(top_srcdir)/../automake/compile.am
+include $(top_srcdir)/../automake/leaf.am
+
+
+AM_CPPFLAGS += -I$(top_srcdir)/include
+AM_CPPFLAGS += -I$(top_srcdir)/../support/include
+
+LINK_OBJS = $(psxpasswd02_OBJECTS) $(psxpasswd02_LDADD)
+LINK_LIBS = $(psxpasswd02_LDLIBS)
+
+psxpasswd02$(EXEEXT): $(psxpasswd02_OBJECTS) $(psxpasswd02_DEPENDENCIES)
+       @rm -f psxpasswd02$(EXEEXT)
+       $(make-exe)
+
+include $(top_srcdir)/../automake/local.am
</font>
<font color='#006600'>diff -u /dev/null rtems/testsuites/psxtests/psxpasswd02/init.c:1.1
--- /dev/null   Thu Jul  1 13:14:44 2010
+++ rtems/testsuites/psxtests/psxpasswd02/init.c        Thu Jul  1 12:26:35 2010
</font><font color='#997700'>@@ -0,0 +1,182 @@
</font><font color='#000088'>+/*
+ *  COPYRIGHT (c) 1989-2010.
+ *  On-Line Applications Research Corporation (OAR).
+ *
+ *  The license and distribution terms for this file may be
+ *  found in the file LICENSE in this distribution or at
+ *  http://www.rtems.com/license/LICENSE.
+ *
+ *  $Id$
+ */
+
+#include <bsp.h>
+#include <pmacros.h>
+#include <sys/types.h>
+#include <pwd.h>
+#include <grp.h>
+#include <unistd.h>
+#include <fcntl.h>
+#include <errno.h>
+
+void print_passwd(
+  struct passwd *pw
+)
+{
+  printf(<span style="background-color: #FF0000"> </span>
+    "  username: %s\n"
+    "  user password: %s\n"
+    "  user ID: %d\n"
+    "  group ID: %d\n"
+    "  real name: %s\n"
+    "  home directory: %s\n"
+    "  shell program: %s\n",
+    pw->pw_name,
+    pw->pw_passwd,
+    pw->pw_uid,
+    pw->pw_gid,
+    pw->pw_gecos,
+    pw->pw_dir,
+    pw->pw_shell
+  );
+}
+<span style="background-color: #FF0000">  </span>
+void print_group(
+  struct group *gr
+)
+{
+  printf(<span style="background-color: #FF0000"> </span>
+    "  group name: %s\n"
+    "  group  password: %s\n"
+    "  group  ID: %d\n",
+    gr->gr_name,
+    gr->gr_passwd,
+    gr->gr_gid
+  );
+
+  /* TBD print users in group */
+}
+<span style="background-color: #FF0000">  </span>
+rtems_task Init(
+  rtems_task_argument ignored
+)
+{
+  struct passwd *pw;
+  struct group  *gr;
+  int status = -1;
+
+  FILE *fp = NULL;
+
+  puts( "*** PASSWORD/GROUP TEST - 02 ***" );
+
+  puts( "Init - Creating /etc" );
+  status = mkdir( "/etc", 0777 );
+  rtems_test_assert( status == 0 );
+<span style="background-color: #FF0000">  </span>
+  puts( "Init - Creating /etc/passwd" );
+  status = mknod( "/etc/passwd", (S_IFREG | S_IRWXU), 0LL );
+  rtems_test_assert( status != -1 );
+
+  fp = fopen( "/etc/passwd", "w" );
+  rtems_test_assert( fp != NULL );
+  fprintf( fp, "bharath:x:-1:-a:Dummy::/:/bin/bash\n" );
+  fclose( fp );
+
+  puts( "Init - Creating /etc/group" );
+  status = mknod( "/etc/group", (S_IFREG | S_IRWXU), 0LL );
+  rtems_test_assert( status != -1);
+
+  fp = fopen( "/etc/group", "w" );
+  rtems_test_assert( fp != NULL );
+  fprintf( fp, "admin::1:root,su,super-user\n" );
+  fclose( fp );
+
+  puts( "Init - setpwent() -- OK" );
+  setpwent();
+
+  puts( "Init - setpwent() -- OK" );
+  setpwent();
+
+  puts( "Init - setgrent() -- OK" );
+  setgrent();
+
+  puts( "Init - setgrent() -- OK" );
+  setgrent();<span style="background-color: #FF0000">  </span>
+<span style="background-color: #FF0000"> </span>
+  puts( "Init - getpwnam(\"root\") -- expected EINVAL" );
+  pw = getpwnam( "root" );
+  rtems_test_assert( !pw );
+  rtems_test_assert( errno == EINVAL );
+
+  fp = fopen( "/etc/passwd", "w" );
+  rtems_test_assert( fp != NULL );
+  fprintf( fp, "rtems:x:1:1:dummy::/:/bin/bash:" );
+  fclose( fp );
+
+  puts( "Init - getpwnam(\"root\") -- expected EINVAL" );
+  pw = getpwnam( "root" );
+  rtems_test_assert( !pw );<span style="background-color: #FF0000"> </span>
+  rtems_test_assert( errno == EINVAL );
+
+  fp = fopen( "/etc/passwd", "w" );
+  rtems_test_assert( fp != NULL );
+  fprintf( fp, "user\n:x:2:2:dummy::/:/bin/sh\n" );
+  fclose( fp );
+
+  puts( "Init - getpwnam(\"root\") -- expected EINVAL" );
+  pw = getpwnam( "root" );
+  rtems_test_assert( !pw );<span style="background-color: #FF0000"> </span>
+  rtems_test_assert( errno == EINVAL );
+
+  puts( "Init - getgrent() -- OK" );
+  gr = getgrent();
+  rtems_test_assert( gr != NULL );
+  print_group( gr );
+
+  puts( "Init - endpwent() -- OK" );
+  endpwent();
+
+  puts( "Init - endpwent() -- OK" );
+  endpwent();
+
+  puts( "Init - endgrent() -- OK" );
+  endgrent();
+
+  puts( "Init - endgrent() -- OK" );
+  endgrent();
+
+  puts( "Removing /etc/passwd" );
+  status = unlink( "/etc/passwd" );
+  rtems_test_assert( status == 0 );
+
+  puts( "Removing /etc/group" );
+  status = unlink( "/etc/group" );
+  rtems_test_assert( status == 0 );
+
+  puts( "Init - getpwnam(\"root\") -- expected EINVAL" );
+  pw = getpwnam( "root" );
+  rtems_test_assert( !pw );
+  rtems_test_assert( errno == EINVAL );
+
+  puts( "Init - getgrnam(\"root\") -- expected EINVAL" );
+  gr = getgrnam( "root" );
+  rtems_test_assert( !gr );
+  rtems_test_assert( errno == EINVAL );
+<span style="background-color: #FF0000">  </span>
+  puts( "*** END OF PASSWORD/GROUP TEST - 02 ***" );
+  rtems_test_exit( 0 );
+}
+
+/* configuration information */
+
+#define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
+#define CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
+
+#define CONFIGURE_USE_IMFS_AS_BASE_FILESYSTEM
+#define CONFIGURE_LIBIO_MAXIMUM_FILE_DESCRIPTORS 6
+
+#define CONFIGURE_MAXIMUM_TASKS 1
+#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
+
+#define CONFIGURE_INIT
+#include <rtems/confdefs.h>
+/* end of file */
</font>
<font color='#006600'>diff -u /dev/null rtems/testsuites/psxtests/psxpasswd02/psxpasswd02.doc:1.1
--- /dev/null   Thu Jul  1 13:14:45 2010
+++ rtems/testsuites/psxtests/psxpasswd02/psxpasswd02.doc       Thu Jul  1 12:26:36 2010
</font><font color='#997700'>@@ -0,0 +1,26 @@
</font><font color='#000088'>+#
+#  $Id$
+#
+#  COPYRIGHT (c) 1989-2010.
+#  On-Line Applications Research Corporation (OAR).
+#
+#  The license and distribution terms for this file may be
+#  found in the file LICENSE in this distribution or at
+#  http://www.rtems.com/license/LICENSE.
+#
+
+This file describes the directives and concepts tested by this test set.
+
+test set name:  POSIX PASSWD/GROUP TEST
+
+directives:
+
++ setpwent
++ setgrent
++ getpwnam
++ endpwent
++ endgrent
+
+concepts:
+
++ Exercise error paths in /etc/passwd and /etc/group.
</font>
<font color='#006600'>diff -u /dev/null rtems/testsuites/psxtests/psxpasswd02/psxpasswd02.scn:1.1
--- /dev/null   Thu Jul  1 13:14:45 2010
+++ rtems/testsuites/psxtests/psxpasswd02/psxpasswd02.scn       Thu Jul  1 12:26:37 2010
</font><font color='#997700'>@@ -0,0 +1,24 @@
</font><font color='#000088'>+*** PASSWORD/GROUP TEST - 02 ***
+Init - Creating /etc
+Init - Creating /etc/passwd
+Init - Creating /etc/group
+Init - setpwent() -- OK
+Init - setpwent() -- OK
+Init - setgrent() -- OK
+Init - setgrent() -- OK
+Init - getpwnam("root") -- expected EINVAL
+Init - getpwnam("root") -- expected EINVAL
+Init - getpwnam("root") -- expected EINVAL
+Init - getgrent() -- OK
+  group name: admin
+  group  password:<span style="background-color: #FF0000"> </span>
+  group  ID: 1
+Init - endpwent() -- OK
+Init - endpwent() -- OK
+Init - endgrent() -- OK
+Init - endgrent() -- OK
+Removing /etc/passwd
+Removing /etc/group
+Init - getpwnam("root") -- expected EINVAL
+Init - getgrnam("root") -- expected EINVAL
+*** END OF PASSWORD/GROUP TEST - 02 ***
</font></pre>
<p> </p>
<a name='cs4'></a>
<table border='0' cellspacing='0' cellpadding='5' width='100%' bgcolor='#eeeeee'>
<tr><td colspan='3' bgcolor='#dddddd'>
 <font color='#bb2222'><strong>joel</strong></font>
</td></tr>
<tr><td colspan='3' bgcolor='#dddddd'><pre>2010-07-01 Joel Sherrill <joel.sherrill@oarcorp.com>

        * libcsupport/src/_rename_r.c, libcsupport/src/getdents.c,
        libcsupport/src/unlink.c, libcsupport/src/utime.c,
        libcsupport/src/writev.c: Remove remaining checks for missing
        handlers.
</pre></td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/cpukit/ChangeLog.diff?r1=text&tr1=1.2484&r2=text&tr2=1.2485&diff_format=h">M</a></td><td width='1%'>1.2485</td><td width='100%'>cpukit/ChangeLog</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/cpukit/libcsupport/src/_rename_r.c.diff?r1=text&tr1=1.6&r2=text&tr2=1.7&diff_format=h">M</a></td><td width='1%'>1.7</td><td width='100%'>cpukit/libcsupport/src/_rename_r.c</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/cpukit/libcsupport/src/getdents.c.diff?r1=text&tr1=1.9&r2=text&tr2=1.10&diff_format=h">M</a></td><td width='1%'>1.10</td><td width='100%'>cpukit/libcsupport/src/getdents.c</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/cpukit/libcsupport/src/unlink.c.diff?r1=text&tr1=1.20&r2=text&tr2=1.21&diff_format=h">M</a></td><td width='1%'>1.21</td><td width='100%'>cpukit/libcsupport/src/unlink.c</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/cpukit/libcsupport/src/utime.c.diff?r1=text&tr1=1.14&r2=text&tr2=1.15&diff_format=h">M</a></td><td width='1%'>1.15</td><td width='100%'>cpukit/libcsupport/src/utime.c</td></tr>
<tr><td width='1%'><a href="http://www.rtems.com/cgi-bin/viewcvs.cgi//rtems/cpukit/libcsupport/src/writev.c.diff?r1=text&tr1=1.3&r2=text&tr2=1.4&diff_format=h">M</a></td><td width='1%'>1.4</td><td width='100%'>cpukit/libcsupport/src/writev.c</td></tr>
</table>
<pre>
<font color='#006600'>diff -u rtems/cpukit/ChangeLog:1.2484 rtems/cpukit/ChangeLog:1.2485
--- rtems/cpukit/ChangeLog:1.2484       Thu Jul  1 12:22:00 2010
+++ rtems/cpukit/ChangeLog      Thu Jul  1 12:47:44 2010
</font><font color='#997700'>@@ -1,3 +1,10 @@
</font><font color='#000088'>+2010-07-01    Joel Sherrill <joel.sherrill@oarcorp.com>
+
+       * libcsupport/src/_rename_r.c, libcsupport/src/getdents.c,
+       libcsupport/src/unlink.c, libcsupport/src/utime.c,
+       libcsupport/src/writev.c: Remove remaining checks for missing
+       handlers.
+
</font> 2010-07-01        Vinu Rajashekhar <vinutheraj@gmail.com>
 
        PR 1597/cpukit

<font color='#006600'>diff -u rtems/cpukit/libcsupport/src/_rename_r.c:1.6 rtems/cpukit/libcsupport/src/_rename_r.c:1.7
--- rtems/cpukit/libcsupport/src/_rename_r.c:1.6        Wed May 19 22:10:41 2010
+++ rtems/cpukit/libcsupport/src/_rename_r.c    Thu Jul  1 12:47:45 2010
</font><font color='#997700'>@@ -79,13 +79,6 @@
</font> 
   rtems_filesystem_get_start_loc( new, &i, &new_parent_loc );
 
<font color='#880000'>-  if ( !new_parent_loc.ops->evalformake_h ) {
-    if ( free_old_parentloc )
-      rtems_filesystem_freenode( &old_parent_loc );
-    rtems_filesystem_freenode( &old_loc );
-    rtems_set_errno_and_return_minus_one( ENOTSUP );
-  }
-
</font>   result = (*new_parent_loc.ops->evalformake_h)( &new[i], &new_parent_loc, &name );
   if ( result != 0 ) {
     rtems_filesystem_freenode( &new_parent_loc );
<font color='#997700'>@@ -108,14 +101,6 @@
</font>     rtems_set_errno_and_return_minus_one( EXDEV );
   }
 
<font color='#880000'>-  if ( !new_parent_loc.ops->rename_h ) {
-    rtems_filesystem_freenode( &new_parent_loc );
-    if ( free_old_parentloc )
-      rtems_filesystem_freenode( &old_parent_loc );
-    rtems_filesystem_freenode( &old_loc );
-    rtems_set_errno_and_return_minus_one( ENOTSUP );
-  }
-
</font>   result = (*new_parent_loc.ops->rename_h)( &old_parent_loc, &old_loc, &new_parent_loc, name );
 
   rtems_filesystem_freenode( &new_parent_loc );
<font color='#997700'>@@ -125,18 +110,4 @@
</font> 
   return result;
 }
<font color='#880000'>-
-#if 0
-  struct stat sb;
-  int s;
-
-  s = stat( old, &sb);
-  if ( s < 0 )
-    return s;
-  s = link( old, new );
-  if ( s < 0 )
-    return s;
-  return S_ISDIR(sb.st_mode) ? rmdir( old ) : unlink( old );
-#endif
-<span style="background-color: #FF0000">                                            </span>
</font> #endif

<font color='#006600'>diff -u rtems/cpukit/libcsupport/src/getdents.c:1.9 rtems/cpukit/libcsupport/src/getdents.c:1.10
--- rtems/cpukit/libcsupport/src/getdents.c:1.9 Sun Apr 18 01:05:34 2004
+++ rtems/cpukit/libcsupport/src/getdents.c     Thu Jul  1 12:47:46 2010
</font><font color='#997700'>@@ -38,16 +38,12 @@
</font>   /*
    *  Get the file control block structure associated with the file descriptor
    */
<font color='#880000'>-
</font>   iop = rtems_libio_iop( dd_fd );
 
   /*
    *  Make sure we are working on a directory
    */
   loc = iop->pathinfo;
<font color='#880000'>-  if ( !loc.ops->node_type_h )
-    rtems_set_errno_and_return_minus_one( ENOTSUP );
-
</font>   if ( (*loc.ops->node_type_h)( &loc ) != RTEMS_FILESYSTEM_DIRECTORY )
     rtems_set_errno_and_return_minus_one( ENOTDIR );
 
<font color='#997700'>@@ -55,9 +51,5 @@
</font>    *  Return the number of bytes that were actually transfered as a result
    *  of the read attempt.
    */
<font color='#880000'>-
-  if ( !iop->handlers->read_h )
-    rtems_set_errno_and_return_minus_one( ENOTSUP );
-
</font>   return (*iop->handlers->read_h)( iop, dd_buf, dd_len  );
 }

<font color='#006600'>diff -u rtems/cpukit/libcsupport/src/unlink.c:1.20 rtems/cpukit/libcsupport/src/unlink.c:1.21
--- rtems/cpukit/libcsupport/src/unlink.c:1.20  Thu Jul  1 10:12:38 2010
+++ rtems/cpukit/libcsupport/src/unlink.c       Thu Jul  1 12:47:46 2010
</font><font color='#997700'>@@ -74,13 +74,6 @@
</font>     rtems_set_errno_and_return_minus_one( EISDIR );
   }
 
<font color='#880000'>-  if ( !loc.ops->unlink_h ) {
-    rtems_filesystem_freenode( &loc );
-    if ( free_parentloc )
-      rtems_filesystem_freenode( &parentloc );
-    rtems_set_errno_and_return_minus_one( ENOTSUP );
-  }
-
</font>   result = (*loc.ops->unlink_h)( &parentloc, &loc );
 
   rtems_filesystem_freenode( &loc );

<font color='#006600'>diff -u rtems/cpukit/libcsupport/src/utime.c:1.14 rtems/cpukit/libcsupport/src/utime.c:1.15
--- rtems/cpukit/libcsupport/src/utime.c:1.14   Thu Jul  1 11:29:17 2010
+++ rtems/cpukit/libcsupport/src/utime.c        Thu Jul  1 12:47:47 2010
</font><font color='#997700'>@@ -34,11 +34,6 @@
</font>   if ( rtems_filesystem_evaluate_path( path, strlen( path ), 0x00, &temp_loc, true ) )
     return -1;
 
<font color='#880000'>-  if ( !temp_loc.ops->utime_h ){
-    rtems_filesystem_freenode( &temp_loc );
-    rtems_set_errno_and_return_minus_one( ENOTSUP );
-  }
-
</font>   if ( times == NULL ) {
     now.actime = now.modtime = time( NULL );
     times = &now;

<font color='#006600'>diff -u rtems/cpukit/libcsupport/src/writev.c:1.3 rtems/cpukit/libcsupport/src/writev.c:1.4
--- rtems/cpukit/libcsupport/src/writev.c:1.3   Sun Nov 29 07:35:32 2009
+++ rtems/cpukit/libcsupport/src/writev.c       Thu Jul  1 12:47:48 2010
</font><font color='#997700'>@@ -55,9 +55,6 @@
</font>   if ( iovcnt > IOV_MAX )
     rtems_set_errno_and_return_minus_one( EINVAL );
 
<font color='#880000'>-  if ( !iop->handlers->write_h )
-    rtems_set_errno_and_return_minus_one( ENOTSUP );
-
</font>   /*
    *  OpenGroup says that you are supposed to return EINVAL if the
    *  sum of the iov_len values in the iov array would overflow a
</pre>
<p> </p>

<p>--<br />
<small>Generated by <a href="http://www.codewiz.org/projects/index.html#loginfo">Deluxe Loginfo</a> 2.122 by Bernardo Innocenti <bernie@develer.com></small></p>
</body>
</html>