summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>2011-08-01 21:54:19 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>2011-08-01 21:54:19 +0000
commita7c39d3d3fb4a529b29d432b81769617093965d8 (patch)
treed63d59fe676604f9095b3b742a1759c28d220f68
parent2011-08-01 Xiang Cui <medivhc@gmail.com> (diff)
downloadrtems-a7c39d3d3fb4a529b29d432b81769617093965d8.tar.bz2
2011-08-01 Xiang Cui <medivhc@gmail.com>
* imfs_fslink/Makefile.am, imfs_fssymlink/Makefile.am, mimfs_fslink/Makefile.am, mimfs_fssymlink/Makefile.am, mrfs_fslink/Makefile.am, mrfs_fssymlink/Makefile.am, mrfs_support/fs_config.h: Correcting from previous commit of incorrect tarball. * fserror/fserror.doc, fserror/test.c, fspatheval/patheval.doc, fspatheval/test.c, fspermission/fspermission.doc, fspermission/test.c, fsrdwr/fsrdwr.doc, fsrdwr/init.c, fstime/fstime.doc, fstime/test.c, imfs_fserror/.cvsignore, imfs_fserror/Makefile.am, imfs_fslink/.cvsignore, imfs_fspatheval/.cvsignore, imfs_fspatheval/Makefile.am, imfs_fspermission/.cvsignore, imfs_fspermission/Makefile.am, imfs_fsrdwr/.cvsignore, imfs_fsrdwr/Makefile.am, imfs_fssymlink/.cvsignore, imfs_fstime/.cvsignore, imfs_fstime/Makefile.am, imfs_support/fs_supprot.h, mdosfs_fserror/.cvsignore, mdosfs_fserror/Makefile.am, mdosfs_fspatheval/.cvsignore, mdosfs_fspatheval/Makefile.am, mdosfs_fsrdwr/.cvsignore, mdosfs_fsrdwr/Makefile.am, mdosfs_fstime/.cvsignore, mdosfs_fstime/Makefile.am, mimfs_fserror/.cvsignore, mimfs_fserror/Makefile.am, mimfs_fslink/.cvsignore, mimfs_fspatheval/.cvsignore, mimfs_fspatheval/Makefile.am, mimfs_fspermission/.cvsignore, mimfs_fspermission/Makefile.am, mimfs_fsrdwr/.cvsignore, mimfs_fsrdwr/Makefile.am, mimfs_fssymlink/.cvsignore, mimfs_fstime/.cvsignore, mimfs_fstime/Makefile.am, mrfs_fserror/.cvsignore, mrfs_fserror/Makefile.am, mrfs_fslink/.cvsignore, mrfs_fspatheval/.cvsignore, mrfs_fspatheval/Makefile.am, mrfs_fspermission/.cvsignore, mrfs_fspermission/Makefile.am, mrfs_fsrdwr/.cvsignore, mrfs_fsrdwr/Makefile.am, mrfs_fssymlink/.cvsignore, mrfs_fstime/.cvsignore, mrfs_fstime/Makefile.am: New files.
-rw-r--r--testsuites/fstests/ChangeLog34
-rw-r--r--testsuites/fstests/fserror/fserror.doc27
-rw-r--r--testsuites/fstests/fserror/test.c372
-rw-r--r--testsuites/fstests/fspatheval/patheval.doc26
-rw-r--r--testsuites/fstests/fspatheval/test.c187
-rw-r--r--testsuites/fstests/fspermission/fspermission.doc28
-rw-r--r--testsuites/fstests/fspermission/test.c478
-rw-r--r--testsuites/fstests/fsrdwr/fsrdwr.doc25
-rw-r--r--testsuites/fstests/fsrdwr/init.c519
-rw-r--r--testsuites/fstests/fstime/fstime.doc28
-rw-r--r--testsuites/fstests/fstime/test.c264
-rw-r--r--testsuites/fstests/imfs_fserror/.cvsignore2
-rw-r--r--testsuites/fstests/imfs_fserror/Makefile.am37
-rw-r--r--testsuites/fstests/imfs_fslink/.cvsignore2
-rw-r--r--testsuites/fstests/imfs_fslink/Makefile.am11
-rw-r--r--testsuites/fstests/imfs_fspatheval/.cvsignore2
-rw-r--r--testsuites/fstests/imfs_fspatheval/Makefile.am37
-rw-r--r--testsuites/fstests/imfs_fspermission/.cvsignore2
-rw-r--r--testsuites/fstests/imfs_fspermission/Makefile.am37
-rw-r--r--testsuites/fstests/imfs_fsrdwr/.cvsignore2
-rw-r--r--testsuites/fstests/imfs_fsrdwr/Makefile.am37
-rw-r--r--testsuites/fstests/imfs_fssymlink/.cvsignore2
-rw-r--r--testsuites/fstests/imfs_fssymlink/Makefile.am11
-rw-r--r--testsuites/fstests/imfs_fstime/.cvsignore2
-rw-r--r--testsuites/fstests/imfs_fstime/Makefile.am37
-rw-r--r--testsuites/fstests/imfs_support/fs_supprot.h40
-rw-r--r--testsuites/fstests/mdosfs_fserror/.cvsignore2
-rw-r--r--testsuites/fstests/mdosfs_fserror/Makefile.am39
-rw-r--r--testsuites/fstests/mdosfs_fspatheval/.cvsignore2
-rw-r--r--testsuites/fstests/mdosfs_fspatheval/Makefile.am39
-rw-r--r--testsuites/fstests/mdosfs_fsrdwr/.cvsignore2
-rw-r--r--testsuites/fstests/mdosfs_fsrdwr/Makefile.am39
-rw-r--r--testsuites/fstests/mdosfs_fstime/.cvsignore2
-rw-r--r--testsuites/fstests/mdosfs_fstime/Makefile.am39
-rw-r--r--testsuites/fstests/mimfs_fserror/.cvsignore2
-rw-r--r--testsuites/fstests/mimfs_fserror/Makefile.am37
-rw-r--r--testsuites/fstests/mimfs_fslink/.cvsignore2
-rw-r--r--testsuites/fstests/mimfs_fslink/Makefile.am12
-rw-r--r--testsuites/fstests/mimfs_fspatheval/.cvsignore2
-rw-r--r--testsuites/fstests/mimfs_fspatheval/Makefile.am37
-rw-r--r--testsuites/fstests/mimfs_fspermission/.cvsignore2
-rw-r--r--testsuites/fstests/mimfs_fspermission/Makefile.am37
-rw-r--r--testsuites/fstests/mimfs_fsrdwr/.cvsignore2
-rw-r--r--testsuites/fstests/mimfs_fsrdwr/Makefile.am37
-rw-r--r--testsuites/fstests/mimfs_fssymlink/.cvsignore2
-rw-r--r--testsuites/fstests/mimfs_fssymlink/Makefile.am11
-rw-r--r--testsuites/fstests/mimfs_fstime/.cvsignore2
-rw-r--r--testsuites/fstests/mimfs_fstime/Makefile.am37
-rw-r--r--testsuites/fstests/mrfs_fserror/.cvsignore2
-rw-r--r--testsuites/fstests/mrfs_fserror/Makefile.am39
-rw-r--r--testsuites/fstests/mrfs_fslink/.cvsignore2
-rw-r--r--testsuites/fstests/mrfs_fslink/Makefile.am14
-rw-r--r--testsuites/fstests/mrfs_fspatheval/.cvsignore2
-rw-r--r--testsuites/fstests/mrfs_fspatheval/Makefile.am39
-rw-r--r--testsuites/fstests/mrfs_fspermission/.cvsignore2
-rw-r--r--testsuites/fstests/mrfs_fspermission/Makefile.am39
-rw-r--r--testsuites/fstests/mrfs_fsrdwr/.cvsignore2
-rw-r--r--testsuites/fstests/mrfs_fsrdwr/Makefile.am39
-rw-r--r--testsuites/fstests/mrfs_fssymlink/.cvsignore2
-rw-r--r--testsuites/fstests/mrfs_fssymlink/Makefile.am14
-rw-r--r--testsuites/fstests/mrfs_fstime/.cvsignore2
-rw-r--r--testsuites/fstests/mrfs_fstime/Makefile.am39
62 files changed, 2845 insertions, 27 deletions
diff --git a/testsuites/fstests/ChangeLog b/testsuites/fstests/ChangeLog
index d17d8234a1..622e6bb1c8 100644
--- a/testsuites/fstests/ChangeLog
+++ b/testsuites/fstests/ChangeLog
@@ -1,5 +1,39 @@
2011-08-01 Xiang Cui <medivhc@gmail.com>
+ * imfs_fslink/Makefile.am, imfs_fssymlink/Makefile.am,
+ mimfs_fslink/Makefile.am, mimfs_fssymlink/Makefile.am,
+ mrfs_fslink/Makefile.am, mrfs_fssymlink/Makefile.am,
+ mrfs_support/fs_config.h: Correcting from previous commit of
+ incorrect tarball.
+ * fserror/fserror.doc, fserror/test.c, fspatheval/patheval.doc,
+ fspatheval/test.c, fspermission/fspermission.doc,
+ fspermission/test.c, fsrdwr/fsrdwr.doc, fsrdwr/init.c,
+ fstime/fstime.doc, fstime/test.c, imfs_fserror/.cvsignore,
+ imfs_fserror/Makefile.am, imfs_fslink/.cvsignore,
+ imfs_fspatheval/.cvsignore, imfs_fspatheval/Makefile.am,
+ imfs_fspermission/.cvsignore, imfs_fspermission/Makefile.am,
+ imfs_fsrdwr/.cvsignore, imfs_fsrdwr/Makefile.am,
+ imfs_fssymlink/.cvsignore, imfs_fstime/.cvsignore,
+ imfs_fstime/Makefile.am, imfs_support/fs_supprot.h,
+ mdosfs_fserror/.cvsignore, mdosfs_fserror/Makefile.am,
+ mdosfs_fspatheval/.cvsignore, mdosfs_fspatheval/Makefile.am,
+ mdosfs_fsrdwr/.cvsignore, mdosfs_fsrdwr/Makefile.am,
+ mdosfs_fstime/.cvsignore, mdosfs_fstime/Makefile.am,
+ mimfs_fserror/.cvsignore, mimfs_fserror/Makefile.am,
+ mimfs_fslink/.cvsignore, mimfs_fspatheval/.cvsignore,
+ mimfs_fspatheval/Makefile.am, mimfs_fspermission/.cvsignore,
+ mimfs_fspermission/Makefile.am, mimfs_fsrdwr/.cvsignore,
+ mimfs_fsrdwr/Makefile.am, mimfs_fssymlink/.cvsignore,
+ mimfs_fstime/.cvsignore, mimfs_fstime/Makefile.am,
+ mrfs_fserror/.cvsignore, mrfs_fserror/Makefile.am,
+ mrfs_fslink/.cvsignore, mrfs_fspatheval/.cvsignore,
+ mrfs_fspatheval/Makefile.am, mrfs_fspermission/.cvsignore,
+ mrfs_fspermission/Makefile.am, mrfs_fsrdwr/.cvsignore,
+ mrfs_fsrdwr/Makefile.am, mrfs_fssymlink/.cvsignore,
+ mrfs_fstime/.cvsignore, mrfs_fstime/Makefile.am: New files.
+
+2011-08-01 Xiang Cui <medivhc@gmail.com>
+
* Makefile.am, configure.ac, fslink/fslink.doc, fslink/test.c,
fssymlink/test.c, imfs_fslink/Makefile.am,
imfs_fssymlink/Makefile.am, imfs_support/fs_config.h,
diff --git a/testsuites/fstests/fserror/fserror.doc b/testsuites/fstests/fserror/fserror.doc
new file mode 100644
index 0000000000..bd15afdaa8
--- /dev/null
+++ b/testsuites/fstests/fserror/fserror.doc
@@ -0,0 +1,27 @@
+#
+# $Id$
+#
+# COPYRIGHT (c) 1989-2009.
+# 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: fserror
+
+directives:
++ open
++ write
++ read
++ mkdir
++ unlink
++ rmdir
+
+concepts:
+
++ Exercise the tests to make them fail and check the errno
+
diff --git a/testsuites/fstests/fserror/test.c b/testsuites/fstests/fserror/test.c
new file mode 100644
index 0000000000..d30eb5c6d9
--- /dev/null
+++ b/testsuites/fstests/fserror/test.c
@@ -0,0 +1,372 @@
+/*
+ * COPYRIGHT (c) 1989-2011.
+ * 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 Exp $
+ */
+
+#include <sys/stat.h>
+#include <limits.h>
+#include <fcntl.h>
+#include <errno.h>
+#include <stdio.h>
+#include <stdint.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+
+#include "fstest.h"
+
+void open_mkdir_error (void)
+{
+ int fd;
+ int status;
+ char *name01 = "name01";
+ char *name02 = "name02";
+ char *name03 = "name03";
+
+ char name[20];
+
+ mode_t mode = S_IRWXU | S_IRWXG | S_IRWXO;
+
+ const char *wd = __func__;
+
+ /*
+ * Create a new directory and change the current directory to this
+ */
+ status = mkdir (wd, mode);
+ rtems_test_assert (status == 0);
+ status = chdir (wd);
+ rtems_test_assert (status == 0);
+
+
+ /*
+ * Create a file and a directory for test.
+ */
+ fd = creat (name01, mode);
+ status = close (fd);
+ rtems_test_assert (status == 0);
+ status = mkdir (name02, mode);
+ rtems_test_assert (status == 0);
+
+ /*
+ * O_CREAT and O_EXCL are set, and the named file exists.
+ */
+ EXPECT_ERROR (EEXIST, open, name01, O_CREAT | O_EXCL);
+
+ EXPECT_ERROR (EEXIST, mkdir, name01, mode);
+ /*
+ * The named file is a directory
+ * and oflag includes O_WRONLY or O_RDWR.
+ */
+ EXPECT_ERROR (EISDIR, open, name02, O_WRONLY);
+ EXPECT_ERROR (EISDIR, open, name02, O_RDWR);
+
+ /*
+ * O_CREAT is not set and the named file does not exist
+ * or O_CREAT is set and either the path prefix does not exist or
+ * the path argument points to an empty string.
+ */
+
+ sprintf (name, "%s/%s", name03, name02);
+ EXPECT_ERROR (ENOENT, open, name, O_WRONLY);
+ EXPECT_ERROR (ENOENT, open, "", O_WRONLY);
+ EXPECT_ERROR (ENOENT, open, name03, O_WRONLY);
+
+ EXPECT_ERROR (ENOENT, mkdir, name, mode);
+ EXPECT_ERROR (ENOENT, mkdir, "", mode);
+
+ /*
+ * A component of the path prefix is not a directory.
+ */
+
+ sprintf (name, "%s/%s", name01, name02);
+ EXPECT_ERROR (ENOTDIR, open, name, O_WRONLY);
+
+ EXPECT_ERROR (ENOTDIR, mkdir, name, mode);
+ /*
+ * The fildes argument is not a valid file descriptor.
+ */
+ EXPECT_ERROR (EBADF, close, -1);
+ EXPECT_ERROR (EBADF, close, 100);
+
+ /*
+ * Go back to parent directory
+ */
+ status = chdir ("..");
+ rtems_test_assert (status == 0);
+
+}
+
+void rename_error (void)
+{
+
+ int fd;
+ int status;
+ char *name01 = "name01";
+ char *name02 = "name02";
+ char *name03 = "name03";
+ char *nonexistence = "name04";
+
+ char name[20];
+
+ mode_t mode = S_IRWXU | S_IRWXG | S_IRWXO;
+ const char *wd = __func__;
+
+ /*
+ *Create a new directory and change the current directory to this
+ */
+
+ status = mkdir (wd, mode);
+ rtems_test_assert (status == 0);
+ status = chdir (wd);
+ rtems_test_assert (status == 0);
+
+
+ /*
+ * Create a new directory and a new directory in it
+ */
+
+ status = mkdir (name01, mode);
+ rtems_test_assert (status == 0);
+ status = mkdir (name02, mode);
+ rtems_test_assert (status == 0);
+ sprintf (name, "%s/%s", name01, name03);
+ status = mkdir (name, mode);
+ rtems_test_assert (status == 0);
+
+ /*
+ * The link named by new is a directory that is
+ * not an empty directory.
+ */
+ status = rename (name02, name01);
+ rtems_test_assert (status != 0);
+ rtems_test_assert (errno == EEXIST || errno == ENOTEMPTY);
+ /*
+ * The new directory pathname contains a path prefix
+ * that names the old directory.
+ */
+ EXPECT_ERROR (EINVAL, rename, name01, name);
+ /*
+ * The new argument points to a directory and
+ * the old argument points to a file that is not a directory.
+ */
+ fd = creat (name03, mode);
+ status = close (fd);
+ rtems_test_assert (status == 0);
+ EXPECT_ERROR (EISDIR, rename, name03, name02);
+
+ /*
+ * The link named by old does not name an existing file,
+ * or either old or new points to an empty string.
+ */
+
+ EXPECT_ERROR (ENOENT, rename, nonexistence, name01);
+ EXPECT_ERROR (ENOENT, rename, "", name01);
+ EXPECT_ERROR (ENOENT, rename, name01, "");
+
+ /*
+ * A component of either path prefix is not a directory;
+ * or the old argument names a directory and new argument names
+ * a non-directory file.
+ */
+
+ sprintf (name, "%s/%s", name03, name01);
+ EXPECT_ERROR (ENOTDIR, rename, name, name03);
+ EXPECT_ERROR (ENOTDIR, rename, name03, name);
+ EXPECT_ERROR (ENOTDIR, rename, name02, name03);
+
+ /*
+ * Go back to parent directory
+ */
+ status = chdir ("..");
+ rtems_test_assert (status == 0);
+}
+
+void truncate_error (void)
+{
+
+ int fd;
+ int status;
+ char *file = "name";
+
+ mode_t mode = S_IRWXU | S_IRWXG | S_IRWXO;
+
+ const char *wd = __func__;
+
+ /*
+ *Create a new directory and change the current directory to this
+ */
+ status = mkdir (wd, mode);
+ rtems_test_assert (status == 0);
+ status = chdir (wd);
+ rtems_test_assert (status == 0);
+ /*
+ * Create a file
+ */
+ fd = creat (file, mode);
+ status = close (fd);
+ rtems_test_assert (status == 0);
+
+
+ /*
+ * The length argument was less than 0.
+ */
+ EXPECT_ERROR (EINVAL, truncate, file, -1);
+
+ /*
+ * Go back to parent directory
+ */
+ status = chdir ("..");
+ rtems_test_assert (status == 0);
+}
+
+
+void rmdir_unlink_error (void)
+{
+ int status;
+ int fd;
+ mode_t mode = S_IRWXU | S_IRWXG | S_IRWXO;
+ char *nonexistence = "name04";
+
+ const char *wd = __func__;
+
+ /*
+ * Create a new directory and change the current directory to this
+ */
+ status = mkdir (wd, mode);
+ rtems_test_assert (status == 0);
+ status = chdir (wd);
+ rtems_test_assert (status == 0);
+
+ /*
+ * Create a new directory and a file in it for test
+ */
+ status = mkdir ("tmp", mode);
+ rtems_test_assert (status == 0);
+ fd = creat ("tmp/file", mode);
+ status = close (fd);
+ rtems_test_assert (status == 0);
+
+
+
+ /*
+ * The path argument names a directory that is not an empty directory,
+ * or there are hard links to the directory other than dot or a single entry in dot-dot.
+ */
+
+ EXPECT_ERROR (ENOTEMPTY, rmdir, "..");
+ EXPECT_ERROR (ENOTEMPTY, rmdir, "tmp");
+
+
+ /*
+ * The path argument contains a last component that is dot.
+ */
+
+
+ EXPECT_ERROR (EINVAL, rmdir, ".");
+ EXPECT_ERROR (EINVAL, rmdir, "tmp/.");
+
+ /*
+ * A component of path does not name an existing file,
+ * or the path argument names a nonexistent directory or points to an empty string
+ */
+ EXPECT_ERROR (ENOENT, rmdir, "");
+ EXPECT_ERROR (ENOENT, rmdir, nonexistence);
+
+ EXPECT_ERROR (ENOENT, unlink, "");
+ EXPECT_ERROR (ENOENT, unlink, nonexistence);
+
+ /*
+ * component of path is not a directory.
+ */
+
+ EXPECT_ERROR (ENOTDIR, rmdir, "tmp/file");
+
+ EXPECT_ERROR (ENOTDIR, unlink, "tmp/file/dir");
+ /*
+ * Go back to parent directory
+ */
+ status = chdir ("..");
+ rtems_test_assert (status == 0);
+
+
+}
+
+void rdwr_error (void)
+{
+
+ int status;
+ int fd;
+ char *file01 = "name01";
+ char *databuf = "test";
+ char *readbuf[10];
+
+
+ mode_t mode = S_IRWXU | S_IRWXG | S_IRWXO;
+ const char *wd = __func__;
+
+ /*
+ * Create a new directory and change the current directory to this
+ */
+ status = mkdir (wd, mode);
+ rtems_test_assert (status == 0);
+ status = chdir (wd);
+ rtems_test_assert (status == 0);
+
+ fd = open (file01, O_WRONLY | O_CREAT, mode);
+
+ /*
+ * The fildes argument is not a valid file descriptor open for reading.
+ */
+
+ EXPECT_ERROR (EBADF, read, fd, readbuf, 10);
+ EXPECT_ERROR (EBADF, read, 100, readbuf, 10);
+
+ status = close (fd);
+ rtems_test_assert (status == 0);
+ /*
+ * The fildes argument is not a valid file descriptor open for writing.
+ */
+ fd = open (file01, O_RDONLY, mode);
+
+ EXPECT_ERROR (EBADF, write, fd, databuf, 10);
+ EXPECT_ERROR (EBADF, write, 100, readbuf, 10);
+
+ /*
+ * The whence argument is not a proper value,
+ * or the resulting file offset would be negative for a regular file,
+ * block special file, or directory.
+ */
+
+ EXPECT_ERROR (EINVAL, lseek, fd, -100, SEEK_END);
+ EXPECT_ERROR (EINVAL, lseek, fd, -100, SEEK_CUR);
+ EXPECT_ERROR (EINVAL, lseek, fd, -100, SEEK_SET);
+
+ status = close (fd);
+ rtems_test_assert (status == 0);
+
+ EXPECT_ERROR (EBADF, lseek, fd, -100, SEEK_SET);
+ /*
+ * Go back to parent directory
+ */
+ status = chdir ("..");
+ rtems_test_assert (status == 0);
+
+}
+
+void test (void)
+{
+
+ puts ("\n\n*** ERROR TEST ***");
+ open_mkdir_error ();
+ rename_error ();
+ truncate_error ();
+ rmdir_unlink_error ();
+ rdwr_error ();
+ puts ("*** END OF ERROR TEST ***");
+}
diff --git a/testsuites/fstests/fspatheval/patheval.doc b/testsuites/fstests/fspatheval/patheval.doc
new file mode 100644
index 0000000000..cd031ad4b1
--- /dev/null
+++ b/testsuites/fstests/fspatheval/patheval.doc
@@ -0,0 +1,26 @@
+#
+# $Id$
+#
+# COPYRIGHT (c) 1989-2009.
+# 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: fspatheval
+
+directives:
+
++ open
++ unlink
++ mkdir
++ rmdir
+
+concepts:
+
++ Create directories and files to check the path evaluation
+
diff --git a/testsuites/fstests/fspatheval/test.c b/testsuites/fstests/fspatheval/test.c
new file mode 100644
index 0000000000..ffe0a311fa
--- /dev/null
+++ b/testsuites/fstests/fspatheval/test.c
@@ -0,0 +1,187 @@
+/*
+ * COPYRIGHT (c) 1989-2011.
+ * 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 Exp $
+ */
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <errno.h>
+#include <stdio.h>
+#include <stdint.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+
+#include "fstest.h"
+
+#define BUF_SIZE 100
+
+void make_multiple_files (char **files,int is_directory)
+{
+ int i;
+ int status;
+ int fd;
+
+ i = 0;
+ if (is_directory){
+ while (files[i]) {
+ printf ("Making directory %s\n", files[i]);
+ status = mkdir (files[i], S_IRWXU);
+ rtems_test_assert (!status);
+ i++;
+ }
+ }else {
+ while (files[i]) {
+ printf ("Create file %s\n", files[i]);
+ fd=creat(files[i],S_IRWXU);
+ status=close(fd);
+ rtems_test_assert (!status);
+ i++;
+ }
+ }
+
+ puts ("");
+}
+
+void remove_multiple_files (char **files,int is_directory)
+{
+ int i;
+ int status;
+
+ i = 0;
+ while (files[i]) {
+ i++;
+ }
+
+ if (is_directory){
+ while (i) {
+ i--;
+ printf ("Removing directory %s\n", files[i]);
+ status = rmdir (files[i]);
+ rtems_test_assert (!status);
+ }
+ }else {
+ while (i) {
+ i--;
+ printf ("Removing file %s\n", files[i]);
+ status = unlink (files[i]);
+ rtems_test_assert (!status);
+ }
+ }
+
+ puts ("");
+}
+
+void path_eval_test01 (void)
+{
+ char *valid_path[] = {
+ "/test1/",
+ "tets2",
+ "///test3",
+ "test4////",
+ "../../test5",
+ "/test1/../test6",
+ "./test7/",
+ ".././test8",
+ "test8/./../test9",
+ "///test9/../test10",
+ 0
+ };
+ char *valid_file[]={
+ "/test1",
+ "tets2",
+ "///test3",
+ "test4",
+ "../../test5",
+ "/../test6",
+ "./test7",
+ ".././test8",
+ "/./../test9",
+ "//../test10",
+ 0
+ };
+
+ char *valid_relative_path[]={
+ "test1",
+ "tets2",
+ "test3",
+ "test4",
+ "test5",
+ "test6",
+ "test7",
+ "test8",
+ "test9",
+ "test10",
+ 0
+
+ };
+
+ char *valid_name[] = {
+ "!#$%&()-@^_`{}~'",
+ "0_1_A",
+ "aaa bbb",
+ "ccc....ddd",
+ " fff",
+ 0
+ };
+
+
+ make_multiple_files(valid_path,1);
+ make_multiple_files (valid_name,1);
+
+ remove_multiple_files(valid_relative_path,1);
+ remove_multiple_files(valid_name,1);
+
+ make_multiple_files(valid_file,0);
+ make_multiple_files (valid_name,0);
+
+ remove_multiple_files(valid_relative_path,0);
+ remove_multiple_files(valid_name,0);
+
+}
+void path_eval_test02(void )
+{
+
+ int status;
+ char buf[BUF_SIZE];
+ char* cwd;
+
+ mode_t mode = S_IRWXU|S_IRWXG|S_IRWXO;
+ puts("mkdir /tmp/a/b");
+ status=mkdir("/tmp",mode);
+ rtems_test_assert(status==0);
+ status=mkdir("/tmp/a",mode);
+ rtems_test_assert(status==0);
+ status=mkdir("/tmp/a/b",mode);
+ rtems_test_assert(status==0);
+
+ cwd=getcwd(buf,BUF_SIZE);
+ rtems_test_assert(cwd!=NULL);
+
+ puts("cd /tmp");
+ status=chdir("/tmp");
+ rtems_test_assert(status==0);
+
+ status=chdir("a/b");
+ rtems_test_assert(status==0);
+
+ status=chdir("../b");
+ rtems_test_assert(status==0);
+
+ status=chdir("../b/.");
+ rtems_test_assert(status==0);
+
+}
+
+void test (void )
+{
+ puts( "\n\n*** PATH EVALUATION TEST ***" );
+ path_eval_test01();
+ path_eval_test02();
+ puts( "*** END OF PATH EVALUATION TEST ***" );
+}
diff --git a/testsuites/fstests/fspermission/fspermission.doc b/testsuites/fstests/fspermission/fspermission.doc
new file mode 100644
index 0000000000..f9c3562315
--- /dev/null
+++ b/testsuites/fstests/fspermission/fspermission.doc
@@ -0,0 +1,28 @@
+#
+# $Id$
+#
+# COPYRIGHT (c) 1989-2009.
+# 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:
+
+directives:
+
++ open
++ write
++ read
++ chmod
++ chown
++ umask
+
+concepts:
+
++ Check if the file permission takes effect
+
diff --git a/testsuites/fstests/fspermission/test.c b/testsuites/fstests/fspermission/test.c
new file mode 100644
index 0000000000..4750e6d77e
--- /dev/null
+++ b/testsuites/fstests/fspermission/test.c
@@ -0,0 +1,478 @@
+
+/*
+ * COPYRIGHT (c) 1989-2011.
+ * 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 Exp $
+ */
+
+#include <sys/stat.h>
+#include <fcntl.h>
+#include <errno.h>
+#include <string.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <stdint.h>
+#include <dirent.h>
+#include <unistd.h>
+
+#include "fstest.h"
+
+/*
+ * Test the umask
+ */
+void umask_test01(void )
+{
+
+ mode_t previous_cmask;
+ mode_t tmp_mode;
+ mode_t file_mode;
+ struct stat statbuf;
+ int status = 0;
+ int fd;
+
+ char* file01="file01";
+ char* file02="file02";
+ char* directory01="dir01";
+
+ const char* wd=__func__;
+
+ mode_t mode=S_IRWXU|S_IRWXG|S_IRWXO ;
+
+
+
+ /*
+ *Create a new directory and change the current directory to this
+ */
+ status=mkdir(wd,mode);
+ rtems_test_assert(status==0);
+ status=chdir(wd);
+ rtems_test_assert(status==0);
+
+/*
+ *
+ * Call open creat and mkdir to create new files and directory
+ */
+ fd=open(file01,O_CREAT|O_RDWR,mode);
+ status=close(fd);
+ rtems_test_assert(status==0);
+
+ fd=creat(file02,mode);
+ status=close(fd);
+ rtems_test_assert(status==0);
+
+ status=mkdir(directory01,mode);
+ rtems_test_assert(status==0);
+
+
+ /*
+ *Get the previous cmask and set it to a new one
+ */
+ previous_cmask = umask (0321);
+ printf("The previous cmask is %03o\n",(unsigned int)previous_cmask);
+ file_mode= mode & ~previous_cmask;
+
+ status = stat (file01, &statbuf);
+ rtems_test_assert (status == 0);
+ tmp_mode = (statbuf.st_mode) & ALLPERMS;
+ printf("The file mode of %s is %03o\n",file01,(unsigned int)tmp_mode);
+ rtems_test_assert(tmp_mode==file_mode);
+
+
+ status = stat (file02, &statbuf);
+ rtems_test_assert (status == 0);
+ tmp_mode = (statbuf.st_mode) & ALLPERMS;
+ printf("The file mode of %s is %03o\n",file02,(unsigned int)tmp_mode);
+ rtems_test_assert(tmp_mode==file_mode);
+
+ status = stat (directory01, &statbuf);
+ rtems_test_assert (status == 0);
+ tmp_mode = (statbuf.st_mode) & ALLPERMS;
+ printf("The file mode of %s is %03o\n",directory01,(unsigned int)tmp_mode);
+ rtems_test_assert(tmp_mode==file_mode);
+
+ /*
+ *Remove them and recreate them with the same mode
+ */
+
+ status=unlink(file01);
+ rtems_test_assert(status==0);
+ fd=open(file01,O_CREAT|O_RDWR,mode);
+ status=close(fd);
+ rtems_test_assert(status==0);
+
+ status=unlink(file02);
+ rtems_test_assert(status==0);
+ fd=creat(file02,mode);
+ status=close(fd);
+ rtems_test_assert(status==0);
+
+ status=rmdir(directory01);
+ rtems_test_assert(status==0);
+ status=mkdir(directory01,mode);
+ rtems_test_assert(status==0);
+
+ /*
+ *Check the file mode
+ */
+
+ previous_cmask = umask (00);
+ printf("The previous cmask is %03o\n",(unsigned int)previous_cmask);
+ file_mode= mode & ~previous_cmask;
+
+ status = stat (file01, &statbuf);
+ rtems_test_assert (status == 0);
+ tmp_mode = (statbuf.st_mode) & ALLPERMS;
+ printf("The file mode of %s is %03o\n",file01,(unsigned int)tmp_mode);
+ rtems_test_assert(tmp_mode==file_mode);
+
+
+ status = stat (file02, &statbuf);
+ rtems_test_assert (status == 0);
+ tmp_mode = (statbuf.st_mode) & ALLPERMS;
+ printf("The file mode of %s is %03o\n",file02,(unsigned int)tmp_mode);
+ rtems_test_assert(tmp_mode==file_mode);
+
+ status = stat (directory01, &statbuf);
+ rtems_test_assert (status == 0);
+ tmp_mode = (statbuf.st_mode) & ALLPERMS;
+ printf("The file mode of %s is %03o\n",directory01,(unsigned int)tmp_mode);
+ rtems_test_assert(tmp_mode==file_mode);
+
+ /*
+ * Go back to parent directory
+ */
+ status=chdir("..");
+ rtems_test_assert(status==0);
+
+}
+/*
+ * Check the file mode in file and directory
+ */
+void test_premission01(void )
+{
+ mode_t tmp_mode;
+ struct stat statbuf;
+ int status = 0;
+ int fd;
+
+ char* file01="file01";
+ char* file02="file02";
+ char* directory01="dir01";
+
+ char path[20];
+ char* test_data="Test Data";
+ char* data_buf;
+ size_t len=strlen(test_data);
+
+ int n;
+ DIR *dp;
+
+ const char* wd=__func__;
+
+ mode_t mode=S_IRWXU|S_IRWXG|S_IRWXO ;
+ uid_t user_id =65534;
+ gid_t group_id =65534;
+
+ uid_t another_user_id =65533;
+ gid_t another_group_id =65533;
+
+
+ /*
+ *Create a new directory and change the current directory to this
+ */
+ umask(00);
+ status=mkdir(wd,mode);
+ rtems_test_assert(status==0);
+ status=chdir(wd);
+ rtems_test_assert(status==0);
+
+ status=setgid(group_id);
+ rtems_test_assert(status==0);
+ status=seteuid(user_id);
+ rtems_test_assert(status==0);
+ status=seteuid(user_id);
+ rtems_test_assert(status==0);
+
+
+ /*
+ *Create a file with mode 0777
+ */
+ fd=creat(file01,mode);
+ status=close(fd);
+ rtems_test_assert(status==0);
+ /*
+ *Create a file with mode 0240
+ */
+
+ fd=creat(file02,0240);
+ status=close(fd);
+ rtems_test_assert(status==0);
+
+
+ /*
+ *Check the file mode uid and gid
+ */
+ status = stat (file01, &statbuf);
+ rtems_test_assert (status == 0);
+ tmp_mode = (statbuf.st_mode) & ALLPERMS;
+ printf("The file mode of %s is %03o\n",file01,(unsigned int)tmp_mode);
+ rtems_test_assert(tmp_mode==mode);
+ rtems_test_assert(statbuf.st_uid==user_id);
+ rtems_test_assert(statbuf.st_gid==group_id);
+
+ status = stat (file02, &statbuf);
+ rtems_test_assert (status == 0);
+ tmp_mode = (statbuf.st_mode) & ALLPERMS;
+ printf("The file mode of %s is %03o\n",file02,(unsigned int)tmp_mode);
+ rtems_test_assert(tmp_mode==0240);
+ rtems_test_assert(statbuf.st_uid==user_id);
+ rtems_test_assert(statbuf.st_gid==group_id);
+
+ /*
+ * Create directory and a file in it for tese
+ */
+
+ status=mkdir(directory01,0777);
+ rtems_test_assert(status==0);
+ sprintf(path,"%s/%s",directory01,file01);
+ fd=creat(path,0777);
+
+ status=chmod(directory01,0340);
+ rtems_test_assert (status == 0);
+ status = stat (directory01, &statbuf);
+ rtems_test_assert (status == 0);
+ tmp_mode = (statbuf.st_mode) & ALLPERMS;
+ printf("The file mode of %s is %03o\n",directory01,(unsigned int)tmp_mode);
+ rtems_test_assert(tmp_mode==0340);
+ rtems_test_assert(statbuf.st_uid==user_id);
+ rtems_test_assert(statbuf.st_gid==group_id);
+
+ /*
+ * Check the file with open and write
+ */
+
+ /*
+ * Test write
+ */
+ fd=open(file01,O_WRONLY);
+ n=write(fd,test_data,len);
+ rtems_test_assert(n==len);
+ status=close(fd);
+ rtems_test_assert(status==0);
+
+ fd=open(file02,O_WRONLY);
+ n=write(fd,test_data,len);
+ rtems_test_assert(n==len);
+ status=close(fd);
+ rtems_test_assert(status==0);
+
+ /*
+ * Test read
+ */
+ data_buf=(char*)malloc(len+1);
+ fd=open(file01,O_RDWR);
+ rtems_test_assert(fd!=-1);
+ n=read(fd,data_buf,len);
+ rtems_test_assert(n==len);
+ status=close(fd);
+ rtems_test_assert(status==0);
+
+ EXPECT_ERROR(EACCES,open,file02,O_RDONLY);
+ EXPECT_ERROR(EACCES,open,file02,O_RDWR);
+
+ /*
+ * Test read directory
+ */
+ dp= opendir(directory01);
+ rtems_test_assert(dp==NULL);
+ rtems_test_assert(errno==EACCES);
+
+ /*
+ * Test write directory
+ */
+ status = lstat (path, &statbuf);
+ rtems_test_assert (status == 0);
+
+ status=unlink(path);
+ rtems_test_assert(status==0);
+
+
+ /*
+ * Change euid and check
+ */
+ puts("Change euid and check");
+ status=seteuid(0);
+ rtems_test_assert(status==0);
+
+ status=seteuid(another_user_id);
+ rtems_test_assert(status==0);
+
+ fd=open(file01,O_WRONLY);
+ n=write(fd,test_data,len);
+ rtems_test_assert(n==len);
+ status=close(fd);
+ rtems_test_assert(status==0);
+
+ EXPECT_ERROR(EACCES,open,file02,O_WRONLY);
+ EXPECT_ERROR(EACCES,open,file02,O_RDWR);
+
+ /*
+ * Test read directory
+ */
+ dp= opendir(directory01);
+ rtems_test_assert(dp!=NULL);
+ status=closedir(dp);
+ rtems_test_assert(status==0);
+
+ /*
+ * Test write directory
+ */
+ EXPECT_ERROR(EACCES,creat,path,mode);
+ EXPECT_ERROR(EACCES,rename,path,"test");
+ EXPECT_ERROR(EACCES,truncate,path,0);
+ EXPECT_ERROR(EACCES,link,path,"test");
+ EXPECT_ERROR(EACCES,unlink,path);
+ /*
+ * Change egid and check
+ */
+ puts("Change egid and check");
+ status=seteuid(0);
+ rtems_test_assert(status==0);
+
+ status=setgid(another_group_id);
+ rtems_test_assert(status==0);
+
+ status=seteuid(another_user_id);
+ rtems_test_assert(status==0);
+
+ EXPECT_ERROR(EACCES,open,file02,O_WRONLY);
+ EXPECT_ERROR(EACCES,open,file02,O_RDONLY);
+ EXPECT_ERROR(EACCES,open,file02,O_RDWR);
+
+ /*
+ * Test read directory
+ */
+ dp= opendir(directory01);
+ rtems_test_assert(dp==NULL);
+ rtems_test_assert(errno==EACCES);
+
+ /*
+ * Test write directory
+ */
+ EXPECT_ERROR(EACCES,creat,path,mode);
+
+ /*
+ * Go back to parent directory
+ */
+ status=seteuid(0);
+ rtems_test_assert(status==0);
+ status=setgid(0);
+ rtems_test_assert(status==0);
+ free(data_buf);
+
+ status=chdir("..");
+ rtems_test_assert(status==0);
+}
+
+/*
+ * Test chown and chmod
+ */
+void test_premission02(void )
+{
+ struct stat statbuf;
+ int status = 0;
+ int fd;
+
+ char* file01="file01";
+ char* directory01="dir01";
+
+ mode_t tmp_mode;
+ mode_t file_mode=0321;
+
+ const char* wd=__func__;
+
+ mode_t mode=S_IRWXU|S_IRWXG|S_IRWXO ;
+ uid_t user_id =65534;
+ gid_t group_id =65534;
+
+ /*
+ *Create a new directory and change the current directory to this
+ */
+ status=mkdir(wd,mode);
+ rtems_test_assert(status==0);
+ status=chdir(wd);
+ rtems_test_assert(status==0);
+
+ umask(00);
+
+ fd=creat(file01,mode);
+ status=close(fd);
+ rtems_test_assert(status==0);
+ status=stat(file01,&statbuf);
+ tmp_mode = (statbuf.st_mode) & ALLPERMS;
+ rtems_test_assert(tmp_mode==mode);
+
+ /*
+ *Change the file mode uid and gid
+ */
+
+ status=chmod(file01,file_mode);
+ rtems_test_assert(status==0);
+ status=chown(file01,user_id,group_id);
+ rtems_test_assert(status==0);
+ status=stat(file01,&statbuf);
+ tmp_mode = (statbuf.st_mode) & ALLPERMS;
+ rtems_test_assert(tmp_mode==file_mode);
+ rtems_test_assert(user_id==statbuf.st_uid);
+ rtems_test_assert(group_id==statbuf.st_gid);
+
+ status=mkdir(directory01,mode);
+ rtems_test_assert(status==0);
+ status=stat(directory01,&statbuf);
+ tmp_mode = (statbuf.st_mode) & ALLPERMS;
+ printf("The directory file mode is %0o\n",(unsigned int)tmp_mode);
+ rtems_test_assert(tmp_mode==mode);
+
+ /*
+ *Change the directory file mode
+ */
+ status=chmod(directory01,file_mode);
+ rtems_test_assert(status==0);
+ status=stat(directory01,&statbuf);
+ tmp_mode = (statbuf.st_mode) & ALLPERMS;
+ rtems_test_assert(tmp_mode==file_mode);
+ printf("The directory file mode is %0o\n",(unsigned int)tmp_mode);
+
+ /*
+ * Go back to parent directory
+ */
+ status=chdir("..");
+ rtems_test_assert(status==0);
+}
+void root_test(void )
+{
+ int fd;
+ int sc;
+
+ fd =creat("test",0000);
+ sc=close(fd);
+ rtems_test_assert(sc==0);
+
+ fd=open("test",O_RDONLY);
+ rtems_test_assert(fd!=-1);
+}
+
+void test(void )
+{
+ puts( "\n\n*** PERMISSION TEST ***" );
+ umask_test01();
+ test_premission01();
+ test_premission02();
+ root_test();
+ puts( "*** END OF PERMISSION TEST ***" );
+}
diff --git a/testsuites/fstests/fsrdwr/fsrdwr.doc b/testsuites/fstests/fsrdwr/fsrdwr.doc
new file mode 100644
index 0000000000..7b0338f629
--- /dev/null
+++ b/testsuites/fstests/fsrdwr/fsrdwr.doc
@@ -0,0 +1,25 @@
+#
+# $Id$
+#
+# COPYRIGHT (c) 1989-2011.
+# 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: fsrdwr
+
+directives:
+
++ open
++ read
++ write
++ lseek
+
+concepts:
+
++ Simlpe read and write test.
diff --git a/testsuites/fstests/fsrdwr/init.c b/testsuites/fstests/fsrdwr/init.c
new file mode 100644
index 0000000000..6565eb9415
--- /dev/null
+++ b/testsuites/fstests/fsrdwr/init.c
@@ -0,0 +1,519 @@
+/*
+ * COPYRIGHT (c) 1989-2011.
+ * 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 Exp $
+ */
+#include <sys/stat.h>
+#include <string.h>
+#include <stdlib.h>
+#include <fcntl.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <stdint.h>
+#include <memory.h>
+#include <unistd.h>
+
+#include "fstest.h"
+
+const char *databuf =
+ "Happy days are here again. Happy days are here again.1Happy "
+ "days are here again.2Happy days are here again.3Happy days are here again."
+ "4Happy days are here again.5Happy days are here again.6Happy days are here "
+ "again.7Happy days are here again.";
+
+void read_write_test (void)
+{
+
+ int fd;
+ int status;
+ char *name01 = "name01";
+ char *name02 = "name02";
+ struct stat statbuf;
+ char *readbuf;
+ size_t len = strlen (databuf);
+ off_t pos = 0;
+
+ int n;
+ mode_t mode = S_IRWXU | S_IRWXG | S_IRWXO;
+
+
+ const char* wd=__func__;
+
+ /*
+ * Create a new directory and change the current directory to this
+ */
+ status=mkdir(wd,mode);
+ rtems_test_assert(status==0);
+ status=chdir(wd);
+ rtems_test_assert(status==0);
+ /*
+ * Create an empty file
+ */
+ fd = open (name01, O_CREAT | O_WRONLY, mode);
+ status = close (fd);
+ rtems_test_assert (status == 0);
+ /*
+ * Verify the empty file
+ */
+ status = stat (name01, &statbuf);
+ rtems_test_assert (status == 0);
+
+ rtems_test_assert (S_ISREG (statbuf.st_mode));
+ rtems_test_assert (statbuf.st_size == 0);
+
+ /*
+ * Write data to the empty file
+ */
+ fd = open (name01, O_WRONLY);
+ rtems_test_assert (fd != -1);
+
+ n = write (fd, databuf, len);
+ rtems_test_assert (n == len);
+ status = close (fd);
+ rtems_test_assert (status == 0);
+
+ status = stat (name01, &statbuf);
+ rtems_test_assert (status == 0);
+ rtems_test_assert (S_ISREG (statbuf.st_mode));
+ rtems_test_assert (statbuf.st_size == len);
+
+ /*
+ * Read the data from the file
+ */
+ readbuf = (char *) malloc (len + 1);
+ rtems_test_assert (readbuf);
+
+ fd = open (name01, O_RDONLY);
+ rtems_test_assert (fd != -1);
+ n = read (fd, readbuf, len);
+ rtems_test_assert (n == len);
+ rtems_test_assert (!strncmp (databuf, readbuf, len));
+ status = close (fd);
+ rtems_test_assert (status == 0);
+
+ /*
+ * Open the file using O_APPEND and write the data
+ */
+ memset (readbuf, 0, len + 1);
+ fd = open (name01, O_WRONLY | O_APPEND);
+ n = write (fd, databuf, len);
+ rtems_test_assert (n == len);
+ pos = lseek (fd, 0, SEEK_CUR);
+ rtems_test_assert (pos == 2 * len);
+ status = close (fd);
+ rtems_test_assert (status == 0);
+
+ /*
+ * Read the data and verify it
+ */
+ fd = open (name01, O_RDONLY);
+ rtems_test_assert (fd != -1);
+ n = read (fd, readbuf, len);
+ rtems_test_assert (n == len);
+ rtems_test_assert (!strncmp (databuf, readbuf, len));
+
+ n = read (fd, readbuf, len);
+ rtems_test_assert (n == len);
+ rtems_test_assert (!strncmp (databuf, readbuf, len));
+ status = close (fd);
+ rtems_test_assert (status == 0);
+
+ /*
+ * Open the file using O_RDWR
+ */
+ memset (readbuf, 0, len + 1);
+
+ fd = open (name01, O_RDWR);
+ n = write (fd, databuf, len);
+ rtems_test_assert (n == len);
+ pos = lseek (fd, 0, SEEK_CUR);
+ rtems_test_assert (pos == len);
+ n = read (fd, readbuf, len);
+ rtems_test_assert (n == len);
+ rtems_test_assert (!strncmp (databuf, readbuf, len));
+ pos = lseek (fd, 0, SEEK_CUR);
+ rtems_test_assert (pos == 2 * len);
+ status = close (fd);
+ rtems_test_assert (status == 0);
+
+ /*
+ * Open the file using O_TRUNC
+ */
+
+ fd = open (name01, O_WRONLY | O_TRUNC);
+ status = close (fd);
+ rtems_test_assert (status == 0);
+
+ /*
+ * Verify if the length is zero
+ */
+ status = stat (name01, &statbuf);
+ rtems_test_assert (status == 0);
+ rtems_test_assert (S_ISREG (statbuf.st_mode));
+ rtems_test_assert (statbuf.st_size == 0);
+
+ /*
+ * Open a directory
+ */
+ status = mkdir (name02, mode);
+ rtems_test_assert (status == 0);
+ fd = open (name02, O_RDONLY);
+ rtems_test_assert (fd != -1);
+
+ status = close (fd);
+ rtems_test_assert (status == 0);
+
+ free (readbuf);
+
+ /*
+ * Go back to parent directory
+ */
+ status=chdir("..");
+ rtems_test_assert(status==0);
+}
+
+void truncate_test03(void )
+{
+
+ int fd;
+ int status;
+ char *name01="name01";
+ struct stat statbuf;
+
+ char data;
+ int n;
+ int i;
+
+ size_t len = strlen(databuf);
+
+ char *readbuf;
+ off_t good_size=100;
+ mode_t mode = S_IRWXU|S_IRWXG|S_IRWXO;
+
+
+ const char* wd=__func__;
+
+ /*
+ * Create a new directory and change the current directory to this
+ */
+ status=mkdir(wd,mode);
+ rtems_test_assert(status==0);
+ status=chdir(wd);
+ rtems_test_assert(status==0);
+
+ /*
+ * Create an empty file
+ */
+ fd=creat(name01,mode);
+ status=close(fd);
+ rtems_test_assert(status==0);
+
+
+ /*
+ * Truncate it to a valid size
+ */
+ status=truncate(name01,good_size);
+ rtems_test_assert(status==0);
+ /*
+ * Verify the size and the data
+ */
+ status=stat(name01,&statbuf);
+ rtems_test_assert(status==0);
+ rtems_test_assert(good_size==statbuf.st_size);
+
+ fd=open(name01,O_RDONLY);
+ while ((n=read(fd,&data,1))>0) {
+ rtems_test_assert(data==0);
+ }
+
+ status=close(fd);
+ rtems_test_assert(status==0);
+
+ /*
+ * Fill a file with data
+ */
+ fd=open(name01,O_WRONLY);
+ rtems_test_assert(fd!=-1);
+ n=write(fd,databuf,len);
+ rtems_test_assert(n==len);
+
+ /*
+ * Truncate it to the half size
+ */
+
+ status=truncate(name01,len/2);
+ status=truncate(name01,len);
+
+ /*
+ * verify the data
+ */
+ readbuf = (char *)malloc(len/2);
+ rtems_test_assert( readbuf );
+ fd=open(name01,O_RDONLY);
+ rtems_test_assert(fd!=-1);
+ n=read(fd,readbuf,len/2);
+ rtems_test_assert(n==len/2);
+ rtems_test_assert(!strncmp(databuf,readbuf,len/2));
+ n=read(fd,readbuf,len/2);
+ rtems_test_assert(n==len/2);
+ for (i=0;i<len/2;i++){
+ rtems_test_assert(readbuf[i]==0);
+ }
+ status=close(fd);
+ rtems_test_assert( status==0 );
+
+ /*
+ * Go back to parent directory
+ */
+ status=chdir("..");
+ rtems_test_assert(status==0);
+}
+
+void lseek_test(void)
+{
+ int fd;
+ int status;
+ char *name01="test_name01";
+ struct stat statbuf;
+
+ int n;
+ int i;
+
+ size_t len = strlen(databuf);
+ off_t pos;
+ int total_written=0;
+
+ char *readbuf;
+ mode_t mode = S_IRWXU|S_IRWXG|S_IRWXO;
+
+
+
+ const char* wd=__func__;
+
+ /*
+ * Create a new directory and change the current directory to this
+ */
+ status=mkdir(wd,mode);
+ rtems_test_assert(status==0);
+ status=chdir(wd);
+ rtems_test_assert(status==0);
+
+ /*
+ * Create a file and fill with the data.
+ */
+ puts("Create a new file");
+ fd=creat(name01,mode);
+ rtems_test_assert(fd!=-1);
+
+ pos=lseek(fd,0,SEEK_CUR);
+ rtems_test_assert(pos==0);
+
+ pos=lseek(fd,0,SEEK_END);
+ rtems_test_assert(pos==0);
+
+ pos=lseek(fd,0,SEEK_SET);
+ rtems_test_assert(pos==0);
+
+
+ printf( "Writing %d bytes to file\n", len * 10 );
+ for (i=0; i<10; i++) {
+ n = write(fd, databuf, len);
+ rtems_test_assert( n != -1 );
+ total_written += n;
+ }
+ printf("Successfully wrote %d\n", total_written);
+
+ /*
+ * Check the current position
+ */
+ puts("Check the current position");
+ pos=lseek(fd,0,SEEK_CUR);
+ rtems_test_assert(pos==total_written);
+
+ pos=lseek(fd,0,SEEK_END);
+ rtems_test_assert(pos==total_written);
+
+ /*
+ * ftruncate shall not change the posistion
+ */
+ status=ftruncate(fd,total_written+1);
+ rtems_test_assert(status==0);
+
+ pos=lseek(fd,0,SEEK_CUR);
+ rtems_test_assert(pos==total_written);
+
+ pos=lseek(fd,0,SEEK_END);
+ printf("%jd\n",(intmax_t)pos);
+ rtems_test_assert(pos==total_written+1);
+
+ status=ftruncate(fd,total_written);
+ rtems_test_assert(status==0);
+
+ pos=lseek(fd,0,SEEK_CUR);
+ rtems_test_assert(pos==total_written+1);
+
+
+ status=close(fd);
+ rtems_test_assert(status==0);
+
+ /*
+ * Check the file size
+ */
+ status=stat(name01,&statbuf);
+ rtems_test_assert(statbuf.st_size==total_written);
+
+ /*
+ * Open the file with O_RDONLY and check the lseek
+ */
+ readbuf=(char*)malloc(len);
+ fd=open(name01,O_RDONLY);
+ pos=lseek(fd,len,SEEK_CUR);
+ rtems_test_assert(pos==len);
+ n=read(fd,readbuf,len);
+ rtems_test_assert(n==len);
+ rtems_test_assert(!strncmp(databuf,readbuf,len));
+
+ pos=lseek(fd,len,SEEK_CUR);
+ rtems_test_assert(pos==3*len);
+ n=read(fd,readbuf,len);
+ rtems_test_assert(n==len);
+ rtems_test_assert(!strncmp(databuf,readbuf,len));
+
+ pos=lseek(fd,-len,SEEK_CUR);
+ rtems_test_assert(pos==3*len);
+ n=read(fd,readbuf,len);
+ rtems_test_assert(n==len);
+ rtems_test_assert(!strncmp(databuf,readbuf,len));
+
+ pos=lseek(fd,4*len,SEEK_SET);
+ n=read(fd,readbuf,len);
+ rtems_test_assert(n==len);
+ rtems_test_assert(!strncmp(databuf,readbuf,len));
+
+
+ pos=lseek(fd,10,SEEK_SET);
+ n=read(fd,readbuf,len);
+ rtems_test_assert(n==len);
+ rtems_test_assert(strncmp(databuf,readbuf,len)!=0);
+
+ pos=lseek(fd,-len,SEEK_END);
+ n=read(fd,readbuf,2*len);
+ rtems_test_assert(n==len);
+ rtems_test_assert(!strncmp(databuf,readbuf,len));
+
+ status=close(fd);
+ rtems_test_assert(status==0);
+
+ /*
+ * Open the file withe O_RDWR and check the lseek
+ */
+
+ fd=open(name01,O_RDWR);
+
+ pos=lseek(fd,len,SEEK_CUR);
+ rtems_test_assert(pos==len);
+ n=read(fd,readbuf,len);
+ rtems_test_assert(n==len);
+ rtems_test_assert(!strncmp(databuf,readbuf,len));
+
+ pos=lseek(fd,len,SEEK_CUR);
+ rtems_test_assert(pos==3*len);
+ n=read(fd,readbuf,len);
+ rtems_test_assert(n==len);
+ rtems_test_assert(!strncmp(databuf,readbuf,len));
+
+ pos=lseek(fd,-len,SEEK_CUR);
+ rtems_test_assert(pos==3*len);
+ n=read(fd,readbuf,len);
+ rtems_test_assert(n==len);
+ rtems_test_assert(!strncmp(databuf,readbuf,len));
+
+ pos=lseek(fd,4*len,SEEK_SET);
+ n=read(fd,readbuf,len);
+ rtems_test_assert(n==len);
+ rtems_test_assert(!strncmp(databuf,readbuf,len));
+
+ /*
+ * Go to the wrong position, so the data is not the same
+ */
+ pos=lseek(fd,10,SEEK_SET);
+ n=read(fd,readbuf,len);
+ rtems_test_assert(n==len);
+ rtems_test_assert(strncmp(databuf,readbuf,len)!=0);
+
+ /*
+ * Use SEEK_END
+ */
+ pos=lseek(fd,-len,SEEK_END);
+ n=read(fd,readbuf,2*len);
+ rtems_test_assert(n==len);
+ rtems_test_assert(!strncmp(databuf,readbuf,len));
+
+ memset(readbuf,0,len);
+
+ /*
+ * Write the zero to the end of file.
+ */
+ pos=lseek(fd,-len,SEEK_END);
+ rtems_test_assert(pos==total_written-len);
+ n=write(fd,readbuf,len);
+ rtems_test_assert(n==len);
+ /*
+ * Verify it
+ */
+ pos=lseek(fd,total_written-len,SEEK_SET);
+ n=read(fd,readbuf,len);
+ rtems_test_assert(n==len);
+ for (i=0;i<n;i++){
+ rtems_test_assert(readbuf[i]==0);
+ }
+
+ /*
+ * Write the zero to the beginning of file.
+ */
+ pos=lseek(fd,-total_written,SEEK_END);
+ rtems_test_assert(pos==0);
+ n=write(fd,readbuf,len);
+ rtems_test_assert(n==len);
+
+ /*
+ * Verify it
+ */
+
+ pos=lseek(fd,0,SEEK_SET);
+ n=read(fd,readbuf,len);
+ rtems_test_assert(n==len);
+ for (i=0;i<n;i++){
+ rtems_test_assert(readbuf[i]==0);
+ }
+
+ n=read(fd,readbuf,len);
+ rtems_test_assert(n==len);
+ rtems_test_assert(strncmp(databuf,readbuf,len)==0);
+ /*
+ * Call ftruncate to decrease the file and the position not change
+ */
+ status=ftruncate(fd,len);
+ rtems_test_assert(status==0);
+ pos=lseek(fd,0,SEEK_CUR);
+ rtems_test_assert(pos==len*2);
+
+ status=close(fd);
+ rtems_test_assert(status==0);
+ /*
+ * Go back to parent directory
+ */
+ status=chdir("..");
+ rtems_test_assert(status==0);
+
+}
+void test(void )
+{
+ read_write_test();
+ lseek_test();
+}
diff --git a/testsuites/fstests/fstime/fstime.doc b/testsuites/fstests/fstime/fstime.doc
new file mode 100644
index 0000000000..b7b5ea05c9
--- /dev/null
+++ b/testsuites/fstests/fstime/fstime.doc
@@ -0,0 +1,28 @@
+#
+# $Id$
+#
+# COPYRIGHT (c) 1989-2009.
+# 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: fstime
+
+directives:
+
++ open
++ write
++ read
++ utime
+
+
+
+concepts:
+
++ Check if the these directives update the time attribute
+
diff --git a/testsuites/fstests/fstime/test.c b/testsuites/fstests/fstime/test.c
new file mode 100644
index 0000000000..a0e30d94a7
--- /dev/null
+++ b/testsuites/fstests/fstime/test.c
@@ -0,0 +1,264 @@
+
+/*
+ * COPYRIGHT (c) 1989-2011.
+ * 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 Exp $
+ */
+
+#include <sys/stat.h>
+#include <limits.h>
+#include <fcntl.h>
+#include <errno.h>
+#include <stdio.h>
+#include <stdint.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#include <utime.h>
+#include "fstest.h"
+
+void time_test01 (void)
+{
+ struct stat statbuf;
+ struct utimbuf timbuf;
+ int status = 0;
+ int fd;
+ time_t ctime1, mtime1;
+ time_t ctime2, mtime2;
+ char *readbuf;
+ char *databuf = "TEST";
+ char *file01 = "test01";
+ char *file02 = "test02";
+ char *dir01 = "dir01";
+
+ int n;
+ int len = strlen (databuf);
+
+ const char *wd = __func__;
+ mode_t mode = S_IRWXU | S_IRWXG | S_IRWXO;
+ /*
+ * Create a new directory and change to this
+ */
+ status = mkdir (wd, mode);
+ rtems_test_assert (status == 0);
+ status = chdir (wd);
+ rtems_test_assert (status == 0);
+
+ /*
+ * Create two files
+ */
+ fd = open (file01, O_CREAT | O_WRONLY, mode);
+ n = write (fd, databuf, len);
+ rtems_test_assert (n == len);
+ status = close (fd);
+ rtems_test_assert (status == 0);
+
+ fd = open (file02, O_CREAT | O_WRONLY, mode);
+ n = write (fd, databuf, len);
+ rtems_test_assert (n == len);
+ status = close (fd);
+ rtems_test_assert (status == 0);
+ /*
+ * If O_CREAT is set and the file did not previously exist, upon
+ * successful completion, open() shall mark for update the st_atime,
+ * st_ctime, and st_mtime fields of the file and the st_ctime and
+ * st_mtime fields of the parent directory.
+ */
+ status = stat (file01, &statbuf);
+ rtems_test_assert (status == 0);
+ ctime1 = statbuf.st_ctime;
+ mtime1 = statbuf.st_mtime;
+
+ status = stat (".", &statbuf);
+ rtems_test_assert (status == 0);
+ ctime2 = statbuf.st_ctime;
+ mtime2 = statbuf.st_mtime;
+
+ /*
+ * Make sure they are the same
+ */
+
+ rtems_test_assert (TIME_EQUAL (ctime1, mtime1));
+ rtems_test_assert (TIME_EQUAL (ctime1, mtime2));
+ rtems_test_assert (TIME_EQUAL (ctime1, ctime2));
+
+ status = stat (file02, &statbuf);
+ rtems_test_assert (status == 0);
+ ctime1 = statbuf.st_ctime;
+ mtime1 = statbuf.st_mtime;
+
+ status = stat (".", &statbuf);
+ rtems_test_assert (status == 0);
+ ctime2 = statbuf.st_ctime;
+ mtime2 = statbuf.st_mtime;
+
+ /*
+ * Make sure they are the same
+ */
+ rtems_test_assert (TIME_EQUAL (ctime1, mtime1));
+ rtems_test_assert (TIME_EQUAL (ctime1, mtime2));
+ rtems_test_assert (TIME_EQUAL (ctime1, ctime2));
+
+ /*
+ * Sleep a few seconds
+ */
+ puts ("Sleep a few seconds");
+
+ sleep (TIME_PRECISION);
+
+ /*
+ * Create an empty directory
+ */
+ status = mkdir (dir01, mode);
+ rtems_test_assert (status == 0);
+ /*
+ * truncate file01 to len, so it does not changes the file size
+ */
+ status = truncate (file01, len);
+ rtems_test_assert (status == 0);
+
+ /*
+ *truncate file02 to len+1, it changes the file size
+ */
+ status = truncate (file02, len + 1);
+ rtems_test_assert (status == 0);
+
+ /*
+ *
+ * truncate shall not modify the file offset for any open file
+ * descriptions associated with the file. Upon successful completion,
+ * if the file size is changed, this function shall mark for update
+ * the st_ctime and st_mtime fields of the file
+ */
+
+ /*
+ * file01 shall not update
+ */
+ status = stat (file01, &statbuf);
+ rtems_test_assert (status == 0);
+ ctime2 = statbuf.st_ctime;
+ mtime2 = statbuf.st_mtime;
+
+ rtems_test_assert (TIME_EQUAL (ctime1, mtime2));
+ rtems_test_assert (TIME_EQUAL (ctime1, ctime2));
+
+ /*
+ * file02 shall update
+ */
+ status = stat (file02, &statbuf);
+ rtems_test_assert (status == 0);
+ ctime2 = statbuf.st_ctime;
+ mtime2 = statbuf.st_mtime;
+
+ rtems_test_assert (TIME_EQUAL (ctime2, mtime2));
+ rtems_test_assert (!TIME_EQUAL (ctime1, mtime2));
+ rtems_test_assert (!TIME_EQUAL (ctime1, ctime2));
+
+ /*
+ * Upon successful completion, mkdir() shall mark for update the
+ * 5st_atime, st_ctime, and st_mtime fields of the directory.
+ * Also, the st_ctime and st_mtime fields of the directory that
+ * contains the new entry shall be marked for update.
+ */
+ status = stat (dir01, &statbuf);
+ rtems_test_assert (status == 0);
+ ctime2 = statbuf.st_ctime;
+ mtime2 = statbuf.st_mtime;
+ rtems_test_assert (TIME_EQUAL (ctime2, mtime2));
+ rtems_test_assert (!TIME_EQUAL (ctime1, mtime2));
+ rtems_test_assert (!TIME_EQUAL (ctime1, ctime2));
+
+ status = stat (".", &statbuf);
+ rtems_test_assert (status == 0);
+ ctime2 = statbuf.st_ctime;
+ mtime2 = statbuf.st_mtime;
+
+ rtems_test_assert (!TIME_EQUAL (ctime1, ctime2));
+ rtems_test_assert (!TIME_EQUAL (ctime1, mtime2));
+
+ /*
+ * Upon successful completion, where nbyte is greater than 0,
+ * write() shall mark for update the st_ctime and st_mtime fields of the file
+ */
+
+ /*
+ * read file01, and this should not uptate st_mtime and st_ctime
+ */
+ readbuf = (char *) malloc (len + 1);
+ fd = open (file01, O_RDONLY);
+ rtems_test_assert (fd != -1);
+ n = read (fd, readbuf, len);
+ rtems_test_assert (n == len);
+ status = fstat (fd, &statbuf);
+
+ ctime2 = statbuf.st_ctime;
+ mtime2 = statbuf.st_mtime;
+
+ rtems_test_assert (TIME_EQUAL (ctime1, ctime2));
+ rtems_test_assert (TIME_EQUAL (ctime1, mtime2));
+
+ status = close (fd);
+ rtems_test_assert (status == 0);
+ /*
+ * write file01, and this should uptate st_mtime st_ctime
+ */
+ readbuf = (char *) malloc (len + 1);
+ fd = open (file01, O_WRONLY);
+ rtems_test_assert (fd != -1);
+ n = write (fd, databuf, len);
+ rtems_test_assert (n == len);
+ status = fstat (fd, &statbuf);
+
+ ctime2 = statbuf.st_ctime;
+ mtime2 = statbuf.st_mtime;
+
+ rtems_test_assert (!TIME_EQUAL (ctime1, ctime2));
+ rtems_test_assert (!TIME_EQUAL (ctime1, mtime2));
+ status = close (fd);
+ rtems_test_assert (status == 0);
+
+ /*
+ * The utime() function shall set the access and modification times
+ * of the file named by the path argument.
+ */
+ timbuf.actime = ctime1;
+ timbuf.modtime = mtime1;
+
+ status = utime (file01, &timbuf);
+ rtems_test_assert (status == 0);
+
+ status = stat (file01, &statbuf);
+ ctime2 = statbuf.st_atime;
+ mtime2 = statbuf.st_mtime;
+
+ rtems_test_assert (TIME_EQUAL (ctime1, ctime2));
+ rtems_test_assert (TIME_EQUAL (ctime1, mtime2));
+
+ status = utime (dir01, &timbuf);
+ rtems_test_assert (status == 0);
+
+ status = stat (dir01, &statbuf);
+ ctime2 = statbuf.st_atime;
+ mtime2 = statbuf.st_mtime;
+
+ rtems_test_assert (TIME_EQUAL (ctime1, ctime2));
+ rtems_test_assert (TIME_EQUAL (ctime1, mtime2));
+
+}
+
+/*
+ * These tests only get time_t value, and test
+ * if they are changed. Thest tests don't check atime
+ */
+void test (void)
+{
+
+ puts( "\n\n*** TIME TEST ***" );
+ time_test01();
+ puts( "*** END OF TIME TEST ***" );
+}
diff --git a/testsuites/fstests/imfs_fserror/.cvsignore b/testsuites/fstests/imfs_fserror/.cvsignore
new file mode 100644
index 0000000000..282522db03
--- /dev/null
+++ b/testsuites/fstests/imfs_fserror/.cvsignore
@@ -0,0 +1,2 @@
+Makefile
+Makefile.in
diff --git a/testsuites/fstests/imfs_fserror/Makefile.am b/testsuites/fstests/imfs_fserror/Makefile.am
new file mode 100644
index 0000000000..e85b3b139e
--- /dev/null
+++ b/testsuites/fstests/imfs_fserror/Makefile.am
@@ -0,0 +1,37 @@
+##
+## $Id$
+##
+
+MANAGERS = all
+
+rtems_tests_PROGRAMS = imfs_fserror
+imfs_fserror_SOURCES = ../fserror/test.c
+imfs_fserror_SOURCES += ../support/fstest_support.c
+imfs_fserror_SOURCES += ../support/fstest_support.h
+imfs_fserror_SOURCES += ../support/fstest.h
+imfs_fserror_SOURCES += ../../psxtests/include/pmacros.h
+imfs_fserror_SOURCES += ../imfs_support/fs_support.c
+imfs_fserror_SOURCES += ../imfs_support/fs_config.h
+
+#dist_rtems_tests_DATA = imfs_fserror.scn
+#dist_rtems_tests_DATA += imfs_fserror.doc
+
+include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
+include $(top_srcdir)/../automake/compile.am
+include $(top_srcdir)/../automake/leaf.am
+
+imfs_fserror_LDADD = $(MANAGERS_NOT_WANTED:%=$(PROJECT_LIB)/no-%.rel)
+
+AM_CPPFLAGS += -I$(top_srcdir)/support
+AM_CPPFLAGS += -I$(top_srcdir)/imfs_support
+AM_CPPFLAGS += -I$(top_srcdir)/../support/include
+AM_CPPFLAGS += -I$(top_srcdir)/../psxtests/include
+
+LINK_OBJS = $(imfs_fserror_OBJECTS) $(imfs_fserror_LDADD)
+LINK_LIBS = $(imfs_fserror_LDLIBS)
+
+imfs_fserror$(EXEEXT): $(imfs_fserror_OBJECTS) $(imfs_fserror_DEPENDENCIES)
+ @rm -f imfs_fserror$(EXEEXT)
+ $(make-exe)
+
+include $(top_srcdir)/../automake/local.am
diff --git a/testsuites/fstests/imfs_fslink/.cvsignore b/testsuites/fstests/imfs_fslink/.cvsignore
new file mode 100644
index 0000000000..282522db03
--- /dev/null
+++ b/testsuites/fstests/imfs_fslink/.cvsignore
@@ -0,0 +1,2 @@
+Makefile
+Makefile.in
diff --git a/testsuites/fstests/imfs_fslink/Makefile.am b/testsuites/fstests/imfs_fslink/Makefile.am
index ad7a5e6c07..c9b7e5f012 100644
--- a/testsuites/fstests/imfs_fslink/Makefile.am
+++ b/testsuites/fstests/imfs_fslink/Makefile.am
@@ -5,10 +5,13 @@
MANAGERS = all
rtems_tests_PROGRAMS = imfs_fslink
-imfs_fslink_SOURCES = ../fslink/test.c ../support/fstest_support.c\
- ../support/fstest_support.h ../support/fstest.h ../../psxtests/include/pmacros.h \
- ../imfs_support/fs_support.c ../imfs_support/fs_config.h
-
+imfs_fslink_SOURCES = ../fslink/test.c
+imfs_fslink_SOURCES += ../support/fstest_support.c
+imfs_fslink_SOURCES += ../support/fstest_support.h
+imfs_fslink_SOURCES += ../support/fstest.h
+imfs_fslink_SOURCES += ../../psxtests/include/pmacros.h
+imfs_fslink_SOURCES += ../imfs_support/fs_support.c
+imfs_fslink_SOURCES += ../imfs_support/fs_config.h
#dist_rtems_tests_DATA = imfs_fslink.scn
#dist_rtems_tests_DATA += imfs_fslink.doc
diff --git a/testsuites/fstests/imfs_fspatheval/.cvsignore b/testsuites/fstests/imfs_fspatheval/.cvsignore
new file mode 100644
index 0000000000..282522db03
--- /dev/null
+++ b/testsuites/fstests/imfs_fspatheval/.cvsignore
@@ -0,0 +1,2 @@
+Makefile
+Makefile.in
diff --git a/testsuites/fstests/imfs_fspatheval/Makefile.am b/testsuites/fstests/imfs_fspatheval/Makefile.am
new file mode 100644
index 0000000000..ae5a3d4c6b
--- /dev/null
+++ b/testsuites/fstests/imfs_fspatheval/Makefile.am
@@ -0,0 +1,37 @@
+##
+## $Id$
+##
+
+MANAGERS = all
+
+rtems_tests_PROGRAMS = imfs_fspatheval
+imfs_fspatheval_SOURCES = ../fspatheval/test.c
+imfs_fspatheval_SOURCES += ../support/fstest_support.c
+imfs_fspatheval_SOURCES += ../support/fstest_support.h
+imfs_fspatheval_SOURCES += ../support/fstest.h
+imfs_fspatheval_SOURCES += ../../psxtests/include/pmacros.h
+imfs_fspatheval_SOURCES += ../imfs_support/fs_support.c
+imfs_fspatheval_SOURCES += ../imfs_support/fs_config.h
+
+#dist_rtems_tests_DATA = imfs_fspatheval.scn
+#dist_rtems_tests_DATA += imfs_fspatheval.doc
+
+include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
+include $(top_srcdir)/../automake/compile.am
+include $(top_srcdir)/../automake/leaf.am
+
+imfs_fspatheval_LDADD = $(MANAGERS_NOT_WANTED:%=$(PROJECT_LIB)/no-%.rel)
+
+AM_CPPFLAGS += -I$(top_srcdir)/support
+AM_CPPFLAGS += -I$(top_srcdir)/imfs_support
+AM_CPPFLAGS += -I$(top_srcdir)/../support/include
+AM_CPPFLAGS += -I$(top_srcdir)/../psxtests/include
+
+LINK_OBJS = $(imfs_fspatheval_OBJECTS) $(imfs_fspatheval_LDADD)
+LINK_LIBS = $(imfs_fspatheval_LDLIBS)
+
+imfs_fspatheval$(EXEEXT): $(imfs_fspatheval_OBJECTS) $(imfs_fspatheval_DEPENDENCIES)
+ @rm -f imfs_fspatheval$(EXEEXT)
+ $(make-exe)
+
+include $(top_srcdir)/../automake/local.am
diff --git a/testsuites/fstests/imfs_fspermission/.cvsignore b/testsuites/fstests/imfs_fspermission/.cvsignore
new file mode 100644
index 0000000000..282522db03
--- /dev/null
+++ b/testsuites/fstests/imfs_fspermission/.cvsignore
@@ -0,0 +1,2 @@
+Makefile
+Makefile.in
diff --git a/testsuites/fstests/imfs_fspermission/Makefile.am b/testsuites/fstests/imfs_fspermission/Makefile.am
new file mode 100644
index 0000000000..b2d78bcdf4
--- /dev/null
+++ b/testsuites/fstests/imfs_fspermission/Makefile.am
@@ -0,0 +1,37 @@
+##
+## $Id$
+##
+
+MANAGERS = all
+
+rtems_tests_PROGRAMS = imfs_fspermission
+imfs_fspermission_SOURCES = ../fspermission/test.c
+imfs_fspermission_SOURCES += ../support/fstest_support.c
+imfs_fspermission_SOURCES += ../support/fstest_support.h
+imfs_fspermission_SOURCES += ../support/fstest.h
+imfs_fspermission_SOURCES += ../../psxtests/include/pmacros.h
+imfs_fspermission_SOURCES += ../imfs_support/fs_support.c
+imfs_fspermission_SOURCES += ../imfs_support/fs_config.h
+
+#dist_rtems_tests_DATA = imfs_fspermission.scn
+#dist_rtems_tests_DATA += imfs_fspermission.doc
+
+include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
+include $(top_srcdir)/../automake/compile.am
+include $(top_srcdir)/../automake/leaf.am
+
+imfs_fspermission_LDADD = $(MANAGERS_NOT_WANTED:%=$(PROJECT_LIB)/no-%.rel)
+
+AM_CPPFLAGS += -I$(top_srcdir)/support
+AM_CPPFLAGS += -I$(top_srcdir)/imfs_support
+AM_CPPFLAGS += -I$(top_srcdir)/../support/include
+AM_CPPFLAGS += -I$(top_srcdir)/../psxtests/include
+
+LINK_OBJS = $(imfs_fspermission_OBJECTS) $(imfs_fspermission_LDADD)
+LINK_LIBS = $(imfs_fspermission_LDLIBS)
+
+imfs_fspermission$(EXEEXT): $(imfs_fspermission_OBJECTS) $(imfs_fspermission_DEPENDENCIES)
+ @rm -f imfs_fspermission$(EXEEXT)
+ $(make-exe)
+
+include $(top_srcdir)/../automake/local.am
diff --git a/testsuites/fstests/imfs_fsrdwr/.cvsignore b/testsuites/fstests/imfs_fsrdwr/.cvsignore
new file mode 100644
index 0000000000..282522db03
--- /dev/null
+++ b/testsuites/fstests/imfs_fsrdwr/.cvsignore
@@ -0,0 +1,2 @@
+Makefile
+Makefile.in
diff --git a/testsuites/fstests/imfs_fsrdwr/Makefile.am b/testsuites/fstests/imfs_fsrdwr/Makefile.am
new file mode 100644
index 0000000000..d43be1f95c
--- /dev/null
+++ b/testsuites/fstests/imfs_fsrdwr/Makefile.am
@@ -0,0 +1,37 @@
+##
+## $Id$
+##
+
+MANAGERS = all
+
+rtems_tests_PROGRAMS = imfs_fsrdwr
+imfs_fsrdwr_SOURCES = ../fsrdwr/init.c
+imfs_fsrdwr_SOURCES += ../support/fstest_support.c
+imfs_fsrdwr_SOURCES += ../support/fstest_support.h
+imfs_fsrdwr_SOURCES += ../support/fstest.h
+imfs_fsrdwr_SOURCES += ../../psxtests/include/pmacros.h
+imfs_fsrdwr_SOURCES += ../imfs_support/fs_support.c
+imfs_fsrdwr_SOURCES += ../imfs_support/fs_config.h
+
+#dist_rtems_tests_DATA = imfs_fsrdwr.scn
+#dist_rtems_tests_DATA += imfs_fsrdwr.doc
+
+include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
+include $(top_srcdir)/../automake/compile.am
+include $(top_srcdir)/../automake/leaf.am
+
+imfs_fsrdwr_LDADD = $(MANAGERS_NOT_WANTED:%=$(PROJECT_LIB)/no-%.rel)
+
+AM_CPPFLAGS += -I$(top_srcdir)/support
+AM_CPPFLAGS += -I$(top_srcdir)/imfs_support
+AM_CPPFLAGS += -I$(top_srcdir)/../support/include
+AM_CPPFLAGS += -I$(top_srcdir)/../psxtests/include
+
+LINK_OBJS = $(imfs_fsrdwr_OBJECTS) $(imfs_fsrdwr_LDADD)
+LINK_LIBS = $(imfs_fsrdwr_LDLIBS)
+
+imfs_fsrdwr$(EXEEXT): $(imfs_fsrdwr_OBJECTS) $(imfs_fsrdwr_DEPENDENCIES)
+ @rm -f imfs_fsrdwr$(EXEEXT)
+ $(make-exe)
+
+include $(top_srcdir)/../automake/local.am
diff --git a/testsuites/fstests/imfs_fssymlink/.cvsignore b/testsuites/fstests/imfs_fssymlink/.cvsignore
new file mode 100644
index 0000000000..282522db03
--- /dev/null
+++ b/testsuites/fstests/imfs_fssymlink/.cvsignore
@@ -0,0 +1,2 @@
+Makefile
+Makefile.in
diff --git a/testsuites/fstests/imfs_fssymlink/Makefile.am b/testsuites/fstests/imfs_fssymlink/Makefile.am
index fcdee7e86a..4447ff6b3b 100644
--- a/testsuites/fstests/imfs_fssymlink/Makefile.am
+++ b/testsuites/fstests/imfs_fssymlink/Makefile.am
@@ -5,10 +5,13 @@
MANAGERS = all
rtems_tests_PROGRAMS = imfs_fssymlink
-imfs_fssymlink_SOURCES = ../fssymlink/test.c ../support/fstest_support.c\
- ../support/fstest_support.h ../support/fstest.h ../../psxtests/include/pmacros.h \
- ../imfs_support/fs_support.c ../imfs_support/fs_config.h
-
+imfs_fssymlink_SOURCES = ../fssymlink/test.c
+imfs_fssymlink_SOURCES += ../support/fstest_support.c
+imfs_fssymlink_SOURCES += ../support/fstest_support.h
+imfs_fssymlink_SOURCES += ../support/fstest.h
+imfs_fssymlink_SOURCES += ../../psxtests/include/pmacros.h
+imfs_fssymlink_SOURCES += ../imfs_support/fs_support.c
+imfs_fssymlink_SOURCES += ../imfs_support/fs_config.h
#dist_rtems_tests_DATA = imfs_fssymlink.scn
#dist_rtems_tests_DATA += imfs_fssymlink.doc
diff --git a/testsuites/fstests/imfs_fstime/.cvsignore b/testsuites/fstests/imfs_fstime/.cvsignore
new file mode 100644
index 0000000000..282522db03
--- /dev/null
+++ b/testsuites/fstests/imfs_fstime/.cvsignore
@@ -0,0 +1,2 @@
+Makefile
+Makefile.in
diff --git a/testsuites/fstests/imfs_fstime/Makefile.am b/testsuites/fstests/imfs_fstime/Makefile.am
new file mode 100644
index 0000000000..fbac732f75
--- /dev/null
+++ b/testsuites/fstests/imfs_fstime/Makefile.am
@@ -0,0 +1,37 @@
+##
+## $Id$
+##
+
+MANAGERS = all
+
+rtems_tests_PROGRAMS = imfs_fstime
+imfs_fstime_SOURCES = ../fstime/test.c
+imfs_fstime_SOURCES += ../support/fstest_support.c
+imfs_fstime_SOURCES += ../support/fstest_support.h
+imfs_fstime_SOURCES += ../support/fstest.h
+imfs_fstime_SOURCES += ../../psxtests/include/pmacros.h
+imfs_fstime_SOURCES += ../imfs_support/fs_support.c
+imfs_fstime_SOURCES += ../imfs_support/fs_config.h
+
+#dist_rtems_tests_DATA = imfs_fstime.scn
+#dist_rtems_tests_DATA += imfs_fstime.doc
+
+include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
+include $(top_srcdir)/../automake/compile.am
+include $(top_srcdir)/../automake/leaf.am
+
+imfs_fstime_LDADD = $(MANAGERS_NOT_WANTED:%=$(PROJECT_LIB)/no-%.rel)
+
+AM_CPPFLAGS += -I$(top_srcdir)/support
+AM_CPPFLAGS += -I$(top_srcdir)/imfs_support
+AM_CPPFLAGS += -I$(top_srcdir)/../support/include
+AM_CPPFLAGS += -I$(top_srcdir)/../psxtests/include
+
+LINK_OBJS = $(imfs_fstime_OBJECTS) $(imfs_fstime_LDADD)
+LINK_LIBS = $(imfs_fstime_LDLIBS)
+
+imfs_fstime$(EXEEXT): $(imfs_fstime_OBJECTS) $(imfs_fstime_DEPENDENCIES)
+ @rm -f imfs_fstime$(EXEEXT)
+ $(make-exe)
+
+include $(top_srcdir)/../automake/local.am
diff --git a/testsuites/fstests/imfs_support/fs_supprot.h b/testsuites/fstests/imfs_support/fs_supprot.h
new file mode 100644
index 0000000000..a4d1915ea3
--- /dev/null
+++ b/testsuites/fstests/imfs_support/fs_supprot.h
@@ -0,0 +1,40 @@
+/*
+ * COPYRIGHT (c) 1989-2011.
+ * 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 Exp $
+ */
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+#include "pmacros.h"
+
+#include "fs_config.h"
+
+void test_initialize_filesystem(void)
+{
+ int rc=0;
+ rc=mkdir(BASE_FOR_TEST,0777);
+ rtems_test_assert(rc==0);
+}
+
+void test_shutdown_filesystem(void)
+{
+}
+/* configuration information */
+#define CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
+#define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
+
+#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
+
+#define CONFIGURE_MAXIMUM_TASKS 1
+#define CONFIGURE_USE_IMFS_AS_BASE_FILESYSTEM
+#define CONFIGURE_LIBIO_MAXIMUM_FILE_DESCRIPTORS 40
+
+#define CONFIGURE_INIT
+
+#include <rtems/confdefs.h>
diff --git a/testsuites/fstests/mdosfs_fserror/.cvsignore b/testsuites/fstests/mdosfs_fserror/.cvsignore
new file mode 100644
index 0000000000..282522db03
--- /dev/null
+++ b/testsuites/fstests/mdosfs_fserror/.cvsignore
@@ -0,0 +1,2 @@
+Makefile
+Makefile.in
diff --git a/testsuites/fstests/mdosfs_fserror/Makefile.am b/testsuites/fstests/mdosfs_fserror/Makefile.am
new file mode 100644
index 0000000000..177c57cd2e
--- /dev/null
+++ b/testsuites/fstests/mdosfs_fserror/Makefile.am
@@ -0,0 +1,39 @@
+##
+## $Id$
+##
+
+MANAGERS = all
+
+rtems_tests_PROGRAMS = mdosfs_fserror
+mdosfs_fserror_SOURCES = ../fserror/test.c
+mdosfs_fserror_SOURCES += ../support/ramdisk_support.c
+mdosfs_fserror_SOURCES += ../support/fstest_support.c
+mdosfs_fserror_SOURCES += ../support/fstest_support.h
+mdosfs_fserror_SOURCES += ../support/ramdisk_support.h
+mdosfs_fserror_SOURCES += ../support/fstest.h
+mdosfs_fserror_SOURCES += ../../psxtests/include/pmacros.h
+mdosfs_fserror_SOURCES += ../mdosfs_support/fs_support.c
+mdosfs_fserror_SOURCES += ../mdosfs_support/fs_config.h
+
+#dist_rtems_tests_DATA = mdosfs_fserror.scn
+#dist_rtems_tests_DATA += mdosfs_fserror.doc
+
+include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
+include $(top_srcdir)/../automake/compile.am
+include $(top_srcdir)/../automake/leaf.am
+
+mdosfs_fserror_LDADD = $(MANAGERS_NOT_WANTED:%=$(PROJECT_LIB)/no-%.rel)
+
+AM_CPPFLAGS += -I$(top_srcdir)/support
+AM_CPPFLAGS += -I$(top_srcdir)/mdosfs_support
+AM_CPPFLAGS += -I$(top_srcdir)/../support/include
+AM_CPPFLAGS += -I$(top_srcdir)/../psxtests/include
+
+LINK_OBJS = $(mdosfs_fserror_OBJECTS) $(mdosfs_fserror_LDADD)
+LINK_LIBS = $(mdosfs_fserror_LDLIBS)
+
+mdosfs_fserror$(EXEEXT): $(mdosfs_fserror_OBJECTS) $(mdosfs_fserror_DEPENDENCIES)
+ @rm -f mdosfs_fserror$(EXEEXT)
+ $(make-exe)
+
+include $(top_srcdir)/../automake/local.am
diff --git a/testsuites/fstests/mdosfs_fspatheval/.cvsignore b/testsuites/fstests/mdosfs_fspatheval/.cvsignore
new file mode 100644
index 0000000000..282522db03
--- /dev/null
+++ b/testsuites/fstests/mdosfs_fspatheval/.cvsignore
@@ -0,0 +1,2 @@
+Makefile
+Makefile.in
diff --git a/testsuites/fstests/mdosfs_fspatheval/Makefile.am b/testsuites/fstests/mdosfs_fspatheval/Makefile.am
new file mode 100644
index 0000000000..4e4d470156
--- /dev/null
+++ b/testsuites/fstests/mdosfs_fspatheval/Makefile.am
@@ -0,0 +1,39 @@
+##
+## $Id$
+##
+
+MANAGERS = all
+
+rtems_tests_PROGRAMS = mdosfs_fspatheval
+mdosfs_fspatheval_SOURCES = ../fspatheval/test.c
+mdosfs_fspatheval_SOURCES += ../support/ramdisk_support.c
+mdosfs_fspatheval_SOURCES += ../support/fstest_support.c
+mdosfs_fspatheval_SOURCES += ../support/fstest_support.h
+mdosfs_fspatheval_SOURCES += ../support/ramdisk_support.h
+mdosfs_fspatheval_SOURCES += ../support/fstest.h
+mdosfs_fspatheval_SOURCES += ../../psxtests/include/pmacros.h
+mdosfs_fspatheval_SOURCES += ../mdosfs_support/fs_support.c
+mdosfs_fspatheval_SOURCES += ../mdosfs_support/fs_config.h
+
+#dist_rtems_tests_DATA = mdosfs_fspatheval.scn
+#dist_rtems_tests_DATA += mdosfs_fspatheval.doc
+
+include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
+include $(top_srcdir)/../automake/compile.am
+include $(top_srcdir)/../automake/leaf.am
+
+mdosfs_fspatheval_LDADD = $(MANAGERS_NOT_WANTED:%=$(PROJECT_LIB)/no-%.rel)
+
+AM_CPPFLAGS += -I$(top_srcdir)/support
+AM_CPPFLAGS += -I$(top_srcdir)/mdosfs_support
+AM_CPPFLAGS += -I$(top_srcdir)/../support/include
+AM_CPPFLAGS += -I$(top_srcdir)/../psxtests/include
+
+LINK_OBJS = $(mdosfs_fspatheval_OBJECTS) $(mdosfs_fspatheval_LDADD)
+LINK_LIBS = $(mdosfs_fspatheval_LDLIBS)
+
+mdosfs_fspatheval$(EXEEXT): $(mdosfs_fspatheval_OBJECTS) $(mdosfs_fspatheval_DEPENDENCIES)
+ @rm -f mdosfs_fspatheval$(EXEEXT)
+ $(make-exe)
+
+include $(top_srcdir)/../automake/local.am
diff --git a/testsuites/fstests/mdosfs_fsrdwr/.cvsignore b/testsuites/fstests/mdosfs_fsrdwr/.cvsignore
new file mode 100644
index 0000000000..282522db03
--- /dev/null
+++ b/testsuites/fstests/mdosfs_fsrdwr/.cvsignore
@@ -0,0 +1,2 @@
+Makefile
+Makefile.in
diff --git a/testsuites/fstests/mdosfs_fsrdwr/Makefile.am b/testsuites/fstests/mdosfs_fsrdwr/Makefile.am
new file mode 100644
index 0000000000..b16e211d74
--- /dev/null
+++ b/testsuites/fstests/mdosfs_fsrdwr/Makefile.am
@@ -0,0 +1,39 @@
+##
+## $Id$
+##
+
+MANAGERS = all
+
+rtems_tests_PROGRAMS = mdosfs_fsrdwr
+mdosfs_fsrdwr_SOURCES = ../fsrdwr/init.c
+mdosfs_fsrdwr_SOURCES += ../support/ramdisk_support.c
+mdosfs_fsrdwr_SOURCES += ../support/fstest_support.c
+mdosfs_fsrdwr_SOURCES += ../support/fstest_support.h
+mdosfs_fsrdwr_SOURCES += ../support/ramdisk_support.h
+mdosfs_fsrdwr_SOURCES += ../support/fstest.h
+mdosfs_fsrdwr_SOURCES += ../../psxtests/include/pmacros.h
+mdosfs_fsrdwr_SOURCES += ../mdosfs_support/fs_support.c
+mdosfs_fsrdwr_SOURCES += ../mdosfs_support/fs_config.h
+
+#dist_rtems_tests_DATA = mdosfs_fsrdwr.scn
+#dist_rtems_tests_DATA += mdosfs_fsrdwr.doc
+
+include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
+include $(top_srcdir)/../automake/compile.am
+include $(top_srcdir)/../automake/leaf.am
+
+mdosfs_fsrdwr_LDADD = $(MANAGERS_NOT_WANTED:%=$(PROJECT_LIB)/no-%.rel)
+
+AM_CPPFLAGS += -I$(top_srcdir)/support
+AM_CPPFLAGS += -I$(top_srcdir)/mdosfs_support
+AM_CPPFLAGS += -I$(top_srcdir)/../support/include
+AM_CPPFLAGS += -I$(top_srcdir)/../psxtests/include
+
+LINK_OBJS = $(mdosfs_fsrdwr_OBJECTS) $(mdosfs_fsrdwr_LDADD)
+LINK_LIBS = $(mdosfs_fsrdwr_LDLIBS)
+
+mdosfs_fsrdwr$(EXEEXT): $(mdosfs_fsrdwr_OBJECTS) $(mdosfs_fsrdwr_DEPENDENCIES)
+ @rm -f mdosfs_fsrdwr$(EXEEXT)
+ $(make-exe)
+
+include $(top_srcdir)/../automake/local.am
diff --git a/testsuites/fstests/mdosfs_fstime/.cvsignore b/testsuites/fstests/mdosfs_fstime/.cvsignore
new file mode 100644
index 0000000000..282522db03
--- /dev/null
+++ b/testsuites/fstests/mdosfs_fstime/.cvsignore
@@ -0,0 +1,2 @@
+Makefile
+Makefile.in
diff --git a/testsuites/fstests/mdosfs_fstime/Makefile.am b/testsuites/fstests/mdosfs_fstime/Makefile.am
new file mode 100644
index 0000000000..7250a44a8f
--- /dev/null
+++ b/testsuites/fstests/mdosfs_fstime/Makefile.am
@@ -0,0 +1,39 @@
+##
+## $Id$
+##
+
+MANAGERS = all
+
+rtems_tests_PROGRAMS = mdosfs_fstime
+mdosfs_fstime_SOURCES = ../fstime/test.c
+mdosfs_fstime_SOURCES += ../support/ramdisk_support.c
+mdosfs_fstime_SOURCES += ../support/fstest_support.c
+mdosfs_fstime_SOURCES += ../support/fstest_support.h
+mdosfs_fstime_SOURCES += ../support/ramdisk_support.h
+mdosfs_fstime_SOURCES += ../support/fstest.h
+mdosfs_fstime_SOURCES += ../../psxtests/include/pmacros.h
+mdosfs_fstime_SOURCES += ../mdosfs_support/fs_support.c
+mdosfs_fstime_SOURCES += ../mdosfs_support/fs_config.h
+
+#dist_rtems_tests_DATA = mdosfs_fstime.scn
+#dist_rtems_tests_DATA += mdosfs_fstime.doc
+
+include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
+include $(top_srcdir)/../automake/compile.am
+include $(top_srcdir)/../automake/leaf.am
+
+mdosfs_fstime_LDADD = $(MANAGERS_NOT_WANTED:%=$(PROJECT_LIB)/no-%.rel)
+
+AM_CPPFLAGS += -I$(top_srcdir)/support
+AM_CPPFLAGS += -I$(top_srcdir)/mdosfs_support
+AM_CPPFLAGS += -I$(top_srcdir)/../support/include
+AM_CPPFLAGS += -I$(top_srcdir)/../psxtests/include
+
+LINK_OBJS = $(mdosfs_fstime_OBJECTS) $(mdosfs_fstime_LDADD)
+LINK_LIBS = $(mdosfs_fstime_LDLIBS)
+
+mdosfs_fstime$(EXEEXT): $(mdosfs_fstime_OBJECTS) $(mdosfs_fstime_DEPENDENCIES)
+ @rm -f mdosfs_fstime$(EXEEXT)
+ $(make-exe)
+
+include $(top_srcdir)/../automake/local.am
diff --git a/testsuites/fstests/mimfs_fserror/.cvsignore b/testsuites/fstests/mimfs_fserror/.cvsignore
new file mode 100644
index 0000000000..282522db03
--- /dev/null
+++ b/testsuites/fstests/mimfs_fserror/.cvsignore
@@ -0,0 +1,2 @@
+Makefile
+Makefile.in
diff --git a/testsuites/fstests/mimfs_fserror/Makefile.am b/testsuites/fstests/mimfs_fserror/Makefile.am
new file mode 100644
index 0000000000..b3ed8d7da7
--- /dev/null
+++ b/testsuites/fstests/mimfs_fserror/Makefile.am
@@ -0,0 +1,37 @@
+##
+## $Id$
+##
+
+MANAGERS = all
+
+rtems_tests_PROGRAMS = mimfs_fserror
+mimfs_fserror_SOURCES = ../fserror/test.c
+mimfs_fserror_SOURCES += ../support/fstest_support.c
+mimfs_fserror_SOURCES += ../support/fstest_support.h
+mimfs_fserror_SOURCES += ../support/fstest.h
+mimfs_fserror_SOURCES += ../../psxtests/include/pmacros.h
+mimfs_fserror_SOURCES += ../mimfs_support/fs_support.c
+mimfs_fserror_SOURCES += ../mimfs_support/fs_config.h
+
+#dist_rtems_tests_DATA = mimfs_fserror.scn
+#dist_rtems_tests_DATA += mimfs_fserror.doc
+
+include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
+include $(top_srcdir)/../automake/compile.am
+include $(top_srcdir)/../automake/leaf.am
+
+mimfs_fserror_LDADD = $(MANAGERS_NOT_WANTED:%=$(PROJECT_LIB)/no-%.rel)
+
+AM_CPPFLAGS += -I$(top_srcdir)/support
+AM_CPPFLAGS += -I$(top_srcdir)/mimfs_support
+AM_CPPFLAGS += -I$(top_srcdir)/../support/include
+AM_CPPFLAGS += -I$(top_srcdir)/../psxtests/include
+
+LINK_OBJS = $(mimfs_fserror_OBJECTS) $(mimfs_fserror_LDADD)
+LINK_LIBS = $(mimfs_fserror_LDLIBS)
+
+mimfs_fserror$(EXEEXT): $(mimfs_fserror_OBJECTS) $(mimfs_fserror_DEPENDENCIES)
+ @rm -f mimfs_fserror$(EXEEXT)
+ $(make-exe)
+
+include $(top_srcdir)/../automake/local.am
diff --git a/testsuites/fstests/mimfs_fslink/.cvsignore b/testsuites/fstests/mimfs_fslink/.cvsignore
new file mode 100644
index 0000000000..282522db03
--- /dev/null
+++ b/testsuites/fstests/mimfs_fslink/.cvsignore
@@ -0,0 +1,2 @@
+Makefile
+Makefile.in
diff --git a/testsuites/fstests/mimfs_fslink/Makefile.am b/testsuites/fstests/mimfs_fslink/Makefile.am
index ec734ca59e..da39769997 100644
--- a/testsuites/fstests/mimfs_fslink/Makefile.am
+++ b/testsuites/fstests/mimfs_fslink/Makefile.am
@@ -5,11 +5,13 @@
MANAGERS = all
rtems_tests_PROGRAMS = mimfs_fslink
-mimfs_fslink_SOURCES = ../fslink/test.c ../support/fstest_support.c\
- ../support/fstest_support.h ../support/fstest.h \
- ../../psxtests/include/pmacros.h \
- ../mimfs_support/fs_support.c ../mimfs_support/fs_config.h
-
+mimfs_fslink_SOURCES = ../fslink/test.c
+mimfs_fslink_SOURCES += ../support/fstest_support.c
+mimfs_fslink_SOURCES += ../support/fstest_support.h
+mimfs_fslink_SOURCES += ../support/fstest.h
+mimfs_fslink_SOURCES += ../../psxtests/include/pmacros.h
+mimfs_fslink_SOURCES += ../mimfs_support/fs_support.c
+mimfs_fslink_SOURCES += ../mimfs_support/fs_config.h
#dist_rtems_tests_DATA = mimfs_fslink.scn
#dist_rtems_tests_DATA += mimfs_fslink.doc
diff --git a/testsuites/fstests/mimfs_fspatheval/.cvsignore b/testsuites/fstests/mimfs_fspatheval/.cvsignore
new file mode 100644
index 0000000000..282522db03
--- /dev/null
+++ b/testsuites/fstests/mimfs_fspatheval/.cvsignore
@@ -0,0 +1,2 @@
+Makefile
+Makefile.in
diff --git a/testsuites/fstests/mimfs_fspatheval/Makefile.am b/testsuites/fstests/mimfs_fspatheval/Makefile.am
new file mode 100644
index 0000000000..39079723c2
--- /dev/null
+++ b/testsuites/fstests/mimfs_fspatheval/Makefile.am
@@ -0,0 +1,37 @@
+##
+## $Id$
+##
+
+MANAGERS = all
+
+rtems_tests_PROGRAMS = mimfs_fspatheval
+mimfs_fspatheval_SOURCES = ../fspatheval/test.c
+mimfs_fspatheval_SOURCES += ../support/fstest_support.c
+mimfs_fspatheval_SOURCES += ../support/fstest_support.h
+mimfs_fspatheval_SOURCES += ../support/fstest.h
+mimfs_fspatheval_SOURCES += ../../psxtests/include/pmacros.h
+mimfs_fspatheval_SOURCES += ../mimfs_support/fs_support.c
+mimfs_fspatheval_SOURCES += ../mimfs_support/fs_config.h
+
+#dist_rtems_tests_DATA = mimfs_fspatheval.scn
+#dist_rtems_tests_DATA += mimfs_fspatheval.doc
+
+include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
+include $(top_srcdir)/../automake/compile.am
+include $(top_srcdir)/../automake/leaf.am
+
+mimfs_fspatheval_LDADD = $(MANAGERS_NOT_WANTED:%=$(PROJECT_LIB)/no-%.rel)
+
+AM_CPPFLAGS += -I$(top_srcdir)/support
+AM_CPPFLAGS += -I$(top_srcdir)/mimfs_support
+AM_CPPFLAGS += -I$(top_srcdir)/../support/include
+AM_CPPFLAGS += -I$(top_srcdir)/../psxtests/include
+
+LINK_OBJS = $(mimfs_fspatheval_OBJECTS) $(mimfs_fspatheval_LDADD)
+LINK_LIBS = $(mimfs_fspatheval_LDLIBS)
+
+mimfs_fspatheval$(EXEEXT): $(mimfs_fspatheval_OBJECTS) $(mimfs_fspatheval_DEPENDENCIES)
+ @rm -f mimfs_fspatheval$(EXEEXT)
+ $(make-exe)
+
+include $(top_srcdir)/../automake/local.am
diff --git a/testsuites/fstests/mimfs_fspermission/.cvsignore b/testsuites/fstests/mimfs_fspermission/.cvsignore
new file mode 100644
index 0000000000..282522db03
--- /dev/null
+++ b/testsuites/fstests/mimfs_fspermission/.cvsignore
@@ -0,0 +1,2 @@
+Makefile
+Makefile.in
diff --git a/testsuites/fstests/mimfs_fspermission/Makefile.am b/testsuites/fstests/mimfs_fspermission/Makefile.am
new file mode 100644
index 0000000000..a39249778b
--- /dev/null
+++ b/testsuites/fstests/mimfs_fspermission/Makefile.am
@@ -0,0 +1,37 @@
+##
+## $Id$
+##
+
+MANAGERS = all
+
+rtems_tests_PROGRAMS = mimfs_fspermission
+mimfs_fspermission_SOURCES = ../fspermission/test.c
+mimfs_fspermission_SOURCES += ../support/fstest_support.c
+mimfs_fspermission_SOURCES += ../support/fstest_support.h
+mimfs_fspermission_SOURCES += ../support/fstest.h
+mimfs_fspermission_SOURCES += ../../psxtests/include/pmacros.h
+mimfs_fspermission_SOURCES += ../mimfs_support/fs_support.c
+mimfs_fspermission_SOURCES += ../mimfs_support/fs_config.h
+
+#dist_rtems_tests_DATA = mimfs_fspermission.scn
+#dist_rtems_tests_DATA += mimfs_fspermission.doc
+
+include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
+include $(top_srcdir)/../automake/compile.am
+include $(top_srcdir)/../automake/leaf.am
+
+mimfs_fspermission_LDADD = $(MANAGERS_NOT_WANTED:%=$(PROJECT_LIB)/no-%.rel)
+
+AM_CPPFLAGS += -I$(top_srcdir)/support
+AM_CPPFLAGS += -I$(top_srcdir)/mimfs_support
+AM_CPPFLAGS += -I$(top_srcdir)/../support/include
+AM_CPPFLAGS += -I$(top_srcdir)/../psxtests/include
+
+LINK_OBJS = $(mimfs_fspermission_OBJECTS) $(mimfs_fspermission_LDADD)
+LINK_LIBS = $(mimfs_fspermission_LDLIBS)
+
+mimfs_fspermission$(EXEEXT): $(mimfs_fspermission_OBJECTS) $(mimfs_fspermission_DEPENDENCIES)
+ @rm -f mimfs_fspermission$(EXEEXT)
+ $(make-exe)
+
+include $(top_srcdir)/../automake/local.am
diff --git a/testsuites/fstests/mimfs_fsrdwr/.cvsignore b/testsuites/fstests/mimfs_fsrdwr/.cvsignore
new file mode 100644
index 0000000000..282522db03
--- /dev/null
+++ b/testsuites/fstests/mimfs_fsrdwr/.cvsignore
@@ -0,0 +1,2 @@
+Makefile
+Makefile.in
diff --git a/testsuites/fstests/mimfs_fsrdwr/Makefile.am b/testsuites/fstests/mimfs_fsrdwr/Makefile.am
new file mode 100644
index 0000000000..30c74349b4
--- /dev/null
+++ b/testsuites/fstests/mimfs_fsrdwr/Makefile.am
@@ -0,0 +1,37 @@
+##
+## $Id$
+##
+
+MANAGERS = all
+
+rtems_tests_PROGRAMS = mimfs_fsrdwr
+mimfs_fsrdwr_SOURCES = ../fsrdwr/init.c
+mimfs_fsrdwr_SOURCES += ../support/fstest_support.c
+mimfs_fsrdwr_SOURCES += ../support/fstest_support.h
+mimfs_fsrdwr_SOURCES += ../support/fstest.h
+mimfs_fsrdwr_SOURCES += ../../psxtests/include/pmacros.h
+mimfs_fsrdwr_SOURCES += ../mimfs_support/fs_support.c
+mimfs_fsrdwr_SOURCES += ../mimfs_support/fs_config.h
+
+#dist_rtems_tests_DATA = mimfs_fsrdwr.scn
+#dist_rtems_tests_DATA += mimfs_fsrdwr.doc
+
+include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
+include $(top_srcdir)/../automake/compile.am
+include $(top_srcdir)/../automake/leaf.am
+
+mimfs_fsrdwr_LDADD = $(MANAGERS_NOT_WANTED:%=$(PROJECT_LIB)/no-%.rel)
+
+AM_CPPFLAGS += -I$(top_srcdir)/support
+AM_CPPFLAGS += -I$(top_srcdir)/mimfs_support
+AM_CPPFLAGS += -I$(top_srcdir)/../support/include
+AM_CPPFLAGS += -I$(top_srcdir)/../psxtests/include
+
+LINK_OBJS = $(mimfs_fsrdwr_OBJECTS) $(mimfs_fsrdwr_LDADD)
+LINK_LIBS = $(mimfs_fsrdwr_LDLIBS)
+
+mimfs_fsrdwr$(EXEEXT): $(mimfs_fsrdwr_OBJECTS) $(mimfs_fsrdwr_DEPENDENCIES)
+ @rm -f mimfs_fsrdwr$(EXEEXT)
+ $(make-exe)
+
+include $(top_srcdir)/../automake/local.am
diff --git a/testsuites/fstests/mimfs_fssymlink/.cvsignore b/testsuites/fstests/mimfs_fssymlink/.cvsignore
new file mode 100644
index 0000000000..282522db03
--- /dev/null
+++ b/testsuites/fstests/mimfs_fssymlink/.cvsignore
@@ -0,0 +1,2 @@
+Makefile
+Makefile.in
diff --git a/testsuites/fstests/mimfs_fssymlink/Makefile.am b/testsuites/fstests/mimfs_fssymlink/Makefile.am
index 4561015154..9267d05a5c 100644
--- a/testsuites/fstests/mimfs_fssymlink/Makefile.am
+++ b/testsuites/fstests/mimfs_fssymlink/Makefile.am
@@ -5,10 +5,13 @@
MANAGERS = all
rtems_tests_PROGRAMS = mimfs_fssymlink
-mimfs_fssymlink_SOURCES = ../fssymlink/test.c ../support/fstest_support.c\
- ../support/fstest_support.h ../support/fstest.h ../../psxtests/include/pmacros.h \
- ../mimfs_support/fs_support.c ../mimfs_support/fs_config.h
-
+mimfs_fssymlink_SOURCES = ../fssymlink/test.c
+mimfs_fssymlink_SOURCES += ../support/fstest_support.c
+mimfs_fssymlink_SOURCES += ../support/fstest_support.h
+mimfs_fssymlink_SOURCES += ../support/fstest.h
+mimfs_fssymlink_SOURCES += ../../psxtests/include/pmacros.h
+mimfs_fssymlink_SOURCES += ../mimfs_support/fs_support.c
+mimfs_fssymlink_SOURCES += ../mimfs_support/fs_config.h
#dist_rtems_tests_DATA = mimfs_fssymlink.scn
#dist_rtems_tests_DATA += mimfs_fssymlink.doc
diff --git a/testsuites/fstests/mimfs_fstime/.cvsignore b/testsuites/fstests/mimfs_fstime/.cvsignore
new file mode 100644
index 0000000000..282522db03
--- /dev/null
+++ b/testsuites/fstests/mimfs_fstime/.cvsignore
@@ -0,0 +1,2 @@
+Makefile
+Makefile.in
diff --git a/testsuites/fstests/mimfs_fstime/Makefile.am b/testsuites/fstests/mimfs_fstime/Makefile.am
new file mode 100644
index 0000000000..7ca44d736a
--- /dev/null
+++ b/testsuites/fstests/mimfs_fstime/Makefile.am
@@ -0,0 +1,37 @@
+##
+## $Id$
+##
+
+MANAGERS = all
+
+rtems_tests_PROGRAMS = mimfs_fstime
+mimfs_fstime_SOURCES = ../fstime/test.c
+mimfs_fstime_SOURCES += ../support/fstest_support.c
+mimfs_fstime_SOURCES += ../support/fstest_support.h
+mimfs_fstime_SOURCES += ../support/fstest.h
+mimfs_fstime_SOURCES += ../../psxtests/include/pmacros.h
+mimfs_fstime_SOURCES += ../mimfs_support/fs_support.c
+mimfs_fstime_SOURCES += ../mimfs_support/fs_config.h
+
+#dist_rtems_tests_DATA = mimfs_fstime.scn
+#dist_rtems_tests_DATA += mimfs_fstime.doc
+
+include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
+include $(top_srcdir)/../automake/compile.am
+include $(top_srcdir)/../automake/leaf.am
+
+mimfs_fstime_LDADD = $(MANAGERS_NOT_WANTED:%=$(PROJECT_LIB)/no-%.rel)
+
+AM_CPPFLAGS += -I$(top_srcdir)/support
+AM_CPPFLAGS += -I$(top_srcdir)/mimfs_support
+AM_CPPFLAGS += -I$(top_srcdir)/../support/include
+AM_CPPFLAGS += -I$(top_srcdir)/../psxtests/include
+
+LINK_OBJS = $(mimfs_fstime_OBJECTS) $(mimfs_fstime_LDADD)
+LINK_LIBS = $(mimfs_fstime_LDLIBS)
+
+mimfs_fstime$(EXEEXT): $(mimfs_fstime_OBJECTS) $(mimfs_fstime_DEPENDENCIES)
+ @rm -f mimfs_fstime$(EXEEXT)
+ $(make-exe)
+
+include $(top_srcdir)/../automake/local.am
diff --git a/testsuites/fstests/mrfs_fserror/.cvsignore b/testsuites/fstests/mrfs_fserror/.cvsignore
new file mode 100644
index 0000000000..282522db03
--- /dev/null
+++ b/testsuites/fstests/mrfs_fserror/.cvsignore
@@ -0,0 +1,2 @@
+Makefile
+Makefile.in
diff --git a/testsuites/fstests/mrfs_fserror/Makefile.am b/testsuites/fstests/mrfs_fserror/Makefile.am
new file mode 100644
index 0000000000..151c1a9448
--- /dev/null
+++ b/testsuites/fstests/mrfs_fserror/Makefile.am
@@ -0,0 +1,39 @@
+##
+## $Id$
+##
+
+MANAGERS = all
+
+rtems_tests_PROGRAMS = mrfs_fserror
+mrfs_fserror_SOURCES = ../fserror/test.c
+mrfs_fserror_SOURCES += ../support/ramdisk_support.c
+mrfs_fserror_SOURCES += ../support/fstest_support.c
+mrfs_fserror_SOURCES += ../support/fstest_support.h
+mrfs_fserror_SOURCES += ../support/ramdisk_support.h
+mrfs_fserror_SOURCES += ../support/fstest.h
+mrfs_fserror_SOURCES += ../../psxtests/include/pmacros.h
+mrfs_fserror_SOURCES += ../mrfs_support/fs_support.c
+mrfs_fserror_SOURCES += ../mrfs_support/fs_config.h
+
+#dist_rtems_tests_DATA = mrfs_fserror.scn
+#dist_rtems_tests_DATA += mrfs_fserror.doc
+
+include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
+include $(top_srcdir)/../automake/compile.am
+include $(top_srcdir)/../automake/leaf.am
+
+mrfs_fserror_LDADD = $(MANAGERS_NOT_WANTED:%=$(PROJECT_LIB)/no-%.rel)
+
+AM_CPPFLAGS += -I$(top_srcdir)/support
+AM_CPPFLAGS += -I$(top_srcdir)/mrfs_support
+AM_CPPFLAGS += -I$(top_srcdir)/../support/include
+AM_CPPFLAGS += -I$(top_srcdir)/../psxtests/include
+
+LINK_OBJS = $(mrfs_fserror_OBJECTS) $(mrfs_fserror_LDADD)
+LINK_LIBS = $(mrfs_fserror_LDLIBS)
+
+mrfs_fserror$(EXEEXT): $(mrfs_fserror_OBJECTS) $(mrfs_fserror_DEPENDENCIES)
+ @rm -f mrfs_fserror$(EXEEXT)
+ $(make-exe)
+
+include $(top_srcdir)/../automake/local.am
diff --git a/testsuites/fstests/mrfs_fslink/.cvsignore b/testsuites/fstests/mrfs_fslink/.cvsignore
new file mode 100644
index 0000000000..282522db03
--- /dev/null
+++ b/testsuites/fstests/mrfs_fslink/.cvsignore
@@ -0,0 +1,2 @@
+Makefile
+Makefile.in
diff --git a/testsuites/fstests/mrfs_fslink/Makefile.am b/testsuites/fstests/mrfs_fslink/Makefile.am
index 50269d20ee..889e1cb2ec 100644
--- a/testsuites/fstests/mrfs_fslink/Makefile.am
+++ b/testsuites/fstests/mrfs_fslink/Makefile.am
@@ -5,11 +5,15 @@
MANAGERS = all
rtems_tests_PROGRAMS = mrfs_fslink
-mrfs_fslink_SOURCES = ../fslink/test.c ../support/ramdisk_support.c\
- ../support/fstest_support.c ../support/fstest_support.h\
- ../support/ramdisk_support.h ../support/fstest.h ../../psxtests/include/pmacros.h \
- ../mrfs_support/fs_support.c ../mrfs_support/fs_config.h
-
+mrfs_fslink_SOURCES = ../fslink/test.c
+mrfs_fslink_SOURCES += ../support/ramdisk_support.c
+mrfs_fslink_SOURCES += ../support/fstest_support.c
+mrfs_fslink_SOURCES += ../support/fstest_support.h
+mrfs_fslink_SOURCES += ../support/ramdisk_support.h
+mrfs_fslink_SOURCES += ../support/fstest.h
+mrfs_fslink_SOURCES += ../../psxtests/include/pmacros.h
+mrfs_fslink_SOURCES += ../mrfs_support/fs_support.c
+mrfs_fslink_SOURCES += ../mrfs_support/fs_config.h
#dist_rtems_tests_DATA = mrfs_fslink.scn
#dist_rtems_tests_DATA += mrfs_fslink.doc
diff --git a/testsuites/fstests/mrfs_fspatheval/.cvsignore b/testsuites/fstests/mrfs_fspatheval/.cvsignore
new file mode 100644
index 0000000000..282522db03
--- /dev/null
+++ b/testsuites/fstests/mrfs_fspatheval/.cvsignore
@@ -0,0 +1,2 @@
+Makefile
+Makefile.in
diff --git a/testsuites/fstests/mrfs_fspatheval/Makefile.am b/testsuites/fstests/mrfs_fspatheval/Makefile.am
new file mode 100644
index 0000000000..a092f0e775
--- /dev/null
+++ b/testsuites/fstests/mrfs_fspatheval/Makefile.am
@@ -0,0 +1,39 @@
+##
+## $Id$
+##
+
+MANAGERS = all
+
+rtems_tests_PROGRAMS = mrfs_fspatheval
+mrfs_fspatheval_SOURCES = ../fspatheval/test.c
+mrfs_fspatheval_SOURCES += ../support/ramdisk_support.c
+mrfs_fspatheval_SOURCES += ../support/fstest_support.c
+mrfs_fspatheval_SOURCES += ../support/fstest_support.h
+mrfs_fspatheval_SOURCES += ../support/ramdisk_support.h
+mrfs_fspatheval_SOURCES += ../support/fstest.h
+mrfs_fspatheval_SOURCES += ../../psxtests/include/pmacros.h
+mrfs_fspatheval_SOURCES += ../mrfs_support/fs_support.c
+mrfs_fspatheval_SOURCES += ../mrfs_support/fs_config.h
+
+#dist_rtems_tests_DATA = mrfs_fspatheval.scn
+#dist_rtems_tests_DATA += mrfs_fspatheval.doc
+
+include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
+include $(top_srcdir)/../automake/compile.am
+include $(top_srcdir)/../automake/leaf.am
+
+mrfs_fspatheval_LDADD = $(MANAGERS_NOT_WANTED:%=$(PROJECT_LIB)/no-%.rel)
+
+AM_CPPFLAGS += -I$(top_srcdir)/support
+AM_CPPFLAGS += -I$(top_srcdir)/mrfs_support
+AM_CPPFLAGS += -I$(top_srcdir)/../support/include
+AM_CPPFLAGS += -I$(top_srcdir)/../psxtests/include
+
+LINK_OBJS = $(mrfs_fspatheval_OBJECTS) $(mrfs_fspatheval_LDADD)
+LINK_LIBS = $(mrfs_fspatheval_LDLIBS)
+
+mrfs_fspatheval$(EXEEXT): $(mrfs_fspatheval_OBJECTS) $(mrfs_fspatheval_DEPENDENCIES)
+ @rm -f mrfs_fspatheval$(EXEEXT)
+ $(make-exe)
+
+include $(top_srcdir)/../automake/local.am
diff --git a/testsuites/fstests/mrfs_fspermission/.cvsignore b/testsuites/fstests/mrfs_fspermission/.cvsignore
new file mode 100644
index 0000000000..282522db03
--- /dev/null
+++ b/testsuites/fstests/mrfs_fspermission/.cvsignore
@@ -0,0 +1,2 @@
+Makefile
+Makefile.in
diff --git a/testsuites/fstests/mrfs_fspermission/Makefile.am b/testsuites/fstests/mrfs_fspermission/Makefile.am
new file mode 100644
index 0000000000..6756ede50f
--- /dev/null
+++ b/testsuites/fstests/mrfs_fspermission/Makefile.am
@@ -0,0 +1,39 @@
+##
+## $Id$
+##
+
+MANAGERS = all
+
+rtems_tests_PROGRAMS = mrfs_fspermission
+mrfs_fspermission_SOURCES = ../fspermission/test.c
+mrfs_fspermission_SOURCES += ../support/ramdisk_support.c
+mrfs_fspermission_SOURCES += ../support/fstest_support.c
+mrfs_fspermission_SOURCES += ../support/fstest_support.h
+mrfs_fspermission_SOURCES += ../support/ramdisk_support.h
+mrfs_fspermission_SOURCES += ../support/fstest.h
+mrfs_fspermission_SOURCES += ../../psxtests/include/pmacros.h
+mrfs_fspermission_SOURCES += ../mrfs_support/fs_support.c
+mrfs_fspermission_SOURCES += ../mrfs_support/fs_config.h
+
+#dist_rtems_tests_DATA = mrfs_fspermission.scn
+#dist_rtems_tests_DATA += mrfs_fspermission.doc
+
+include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
+include $(top_srcdir)/../automake/compile.am
+include $(top_srcdir)/../automake/leaf.am
+
+mrfs_fspermission_LDADD = $(MANAGERS_NOT_WANTED:%=$(PROJECT_LIB)/no-%.rel)
+
+AM_CPPFLAGS += -I$(top_srcdir)/support
+AM_CPPFLAGS += -I$(top_srcdir)/mrfs_support
+AM_CPPFLAGS += -I$(top_srcdir)/../support/include
+AM_CPPFLAGS += -I$(top_srcdir)/../psxtests/include
+
+LINK_OBJS = $(mrfs_fspermission_OBJECTS) $(mrfs_fspermission_LDADD)
+LINK_LIBS = $(mrfs_fspermission_LDLIBS)
+
+mrfs_fspermission$(EXEEXT): $(mrfs_fspermission_OBJECTS) $(mrfs_fspermission_DEPENDENCIES)
+ @rm -f mrfs_fspermission$(EXEEXT)
+ $(make-exe)
+
+include $(top_srcdir)/../automake/local.am
diff --git a/testsuites/fstests/mrfs_fsrdwr/.cvsignore b/testsuites/fstests/mrfs_fsrdwr/.cvsignore
new file mode 100644
index 0000000000..282522db03
--- /dev/null
+++ b/testsuites/fstests/mrfs_fsrdwr/.cvsignore
@@ -0,0 +1,2 @@
+Makefile
+Makefile.in
diff --git a/testsuites/fstests/mrfs_fsrdwr/Makefile.am b/testsuites/fstests/mrfs_fsrdwr/Makefile.am
new file mode 100644
index 0000000000..165dd2316f
--- /dev/null
+++ b/testsuites/fstests/mrfs_fsrdwr/Makefile.am
@@ -0,0 +1,39 @@
+##
+## $Id$
+##
+
+MANAGERS = all
+
+rtems_tests_PROGRAMS = mrfs_fsrdwr
+mrfs_fsrdwr_SOURCES = ../fsrdwr/init.c
+mrfs_fsrdwr_SOURCES += ../support/ramdisk_support.c
+mrfs_fsrdwr_SOURCES += ../support/fstest_support.c
+mrfs_fsrdwr_SOURCES += ../support/fstest_support.h
+mrfs_fsrdwr_SOURCES += ../support/ramdisk_support.h
+mrfs_fsrdwr_SOURCES += ../support/fstest.h
+mrfs_fsrdwr_SOURCES += ../../psxtests/include/pmacros.h
+mrfs_fsrdwr_SOURCES += ../mrfs_support/fs_support.c
+mrfs_fsrdwr_SOURCES += ../mrfs_support/fs_config.h
+
+#dist_rtems_tests_DATA = mrfs_fsrdwr.scn
+#dist_rtems_tests_DATA += mrfs_fsrdwr.doc
+
+include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
+include $(top_srcdir)/../automake/compile.am
+include $(top_srcdir)/../automake/leaf.am
+
+mrfs_fsrdwr_LDADD = $(MANAGERS_NOT_WANTED:%=$(PROJECT_LIB)/no-%.rel)
+
+AM_CPPFLAGS += -I$(top_srcdir)/support
+AM_CPPFLAGS += -I$(top_srcdir)/mrfs_support
+AM_CPPFLAGS += -I$(top_srcdir)/../support/include
+AM_CPPFLAGS += -I$(top_srcdir)/../psxtests/include
+
+LINK_OBJS = $(mrfs_fsrdwr_OBJECTS) $(mrfs_fsrdwr_LDADD)
+LINK_LIBS = $(mrfs_fsrdwr_LDLIBS)
+
+mrfs_fsrdwr$(EXEEXT): $(mrfs_fsrdwr_OBJECTS) $(mrfs_fsrdwr_DEPENDENCIES)
+ @rm -f mrfs_fsrdwr$(EXEEXT)
+ $(make-exe)
+
+include $(top_srcdir)/../automake/local.am
diff --git a/testsuites/fstests/mrfs_fssymlink/.cvsignore b/testsuites/fstests/mrfs_fssymlink/.cvsignore
new file mode 100644
index 0000000000..282522db03
--- /dev/null
+++ b/testsuites/fstests/mrfs_fssymlink/.cvsignore
@@ -0,0 +1,2 @@
+Makefile
+Makefile.in
diff --git a/testsuites/fstests/mrfs_fssymlink/Makefile.am b/testsuites/fstests/mrfs_fssymlink/Makefile.am
index 586e7187ff..130bc41a5f 100644
--- a/testsuites/fstests/mrfs_fssymlink/Makefile.am
+++ b/testsuites/fstests/mrfs_fssymlink/Makefile.am
@@ -5,11 +5,15 @@
MANAGERS = all
rtems_tests_PROGRAMS = mrfs_fssymlink
-mrfs_fssymlink_SOURCES = ../fssymlink/test.c ../support/ramdisk_support.c\
- ../support/fstest_support.c ../support/fstest_support.h\
- ../support/ramdisk_support.h ../support/fstest.h ../../psxtests/include/pmacros.h \
- ../mrfs_support/fs_support.c ../mrfs_support/fs_config.h
-
+mrfs_fssymlink_SOURCES = ../fssymlink/test.c
+mrfs_fssymlink_SOURCES += ../support/ramdisk_support.c
+mrfs_fssymlink_SOURCES += ../support/fstest_support.c
+mrfs_fssymlink_SOURCES += ../support/fstest_support.h
+mrfs_fssymlink_SOURCES += ../support/ramdisk_support.h
+mrfs_fssymlink_SOURCES += ../support/fstest.h
+mrfs_fssymlink_SOURCES += ../../psxtests/include/pmacros.h
+mrfs_fssymlink_SOURCES += ../mrfs_support/fs_support.c
+mrfs_fssymlink_SOURCES += ../mrfs_support/fs_config.h
#dist_rtems_tests_DATA = mrfs_fssymlink.scn
#dist_rtems_tests_DATA += mrfs_fssymlink.doc
diff --git a/testsuites/fstests/mrfs_fstime/.cvsignore b/testsuites/fstests/mrfs_fstime/.cvsignore
new file mode 100644
index 0000000000..282522db03
--- /dev/null
+++ b/testsuites/fstests/mrfs_fstime/.cvsignore
@@ -0,0 +1,2 @@
+Makefile
+Makefile.in
diff --git a/testsuites/fstests/mrfs_fstime/Makefile.am b/testsuites/fstests/mrfs_fstime/Makefile.am
new file mode 100644
index 0000000000..2b664ef385
--- /dev/null
+++ b/testsuites/fstests/mrfs_fstime/Makefile.am
@@ -0,0 +1,39 @@
+##
+## $Id$
+##
+
+MANAGERS = all
+
+rtems_tests_PROGRAMS = mrfs_fstime
+mrfs_fstime_SOURCES = ../fstime/test.c
+mrfs_fstime_SOURCES += ../support/ramdisk_support.c
+mrfs_fstime_SOURCES += ../support/fstest_support.c
+mrfs_fstime_SOURCES += ../support/fstest_support.h
+mrfs_fstime_SOURCES += ../support/ramdisk_support.h
+mrfs_fstime_SOURCES += ../support/fstest.h
+mrfs_fstime_SOURCES += ../../psxtests/include/pmacros.h
+mrfs_fstime_SOURCES += ../mrfs_support/fs_support.c
+mrfs_fstime_SOURCES += ../mrfs_support/fs_config.h
+
+#dist_rtems_tests_DATA = mrfs_fstime.scn
+#dist_rtems_tests_DATA += mrfs_fstime.doc
+
+include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
+include $(top_srcdir)/../automake/compile.am
+include $(top_srcdir)/../automake/leaf.am
+
+mrfs_fstime_LDADD = $(MANAGERS_NOT_WANTED:%=$(PROJECT_LIB)/no-%.rel)
+
+AM_CPPFLAGS += -I$(top_srcdir)/support
+AM_CPPFLAGS += -I$(top_srcdir)/mrfs_support
+AM_CPPFLAGS += -I$(top_srcdir)/../support/include
+AM_CPPFLAGS += -I$(top_srcdir)/../psxtests/include
+
+LINK_OBJS = $(mrfs_fstime_OBJECTS) $(mrfs_fstime_LDADD)
+LINK_LIBS = $(mrfs_fstime_LDLIBS)
+
+mrfs_fstime$(EXEEXT): $(mrfs_fstime_OBJECTS) $(mrfs_fstime_DEPENDENCIES)
+ @rm -f mrfs_fstime$(EXEEXT)
+ $(make-exe)
+
+include $(top_srcdir)/../automake/local.am