<!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>