summaryrefslogtreecommitdiffstats
path: root/testsuites/fstests
diff options
context:
space:
mode:
authorJoel Sherrill <joel.sherrill@OARcorp.com>2011-08-01 14:29:54 +0000
committerJoel Sherrill <joel.sherrill@OARcorp.com>2011-08-01 14:29:54 +0000
commit7336d4af629928eb8549d8d817fc76c1124188d9 (patch)
tree7f0603745cc7e78a6b0f7238ab32b6294e681a4f /testsuites/fstests
parent2011-08-01 Jennifer Averett <Jennifer.Averett@OARcorp.com> (diff)
downloadrtems-7336d4af629928eb8549d8d817fc76c1124188d9.tar.bz2
2011-08-01 Xiang Cui <medivhc@gmail.com>
* Makefile.am, configure.ac, imfs_support/fs_config.h, imfs_support/fs_support.c, mimfs_support/fs_config.h, mimfs_support/fs_support.c: Add initial version of new filesystem tests. There are multiple failures which need to be addressed by the community. * fsfchx/fsfchx.doc, fsfchx/init.c, fsfile01/fsfile01.doc, fsfile01/test.c, fsfile01/test_cat.c, fsfile01/test_extend.c, fsfile01/test_write.c, fsfile02/fsfile02.doc, fsfile02/init.c, fsfstest/fs-test.c, fsfstest/fsfstest.doc, fsimfs01/fsimfs01.doc, fsimfs01/init.c, fsimfs02/fsimfs02.doc, fsimfs02/init.c, fslink/fslink.doc, fslink/test.c, fsmkdir/fsmkdir.doc, fsmkdir/test.c, fsopen/fsopen.doc, fsopen/test.c, fsrdwrv/fsrdwrv.doc, fsrdwrv/test.c, fsreaddir/fsreaddir.doc, fsreaddir/test.c, fsrename/fsrename.doc, fsrename/test.c, fsrmdir/test.c, fsrwfile/fsrwfile.doc, fsrwfile/init.c, fsstat/fsstat.doc, fsstat/test.c, fssymlink/fssymlink.doc, fssymlink/test.c, fstruncate/fstruncate.doc, fstruncate/test.c, imfs_fsfchx/.cvsignore, imfs_fsfchx/Makefile.am, imfs_fsfile01/.cvsignore, imfs_fsfile01/Makefile.am, imfs_fsfile02/.cvsignore, imfs_fsfile02/Makefile.am, imfs_fsfstest/.cvsignore, imfs_fsfstest/Makefile.am, imfs_fsimfs01/.cvsignore, imfs_fsimfs01/Makefile.am, imfs_fsimfs02/.cvsignore, imfs_fsimfs02/Makefile.am, imfs_fslink/.cvsignore, imfs_fslink/Makefile.am, imfs_fsmkdir/.cvsignore, imfs_fsmkdir/Makefile.am, imfs_fsopen/.cvsignore, imfs_fsopen/Makefile.am, imfs_fsrdwrv/.cvsignore, imfs_fsrdwrv/Makefile.am, imfs_fsreaddir/.cvsignore, imfs_fsreaddir/Makefile.am, imfs_fsrename/.cvsignore, imfs_fsrename/Makefile.am, imfs_fsrmdir/.cvsignore, imfs_fsrmdir/Makefile.am, imfs_fsrwfile/.cvsignore, imfs_fsrwfile/Makefile.am, imfs_fsstat/.cvsignore, imfs_fsstat/Makefile.am, imfs_fssymlink/.cvsignore, imfs_fssymlink/Makefile.am, imfs_fstruncate/.cvsignore, imfs_fstruncate/Makefile.am, mdosfs_fsfchx/.cvsignore, mdosfs_fsfchx/Makefile.am, mdosfs_fsfile01/.cvsignore, mdosfs_fsfile01/Makefile.am, mdosfs_fsfile02/.cvsignore, mdosfs_fsfile02/Makefile.am, mdosfs_fsfstest/.cvsignore, mdosfs_fsfstest/Makefile.am, mdosfs_fsimfs01/.cvsignore, mdosfs_fsimfs01/Makefile.am, mdosfs_fsimfs02/.cvsignore, mdosfs_fsimfs02/Makefile.am, mdosfs_fslink/.cvsignore, mdosfs_fslink/Makefile.am, mdosfs_fsmkdir/.cvsignore, mdosfs_fsmkdir/Makefile.am, mdosfs_fsopen/.cvsignore, mdosfs_fsopen/Makefile.am, mdosfs_fsrdwrv/.cvsignore, mdosfs_fsrdwrv/Makefile.am, mdosfs_fsreaddir/.cvsignore, mdosfs_fsreaddir/Makefile.am, mdosfs_fsrename/.cvsignore, mdosfs_fsrename/Makefile.am, mdosfs_fsrmdir/.cvsignore, mdosfs_fsrmdir/Makefile.am, mdosfs_fsrwfile/.cvsignore, mdosfs_fsrwfile/Makefile.am, mdosfs_fsstat/.cvsignore, mdosfs_fsstat/Makefile.am, mdosfs_fssymlink/.cvsignore, mdosfs_fssymlink/Makefile.am, mdosfs_fstruncate/.cvsignore, mdosfs_fstruncate/Makefile.am, mdosfs_support/fs_config.h, mdosfs_support/fs_support.c, mimfs_fsfchx/.cvsignore, mimfs_fsfchx/Makefile.am, mimfs_fsfile01/.cvsignore, mimfs_fsfile01/Makefile.am, mimfs_fsfile02/.cvsignore, mimfs_fsfile02/Makefile.am, mimfs_fsfstest/.cvsignore, mimfs_fsfstest/Makefile.am, mimfs_fsimfs01/.cvsignore, mimfs_fsimfs01/Makefile.am, mimfs_fsimfs02/.cvsignore, mimfs_fsimfs02/Makefile.am, mimfs_fslink/.cvsignore, mimfs_fslink/Makefile.am, mimfs_fsmkdir/.cvsignore, mimfs_fsmkdir/Makefile.am, mimfs_fsopen/.cvsignore, mimfs_fsopen/Makefile.am, mimfs_fsrdwrv/.cvsignore, mimfs_fsrdwrv/Makefile.am, mimfs_fsreaddir/.cvsignore, mimfs_fsreaddir/Makefile.am, mimfs_fsrename/.cvsignore, mimfs_fsrename/Makefile.am, mimfs_fsrmdir/.cvsignore, mimfs_fsrmdir/Makefile.am, mimfs_fsrwfile/.cvsignore, mimfs_fsrwfile/Makefile.am, mimfs_fsstat/.cvsignore, mimfs_fsstat/Makefile.am, mimfs_fssymlink/.cvsignore, mimfs_fssymlink/Makefile.am, mimfs_fstruncate/.cvsignore, mimfs_fstruncate/Makefile.am, mrfs_fsfchx/.cvsignore, mrfs_fsfchx/Makefile.am, mrfs_fsfile01/.cvsignore, mrfs_fsfile01/Makefile.am, mrfs_fsfile02/.cvsignore, mrfs_fsfile02/Makefile.am, mrfs_fsfstest/.cvsignore, mrfs_fsfstest/Makefile.am, mrfs_fsimfs01/.cvsignore, mrfs_fsimfs01/Makefile.am, mrfs_fsimfs02/.cvsignore, mrfs_fsimfs02/Makefile.am, mrfs_fslink/.cvsignore, mrfs_fslink/Makefile.am, mrfs_fsmkdir/.cvsignore, mrfs_fsmkdir/Makefile.am, mrfs_fsopen/.cvsignore, mrfs_fsopen/Makefile.am, mrfs_fsrdwrv/.cvsignore, mrfs_fsrdwrv/Makefile.am, mrfs_fsreaddir/.cvsignore, mrfs_fsreaddir/Makefile.am, mrfs_fsrename/.cvsignore, mrfs_fsrename/Makefile.am, mrfs_fsrmdir/.cvsignore, mrfs_fsrmdir/Makefile.am, mrfs_fsrwfile/.cvsignore, mrfs_fsrwfile/Makefile.am, mrfs_fsstat/.cvsignore, mrfs_fsstat/Makefile.am, mrfs_fssymlink/.cvsignore, mrfs_fssymlink/Makefile.am, mrfs_fstruncate/.cvsignore, mrfs_fstruncate/Makefile.am, mrfs_support/fs_config.h, mrfs_support/fs_support.c, support/fstest.h, support/fstest_support.c, support/fstest_support.h, support/ramdisk_support.c, support/ramdisk_support.h: New files.
Diffstat (limited to 'testsuites/fstests')
-rw-r--r--testsuites/fstests/ChangeLog92
-rw-r--r--testsuites/fstests/Makefile.am77
-rw-r--r--testsuites/fstests/configure.ac73
-rw-r--r--testsuites/fstests/fslink/fslink.doc26
-rw-r--r--testsuites/fstests/fslink/test.c237
-rw-r--r--testsuites/fstests/fssymlink/fssymlink.doc22
-rw-r--r--testsuites/fstests/fssymlink/test.c138
-rw-r--r--testsuites/fstests/imfs_fslink/Makefile.am34
-rw-r--r--testsuites/fstests/imfs_fssymlink/Makefile.am34
-rw-r--r--testsuites/fstests/imfs_support/fs_config.h16
-rw-r--r--testsuites/fstests/imfs_support/fs_support.c23
-rw-r--r--testsuites/fstests/mdosfs_support/fs_config.h20
-rw-r--r--testsuites/fstests/mdosfs_support/fs_support.c92
-rw-r--r--testsuites/fstests/mimfs_fslink/Makefile.am35
-rw-r--r--testsuites/fstests/mimfs_fssymlink/Makefile.am35
-rw-r--r--testsuites/fstests/mimfs_support/fs_config.h14
-rw-r--r--testsuites/fstests/mimfs_support/fs_support.c70
-rw-r--r--testsuites/fstests/mrfs_fslink/Makefile.am35
-rw-r--r--testsuites/fstests/mrfs_fssymlink/Makefile.am35
-rw-r--r--testsuites/fstests/mrfs_support/fs_config.h21
-rw-r--r--testsuites/fstests/mrfs_support/fs_support.c85
-rw-r--r--testsuites/fstests/support/fstest.h23
-rw-r--r--testsuites/fstests/support/fstest_support.c98
-rw-r--r--testsuites/fstests/support/fstest_support.h33
-rw-r--r--testsuites/fstests/support/ramdisk_support.c46
-rw-r--r--testsuites/fstests/support/ramdisk_support.h26
26 files changed, 1411 insertions, 29 deletions
diff --git a/testsuites/fstests/ChangeLog b/testsuites/fstests/ChangeLog
index 4b016ae489..e633c61f9b 100644
--- a/testsuites/fstests/ChangeLog
+++ b/testsuites/fstests/ChangeLog
@@ -1,3 +1,95 @@
+2011-08-01 Xiang Cui <medivhc@gmail.com>
+
+ * Makefile.am, configure.ac, imfs_support/fs_config.h,
+ imfs_support/fs_support.c, mimfs_support/fs_config.h,
+ mimfs_support/fs_support.c: Add initial version of new filesystem
+ tests. There are multiple failures which need to be addressed by the
+ community.
+ * fsfchx/fsfchx.doc, fsfchx/init.c, fsfile01/fsfile01.doc,
+ fsfile01/test.c, fsfile01/test_cat.c, fsfile01/test_extend.c,
+ fsfile01/test_write.c, fsfile02/fsfile02.doc, fsfile02/init.c,
+ fsfstest/fs-test.c, fsfstest/fsfstest.doc, fsimfs01/fsimfs01.doc,
+ fsimfs01/init.c, fsimfs02/fsimfs02.doc, fsimfs02/init.c,
+ fslink/fslink.doc, fslink/test.c, fsmkdir/fsmkdir.doc,
+ fsmkdir/test.c, fsopen/fsopen.doc, fsopen/test.c,
+ fsrdwrv/fsrdwrv.doc, fsrdwrv/test.c, fsreaddir/fsreaddir.doc,
+ fsreaddir/test.c, fsrename/fsrename.doc, fsrename/test.c,
+ fsrmdir/test.c, fsrwfile/fsrwfile.doc, fsrwfile/init.c,
+ fsstat/fsstat.doc, fsstat/test.c, fssymlink/fssymlink.doc,
+ fssymlink/test.c, fstruncate/fstruncate.doc, fstruncate/test.c,
+ imfs_fsfchx/.cvsignore, imfs_fsfchx/Makefile.am,
+ imfs_fsfile01/.cvsignore, imfs_fsfile01/Makefile.am,
+ imfs_fsfile02/.cvsignore, imfs_fsfile02/Makefile.am,
+ imfs_fsfstest/.cvsignore, imfs_fsfstest/Makefile.am,
+ imfs_fsimfs01/.cvsignore, imfs_fsimfs01/Makefile.am,
+ imfs_fsimfs02/.cvsignore, imfs_fsimfs02/Makefile.am,
+ imfs_fslink/.cvsignore, imfs_fslink/Makefile.am,
+ imfs_fsmkdir/.cvsignore, imfs_fsmkdir/Makefile.am,
+ imfs_fsopen/.cvsignore, imfs_fsopen/Makefile.am,
+ imfs_fsrdwrv/.cvsignore, imfs_fsrdwrv/Makefile.am,
+ imfs_fsreaddir/.cvsignore, imfs_fsreaddir/Makefile.am,
+ imfs_fsrename/.cvsignore, imfs_fsrename/Makefile.am,
+ imfs_fsrmdir/.cvsignore, imfs_fsrmdir/Makefile.am,
+ imfs_fsrwfile/.cvsignore, imfs_fsrwfile/Makefile.am,
+ imfs_fsstat/.cvsignore, imfs_fsstat/Makefile.am,
+ imfs_fssymlink/.cvsignore, imfs_fssymlink/Makefile.am,
+ imfs_fstruncate/.cvsignore, imfs_fstruncate/Makefile.am,
+ mdosfs_fsfchx/.cvsignore, mdosfs_fsfchx/Makefile.am,
+ mdosfs_fsfile01/.cvsignore, mdosfs_fsfile01/Makefile.am,
+ mdosfs_fsfile02/.cvsignore, mdosfs_fsfile02/Makefile.am,
+ mdosfs_fsfstest/.cvsignore, mdosfs_fsfstest/Makefile.am,
+ mdosfs_fsimfs01/.cvsignore, mdosfs_fsimfs01/Makefile.am,
+ mdosfs_fsimfs02/.cvsignore, mdosfs_fsimfs02/Makefile.am,
+ mdosfs_fslink/.cvsignore, mdosfs_fslink/Makefile.am,
+ mdosfs_fsmkdir/.cvsignore, mdosfs_fsmkdir/Makefile.am,
+ mdosfs_fsopen/.cvsignore, mdosfs_fsopen/Makefile.am,
+ mdosfs_fsrdwrv/.cvsignore, mdosfs_fsrdwrv/Makefile.am,
+ mdosfs_fsreaddir/.cvsignore, mdosfs_fsreaddir/Makefile.am,
+ mdosfs_fsrename/.cvsignore, mdosfs_fsrename/Makefile.am,
+ mdosfs_fsrmdir/.cvsignore, mdosfs_fsrmdir/Makefile.am,
+ mdosfs_fsrwfile/.cvsignore, mdosfs_fsrwfile/Makefile.am,
+ mdosfs_fsstat/.cvsignore, mdosfs_fsstat/Makefile.am,
+ mdosfs_fssymlink/.cvsignore, mdosfs_fssymlink/Makefile.am,
+ mdosfs_fstruncate/.cvsignore, mdosfs_fstruncate/Makefile.am,
+ mdosfs_support/fs_config.h, mdosfs_support/fs_support.c,
+ mimfs_fsfchx/.cvsignore, mimfs_fsfchx/Makefile.am,
+ mimfs_fsfile01/.cvsignore, mimfs_fsfile01/Makefile.am,
+ mimfs_fsfile02/.cvsignore, mimfs_fsfile02/Makefile.am,
+ mimfs_fsfstest/.cvsignore, mimfs_fsfstest/Makefile.am,
+ mimfs_fsimfs01/.cvsignore, mimfs_fsimfs01/Makefile.am,
+ mimfs_fsimfs02/.cvsignore, mimfs_fsimfs02/Makefile.am,
+ mimfs_fslink/.cvsignore, mimfs_fslink/Makefile.am,
+ mimfs_fsmkdir/.cvsignore, mimfs_fsmkdir/Makefile.am,
+ mimfs_fsopen/.cvsignore, mimfs_fsopen/Makefile.am,
+ mimfs_fsrdwrv/.cvsignore, mimfs_fsrdwrv/Makefile.am,
+ mimfs_fsreaddir/.cvsignore, mimfs_fsreaddir/Makefile.am,
+ mimfs_fsrename/.cvsignore, mimfs_fsrename/Makefile.am,
+ mimfs_fsrmdir/.cvsignore, mimfs_fsrmdir/Makefile.am,
+ mimfs_fsrwfile/.cvsignore, mimfs_fsrwfile/Makefile.am,
+ mimfs_fsstat/.cvsignore, mimfs_fsstat/Makefile.am,
+ mimfs_fssymlink/.cvsignore, mimfs_fssymlink/Makefile.am,
+ mimfs_fstruncate/.cvsignore, mimfs_fstruncate/Makefile.am,
+ mrfs_fsfchx/.cvsignore, mrfs_fsfchx/Makefile.am,
+ mrfs_fsfile01/.cvsignore, mrfs_fsfile01/Makefile.am,
+ mrfs_fsfile02/.cvsignore, mrfs_fsfile02/Makefile.am,
+ mrfs_fsfstest/.cvsignore, mrfs_fsfstest/Makefile.am,
+ mrfs_fsimfs01/.cvsignore, mrfs_fsimfs01/Makefile.am,
+ mrfs_fsimfs02/.cvsignore, mrfs_fsimfs02/Makefile.am,
+ mrfs_fslink/.cvsignore, mrfs_fslink/Makefile.am,
+ mrfs_fsmkdir/.cvsignore, mrfs_fsmkdir/Makefile.am,
+ mrfs_fsopen/.cvsignore, mrfs_fsopen/Makefile.am,
+ mrfs_fsrdwrv/.cvsignore, mrfs_fsrdwrv/Makefile.am,
+ mrfs_fsreaddir/.cvsignore, mrfs_fsreaddir/Makefile.am,
+ mrfs_fsrename/.cvsignore, mrfs_fsrename/Makefile.am,
+ mrfs_fsrmdir/.cvsignore, mrfs_fsrmdir/Makefile.am,
+ mrfs_fsrwfile/.cvsignore, mrfs_fsrwfile/Makefile.am,
+ mrfs_fsstat/.cvsignore, mrfs_fsstat/Makefile.am,
+ mrfs_fssymlink/.cvsignore, mrfs_fssymlink/Makefile.am,
+ mrfs_fstruncate/.cvsignore, mrfs_fstruncate/Makefile.am,
+ mrfs_support/fs_config.h, mrfs_support/fs_support.c,
+ support/fstest.h, support/fstest_support.c, support/fstest_support.h,
+ support/ramdisk_support.c, support/ramdisk_support.h: New files.
+
2011-06-20 Ralf Corsépius <ralf.corsepius@rtems.org>
* Makefile.am: Remove EXTRA_DIST.
diff --git a/testsuites/fstests/Makefile.am b/testsuites/fstests/Makefile.am
index ccdb14179f..6d98b87e7f 100644
--- a/testsuites/fstests/Makefile.am
+++ b/testsuites/fstests/Makefile.am
@@ -4,9 +4,80 @@
ACLOCAL_AMFLAGS = -I ../aclocal
-SUBDIRS =
-SUBDIRS += imfs_fs01
-SUBDIRS += mimfs_fs01
+DIST_SUBDIRS = $(SUBDIRS) support
+EXTRA_DIST = support/ramdisk_support.c
+EXTRA_DIST += support/ramdisk_support.h
+EXTRA_DIST += support/fstest_support.c
+EXTRA_DIST += support/fstest_support.h
+
+SUBDIRS = imfs_fsfchx
+SUBDIRS += imfs_fsfile01
+SUBDIRS += imfs_fsfile02
+SUBDIRS += imfs_fsfstest
+SUBDIRS += imfs_fsimfs01
+SUBDIRS += imfs_fsimfs02
+SUBDIRS += imfs_fslink
+SUBDIRS += imfs_fsmkdir
+SUBDIRS += imfs_fsopen
+SUBDIRS += imfs_fsrdwrv
+SUBDIRS += imfs_fsreaddir
+SUBDIRS += imfs_fsrename
+SUBDIRS += imfs_fsrmdir
+SUBDIRS += imfs_fsrwfile
+SUBDIRS += imfs_fsstat
+SUBDIRS += imfs_fssymlink
+SUBDIRS += imfs_fstruncate
+SUBDIRS += mdosfs_fsfchx
+SUBDIRS += mdosfs_fsfile01
+SUBDIRS += mdosfs_fsfile02
+SUBDIRS += mdosfs_fsfstest
+SUBDIRS += mdosfs_fsimfs01
+SUBDIRS += mdosfs_fsimfs02
+SUBDIRS += mdosfs_fslink
+SUBDIRS += mdosfs_fsmkdir
+SUBDIRS += mdosfs_fsopen
+SUBDIRS += mdosfs_fsrdwrv
+SUBDIRS += mdosfs_fsreaddir
+SUBDIRS += mdosfs_fsrename
+SUBDIRS += mdosfs_fsrmdir
+SUBDIRS += mdosfs_fsrwfile
+SUBDIRS += mdosfs_fsstat
+SUBDIRS += mdosfs_fssymlink
+SUBDIRS += mdosfs_fstruncate
+SUBDIRS += mimfs_fsfchx
+SUBDIRS += mimfs_fsfile01
+SUBDIRS += mimfs_fsfile02
+SUBDIRS += mimfs_fsfstest
+SUBDIRS += mimfs_fsimfs01
+SUBDIRS += mimfs_fsimfs02
+SUBDIRS += mimfs_fslink
+SUBDIRS += mimfs_fsmkdir
+SUBDIRS += mimfs_fsopen
+SUBDIRS += mimfs_fsrdwrv
+SUBDIRS += mimfs_fsreaddir
+SUBDIRS += mimfs_fsrename
+SUBDIRS += mimfs_fsrmdir
+SUBDIRS += mimfs_fsrwfile
+SUBDIRS += mimfs_fsstat
+SUBDIRS += mimfs_fssymlink
+SUBDIRS += mimfs_fstruncate
+SUBDIRS += mrfs_fsfchx
+SUBDIRS += mrfs_fsfile01
+SUBDIRS += mrfs_fsfile02
+SUBDIRS += mrfs_fsfstest
+SUBDIRS += mrfs_fsimfs01
+SUBDIRS += mrfs_fsimfs02
+SUBDIRS += mrfs_fslink
+SUBDIRS += mrfs_fsmkdir
+SUBDIRS += mrfs_fsopen
+SUBDIRS += mrfs_fsrdwrv
+SUBDIRS += mrfs_fsreaddir
+SUBDIRS += mrfs_fsrename
+SUBDIRS += mrfs_fsrmdir
+SUBDIRS += mrfs_fsrwfile
+SUBDIRS += mrfs_fsstat
+SUBDIRS += mrfs_fssymlink
+SUBDIRS += mrfs_fstruncate
include $(top_srcdir)/../automake/subdirs.am
include $(top_srcdir)/../automake/local.am
diff --git a/testsuites/fstests/configure.ac b/testsuites/fstests/configure.ac
index 425e581187..fb50d02aa3 100644
--- a/testsuites/fstests/configure.ac
+++ b/testsuites/fstests/configure.ac
@@ -77,8 +77,75 @@ AC_CHECK_SIZEOF([blksize_t])
AC_CHECK_SIZEOF([blkcnt_t])
# Explicitly list all Makefiles here
-AC_CONFIG_FILES([Makefile
-imfs_fs01/Makefile
-mimfs_fs01/Makefile
+AC_CONFIG_FILES([Makefile
+imfs_fsfchx/Makefile
+imfs_fsfile01/Makefile
+imfs_fsfile02/Makefile
+imfs_fsfstest/Makefile
+imfs_fsimfs01/Makefile
+imfs_fsimfs02/Makefile
+imfs_fslink/Makefile
+imfs_fsmkdir/Makefile
+imfs_fsopen/Makefile
+imfs_fsrdwrv/Makefile
+imfs_fsreaddir/Makefile
+imfs_fsrename/Makefile
+imfs_fsrmdir/Makefile
+imfs_fsrwfile/Makefile
+imfs_fsstat/Makefile
+imfs_fssymlink/Makefile
+imfs_fstruncate/Makefile
+mdosfs_fsfchx/Makefile
+mdosfs_fsfile01/Makefile
+mdosfs_fsfile02/Makefile
+mdosfs_fsfstest/Makefile
+mdosfs_fsimfs01/Makefile
+mdosfs_fsimfs02/Makefile
+mdosfs_fslink/Makefile
+mdosfs_fsmkdir/Makefile
+mdosfs_fsopen/Makefile
+mdosfs_fsrdwrv/Makefile
+mdosfs_fsreaddir/Makefile
+mdosfs_fsrename/Makefile
+mdosfs_fsrmdir/Makefile
+mdosfs_fsrwfile/Makefile
+mdosfs_fsstat/Makefile
+mdosfs_fssymlink/Makefile
+mdosfs_fstruncate/Makefile
+mimfs_fsfchx/Makefile
+mimfs_fsfile01/Makefile
+mimfs_fsfile02/Makefile
+mimfs_fsfstest/Makefile
+mimfs_fsimfs01/Makefile
+mimfs_fsimfs02/Makefile
+mimfs_fslink/Makefile
+mimfs_fsmkdir/Makefile
+mimfs_fsopen/Makefile
+mimfs_fsrdwrv/Makefile
+mimfs_fsreaddir/Makefile
+mimfs_fsrename/Makefile
+mimfs_fsrmdir/Makefile
+mimfs_fsrwfile/Makefile
+mimfs_fsstat/Makefile
+mimfs_fssymlink/Makefile
+mimfs_fstruncate/Makefile
+mrfs_fsfchx/Makefile
+mrfs_fsfile01/Makefile
+mrfs_fsfile02/Makefile
+mrfs_fsfstest/Makefile
+mrfs_fsimfs01/Makefile
+mrfs_fsimfs02/Makefile
+mrfs_fslink/Makefile
+mrfs_fsmkdir/Makefile
+mrfs_fsopen/Makefile
+mrfs_fsrdwrv/Makefile
+mrfs_fsreaddir/Makefile
+mrfs_fsrename/Makefile
+mrfs_fsrmdir/Makefile
+mrfs_fsrwfile/Makefile
+mrfs_fsstat/Makefile
+mrfs_fssymlink/Makefile
+mrfs_fstruncate/Makefile
+
])
AC_OUTPUT
diff --git a/testsuites/fstests/fslink/fslink.doc b/testsuites/fstests/fslink/fslink.doc
new file mode 100644
index 0000000000..93b256c1f9
--- /dev/null
+++ b/testsuites/fstests/fslink/fslink.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: fslink
+
+directives:
+
++ link
++ chmod
++ chown
+
+
+concepts:
+
++ Exercise successful link operation
+
diff --git a/testsuites/fstests/fslink/test.c b/testsuites/fstests/fslink/test.c
new file mode 100644
index 0000000000..50ec89d48a
--- /dev/null
+++ b/testsuites/fstests/fslink/test.c
@@ -0,0 +1,237 @@
+
+/*
+ * 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 <unistd.h>
+#include <fcntl.h>
+#include <limits.h>
+#include <stdio.h>
+#include <unistd.h>
+#include <errno.h>
+#include <sys/stat.h>
+#include <time.h>
+#include <stdint.h>
+#include <math.h>
+
+#include "fstest.h"
+
+mode_t mode = 0644;
+/*
+ * Test if the successful call works as expect
+ */
+void link_test01(void )
+{
+ char *name0="t0";
+ char *name1="t1";
+ char *name2="t2";
+ char *name3="t3";
+
+ int status;
+ int fd;
+
+ struct stat statbuf;
+ mode_t tmp_mode;
+
+ time_t ctime1,dctime1,dmtime1;
+ time_t ctime2,dctime2,dmtime2;
+
+ puts("link creates hardlinks");
+
+ status=mkdir(name3,0755);
+ rtems_test_assert(status==0);
+
+ status=chdir(name3);
+ rtems_test_assert(status==0);
+ fd=creat(name0,mode);
+ status=close(fd);
+ rtems_test_assert(status==0);
+
+ status=stat(name0,&statbuf);
+ rtems_test_assert(status==0);
+ rtems_test_assert(S_ISREG(statbuf.st_mode));
+ tmp_mode=(statbuf.st_mode)&ALLPERMS;
+ rtems_test_assert(tmp_mode==0644);
+ rtems_test_assert(statbuf.st_nlink==1);
+
+ printf("the arg is %04o and the is %04o \n",tmp_mode,mode);
+ puts("test if the stat is the same");
+ status=link(name0,name1);
+ rtems_test_assert(status==0);
+
+ status=stat(name0,&statbuf);
+ rtems_test_assert(status==0);
+
+ rtems_test_assert(S_ISREG(statbuf.st_mode));
+ tmp_mode=(statbuf.st_mode)&ALLPERMS;
+ rtems_test_assert(tmp_mode==0644);
+ rtems_test_assert(statbuf.st_nlink==2);
+
+ status=stat(name1,&statbuf);
+ rtems_test_assert(status==0);
+
+ rtems_test_assert(S_ISREG(statbuf.st_mode));
+ tmp_mode=(statbuf.st_mode)&ALLPERMS;
+ rtems_test_assert(tmp_mode==0644);
+ rtems_test_assert(statbuf.st_nlink==2);
+
+ status=link(name1,name2);
+
+ status=stat(name0,&statbuf);
+ rtems_test_assert(status==0);
+
+ rtems_test_assert(S_ISREG(statbuf.st_mode));
+ tmp_mode=(statbuf.st_mode)&ALLPERMS;
+ rtems_test_assert(tmp_mode==0644);
+ rtems_test_assert(statbuf.st_nlink==3);
+
+ status=stat(name1,&statbuf);
+ rtems_test_assert(status==0);
+
+ rtems_test_assert(S_ISREG(statbuf.st_mode));
+ tmp_mode=(statbuf.st_mode)&ALLPERMS;
+ rtems_test_assert(tmp_mode==0644);
+ rtems_test_assert(statbuf.st_nlink==3);
+
+
+ status=stat(name2,&statbuf);
+ rtems_test_assert(status==0);
+
+ rtems_test_assert(S_ISREG(statbuf.st_mode));
+ rtems_test_assert(statbuf.st_nlink==3);
+ tmp_mode=(statbuf.st_mode)&ALLPERMS;
+ rtems_test_assert(tmp_mode==0644);
+/*
+ * call chmod and chown and test.
+ */
+
+ puts("chmod and chown");
+
+ chmod(name1,0201);
+ chown(name1,65534,65533);
+
+
+ status=stat(name0,&statbuf);
+ rtems_test_assert(status==0);
+
+ rtems_test_assert(S_ISREG(statbuf.st_mode));
+ rtems_test_assert(statbuf.st_nlink==3);
+ tmp_mode=(statbuf.st_mode)&ALLPERMS;
+ rtems_test_assert(tmp_mode==0201);
+ rtems_test_assert(statbuf.st_uid=65534);
+ rtems_test_assert(statbuf.st_gid=65533);
+
+ status=stat(name1,&statbuf);
+ rtems_test_assert(status==0);
+
+ rtems_test_assert(S_ISREG(statbuf.st_mode));
+ tmp_mode=(statbuf.st_mode)&ALLPERMS;
+ rtems_test_assert(tmp_mode==0201);
+ rtems_test_assert(statbuf.st_nlink==3);
+ rtems_test_assert(statbuf.st_uid=65534);
+ rtems_test_assert(statbuf.st_gid=65533);
+
+ status=stat(name2,&statbuf);
+ rtems_test_assert(status==0);
+
+ rtems_test_assert(S_ISREG(statbuf.st_mode));
+ tmp_mode=(statbuf.st_mode)&ALLPERMS;
+ rtems_test_assert(tmp_mode==0201);
+ rtems_test_assert(statbuf.st_nlink==3);
+ rtems_test_assert(statbuf.st_nlink==3);
+ rtems_test_assert(statbuf.st_uid=65534);
+ rtems_test_assert(statbuf.st_gid=65533);
+/*
+ *
+ * unlink then test if the nlink changes
+ */
+
+ puts("unlink then stat the file ");
+
+ status=unlink(name0);
+ rtems_test_assert(status==0);
+
+ status=stat(name0,&statbuf);
+ rtems_test_assert(status==-1);
+ rtems_test_assert(errno=ENOENT);
+
+
+ status=stat(name1,&statbuf);
+ rtems_test_assert(status==0);
+
+ rtems_test_assert(S_ISREG(statbuf.st_mode));
+ tmp_mode=(statbuf.st_mode)&ALLPERMS;
+ rtems_test_assert(tmp_mode==0201);
+ rtems_test_assert(statbuf.st_nlink==2);
+
+
+ status=stat(name2,&statbuf);
+ rtems_test_assert(status==0);
+
+ rtems_test_assert(S_ISREG(statbuf.st_mode));
+ tmp_mode=(statbuf.st_mode)&ALLPERMS;
+ rtems_test_assert(tmp_mode==0201);
+ rtems_test_assert(statbuf.st_nlink==2);
+
+
+ status=unlink(name1);
+ rtems_test_assert(status==0);
+
+ status=unlink(name2);
+ rtems_test_assert(status==0);
+
+
+ /*
+ * successful link() updates ctime
+ * and the ctime and mtime of the
+ * directory.
+ */
+ fd=creat(name0,0644);
+ status=close(fd);
+ rtems_test_assert(status==0);
+
+ status=stat(name0,&statbuf);
+ ctime1=statbuf.st_ctime;
+ status=stat(".",&statbuf);
+ rtems_test_assert(status==0);
+ dctime1=statbuf.st_ctime;
+ dmtime1=statbuf.st_mtime;
+
+ puts("sleep a few seconds");
+ sleep(TIME_PRECISION );
+
+ status=link(name0,name1);
+ rtems_test_assert(status==0);
+ status=stat(name0,&statbuf);
+ ctime2=statbuf.st_ctime;
+ status=stat(".",&statbuf);
+ dctime2=statbuf.st_ctime;
+ dmtime2=statbuf.st_mtime;
+
+ puts("test if the time changes");
+ rtems_test_assert(!time_equal(ctime1,ctime2));
+#if !defined(IMFS_TEST) && !defined(MIMFS_TEST)
+ rtems_test_assert(!time_equal(dctime1,dctime2));
+#endif
+#if !defined(IMFS_TEST) && !defined(MIMFS_TEST)
+ rtems_test_assert(!time_equal(dmtime1,dmtime2));
+#endif
+
+}
+void test(void)
+{
+ puts( "\n\n*** LINK TEST ***" );
+#if defined(MDOSFS_TEST)
+#else
+ link_test01();
+#endif
+ puts( "*** END OF LINK TEST ***" );
+}
+
diff --git a/testsuites/fstests/fssymlink/fssymlink.doc b/testsuites/fstests/fssymlink/fssymlink.doc
new file mode 100644
index 0000000000..9f2e222f2b
--- /dev/null
+++ b/testsuites/fstests/fssymlink/fssymlink.doc
@@ -0,0 +1,22 @@
+#
+# $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: fssymlink
+
+directives:
+
++ symlink
+
+concepts:
+
++ Call symlink then lstat it. Some symlink loop error.
diff --git a/testsuites/fstests/fssymlink/test.c b/testsuites/fstests/fssymlink/test.c
new file mode 100644
index 0000000000..7e12273845
--- /dev/null
+++ b/testsuites/fstests/fssymlink/test.c
@@ -0,0 +1,138 @@
+
+#include <sys/stat.h>
+#include <limits.h>
+#include <fcntl.h>
+#include <errno.h>
+#include <stdio.h>
+#include <stdint.h>
+#include <unistd.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#include <dirent.h>
+
+#include "fstest.h"
+
+/*
+ * Test the function of symlink
+ */
+void symlink_test01()
+{
+ int fd;
+ char* name0="file";
+ char* name1="symlink";
+ int status;
+ struct stat statbuf;
+ int len=strlen(name0);
+
+ printf("Create a file named %s\n",name0);
+ fd=creat(name0,0777);
+ status=close(fd);
+ rtems_test_assert(status==0);
+
+ printf("Create a symlink named %s to %s\n",name1,name0);
+ status=symlink(name0,name1);
+ rtems_test_assert(status==0);
+
+ status=stat(name0,&statbuf);
+ rtems_test_assert(status==0);
+ rtems_test_assert(S_ISREG(statbuf.st_mode));
+ rtems_test_assert(0==statbuf.st_size);
+
+
+ status=lstat(name1,&statbuf);
+ rtems_test_assert(status==0);
+ rtems_test_assert(S_ISLNK(statbuf.st_mode));
+#if !defined(IMFS_TEST) && !defined(MIMFS_TEST)
+ rtems_test_assert(len==statbuf.st_size);
+#endif
+
+
+ puts("Unlink the file");
+
+ status=unlink(name0);
+ rtems_test_assert(status==0);
+
+
+ status=lstat(name1,&statbuf);
+ rtems_test_assert(status==0);
+ rtems_test_assert(S_ISLNK(statbuf.st_mode));
+
+ status=unlink(name1);
+ rtems_test_assert(status==0);
+
+ printf("Create a dir named %s\n",name0);
+ status=mkdir (name0,0777);
+
+ printf("Create a symlink named %s to %s\n",name1,name0);
+ status=symlink(name0,name1);
+ rtems_test_assert(status==0);
+
+
+
+ status=lstat(name1,&statbuf);
+ rtems_test_assert(status==0);
+ rtems_test_assert(S_ISLNK(statbuf.st_mode));
+#if !defined(IMFS_TEST) && !defined(MIMFS_TEST)
+ rtems_test_assert(len==statbuf.st_size);
+#endif
+
+ puts("rmdir the dir");
+ status=rmdir(name0);
+ rtems_test_assert(status==0);
+
+
+ status=lstat(name1,&statbuf);
+ rtems_test_assert(status==0);
+ rtems_test_assert(S_ISLNK(statbuf.st_mode));
+
+ status=unlink(name1);
+ rtems_test_assert(status==0);
+
+}
+/*
+ * symlink loop test
+ */
+void symlink_test02()
+{
+
+ char* name0="symlink0";
+ char* name1="symlink1";
+ int status;
+
+
+ puts("symlink loop test");
+ status=symlink(name0,name1);
+ rtems_test_assert(status==0);
+ status=symlink(name1,name0);
+ rtems_test_assert(status==0);
+
+
+ puts("create a file Should fail with ELOOP");
+ status=creat(name0,0777);
+ rtems_test_assert(status!=0);
+#if !defined(MRFS_TEST)
+ rtems_test_assert(errno==ELOOP);
+#endif
+ puts("truncate a file Should with ELOOP");
+ status=truncate(name0,0777);
+ rtems_test_assert(status!=0);
+#if !defined(MRFS_TEST)
+ rtems_test_assert(errno==ELOOP);
+#endif
+}
+
+void test()
+{
+
+ puts( "\n\n*** SYMLINK TEST ***" );
+#if defined(MDOSFS_TEST)
+#else
+ symlink_test01();
+ symlink_test02();
+#endif
+
+ puts( "*** END OF SYMLINK TEST ***" );
+
+}
+
diff --git a/testsuites/fstests/imfs_fslink/Makefile.am b/testsuites/fstests/imfs_fslink/Makefile.am
new file mode 100644
index 0000000000..ad7a5e6c07
--- /dev/null
+++ b/testsuites/fstests/imfs_fslink/Makefile.am
@@ -0,0 +1,34 @@
+##
+## $Id$
+##
+
+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
+
+
+#dist_rtems_tests_DATA = imfs_fslink.scn
+#dist_rtems_tests_DATA += imfs_fslink.doc
+
+include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
+include $(top_srcdir)/../automake/compile.am
+include $(top_srcdir)/../automake/leaf.am
+
+imfs_fslink_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_fslink_OBJECTS) $(imfs_fslink_LDADD)
+LINK_LIBS = $(imfs_fslink_LDLIBS)
+
+imfs_fslink$(EXEEXT): $(imfs_fslink_OBJECTS) $(imfs_fslink_DEPENDENCIES)
+ @rm -f imfs_fslink$(EXEEXT)
+ $(make-exe)
+
+include $(top_srcdir)/../automake/local.am
diff --git a/testsuites/fstests/imfs_fssymlink/Makefile.am b/testsuites/fstests/imfs_fssymlink/Makefile.am
new file mode 100644
index 0000000000..fcdee7e86a
--- /dev/null
+++ b/testsuites/fstests/imfs_fssymlink/Makefile.am
@@ -0,0 +1,34 @@
+##
+## $Id$
+##
+
+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
+
+
+#dist_rtems_tests_DATA = imfs_fssymlink.scn
+#dist_rtems_tests_DATA += imfs_fssymlink.doc
+
+include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
+include $(top_srcdir)/../automake/compile.am
+include $(top_srcdir)/../automake/leaf.am
+
+imfs_fssymlink_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_fssymlink_OBJECTS) $(imfs_fssymlink_LDADD)
+LINK_LIBS = $(imfs_fssymlink_LDLIBS)
+
+imfs_fssymlink$(EXEEXT): $(imfs_fssymlink_OBJECTS) $(imfs_fssymlink_DEPENDENCIES)
+ @rm -f imfs_fssymlink$(EXEEXT)
+ $(make-exe)
+
+include $(top_srcdir)/../automake/local.am
diff --git a/testsuites/fstests/imfs_support/fs_config.h b/testsuites/fstests/imfs_support/fs_config.h
index 6ee3dae806..d2207d5f74 100644
--- a/testsuites/fstests/imfs_support/fs_config.h
+++ b/testsuites/fstests/imfs_support/fs_config.h
@@ -1,10 +1,24 @@
/*
* $Id$
*/
+#ifndef __IMFS_SUPPORT_h
+#define __IMFS_SUPPORT_h
+
+#define IMFS_TEST
#define FILESYSTEM "IMFS"
-#define BASE_FOR_TEST ""
+#define BASE_FOR_TEST "/mnt/"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
extern void test_initialize_filesystem(void);
extern void test_shutdown_filesystem(void);
+
+#ifdef __cplusplus
+};
+#endif
+
+#endif
diff --git a/testsuites/fstests/imfs_support/fs_support.c b/testsuites/fstests/imfs_support/fs_support.c
index 0d6741ba3b..9aaa939783 100644
--- a/testsuites/fstests/imfs_support/fs_support.c
+++ b/testsuites/fstests/imfs_support/fs_support.c
@@ -2,10 +2,33 @@
* $Id$
*/
+#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_support/fs_config.h b/testsuites/fstests/mdosfs_support/fs_config.h
new file mode 100644
index 0000000000..834e9bc8a2
--- /dev/null
+++ b/testsuites/fstests/mdosfs_support/fs_config.h
@@ -0,0 +1,20 @@
+/*
+ * $Id$
+ */
+
+#ifndef __MIMFS_SUPPORT_h
+#define __MIMFS_SUPPORT_h
+
+#define MDOSFS_TEST
+
+#define FILESYSTEM "MOUNTED DOSFS"
+#define BASE_FOR_TEST "/mnt/"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+#ifdef __cplusplus
+};
+#endif
+
+#endif
diff --git a/testsuites/fstests/mdosfs_support/fs_support.c b/testsuites/fstests/mdosfs_support/fs_support.c
new file mode 100644
index 0000000000..c69a6b1911
--- /dev/null
+++ b/testsuites/fstests/mdosfs_support/fs_support.c
@@ -0,0 +1,92 @@
+/*
+ * $Id$
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+#include "pmacros.h"
+
+#include "fs_config.h"
+
+#include <sys/stat.h>
+#include <sys/types.h>
+
+#include <rtems/libio.h>
+#include <rtems/dosfs.h>
+#include "ramdisk_support.h"
+
+#define BLOCK_SIZE 512
+
+msdos_format_request_param_t rqdata = {
+ OEMName: "RTEMS",
+ VolLabel: "RTEMSDisk",
+ sectors_per_cluster: 0,
+ fat_num: 0,
+ files_per_root_dir: 0,
+ fattype: MSDOS_FMT_FATANY,
+ media: 0,
+ quick_format: FALSE,
+ cluster_align: 0,
+ info_level: 0
+};
+
+void test_initialize_filesystem(void)
+{
+ int rc=0;
+ rc=mkdir(BASE_FOR_TEST,0777);
+ rtems_test_assert(rc==0);
+
+ init_ramdisk();
+
+ rc=msdos_format(RAMDISK_PATH,&rqdata);
+ rtems_test_assert(rc==0);
+
+ rc=mount(RAMDISK_PATH,
+ BASE_FOR_TEST,
+ "dosfs",
+ RTEMS_FILESYSTEM_READ_WRITE,
+ NULL);
+ rtems_test_assert(rc==0);
+}
+
+
+void test_shutdown_filesystem(void)
+{
+ int rc=0;
+ rc=unmount(BASE_FOR_TEST) ;
+ rtems_test_assert(rc==0);
+ del_ramdisk();
+}
+
+/* configuration information */
+
+/* drivers */
+#define CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
+#define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
+
+/**
+ * Configure base RTEMS resources.
+ */
+#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
+#define CONFIGURE_MEMORY_OVERHEAD 512
+#define CONFIGURE_MAXIMUM_TASKS rtems_resource_unlimited (10)
+#define CONFIGURE_MAXIMUM_SEMAPHORES rtems_resource_unlimited (10)
+#define CONFIGURE_MAXIMUM_MESSAGE_QUEUES rtems_resource_unlimited (6)
+#define CONFIGURE_MAXIMUM_PARTITIONS rtems_resource_unlimited (4)
+#define CONFIGURE_MAXIMUM_TIMERS 10
+
+
+/**
+ * Configure file system and libblock.
+ */
+#define CONFIGURE_USE_IMFS_AS_BASE_FILESYSTEM
+#define CONFIGURE_LIBIO_MAXIMUM_FILE_DESCRIPTORS 100
+#define CONFIGURE_MAXIMUM_DRIVERS 100
+#define CONFIGURE_APPLICATION_NEEDS_LIBBLOCK
+
+#define CONFIGURE_FILESYSTEM_DOSFS
+
+#define CONFIGURE_INIT
+#include <rtems/confdefs.h>
+
diff --git a/testsuites/fstests/mimfs_fslink/Makefile.am b/testsuites/fstests/mimfs_fslink/Makefile.am
new file mode 100644
index 0000000000..9f8686f0ec
--- /dev/null
+++ b/testsuites/fstests/mimfs_fslink/Makefile.am
@@ -0,0 +1,35 @@
+##
+## $Id$
+##
+
+MANAGERS = all
+
+rtems_tests_PROGRAMS = mimfs_fslink
+mimfs_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 \
+ ../mimfs_support/fs_support.c ../mimfs_support/fs_config.h
+
+
+#dist_rtems_tests_DATA = mimfs_fslink.scn
+#dist_rtems_tests_DATA += mimfs_fslink.doc
+
+include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
+include $(top_srcdir)/../automake/compile.am
+include $(top_srcdir)/../automake/leaf.am
+
+mimfs_fslink_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_fslink_OBJECTS) $(mimfs_fslink_LDADD)
+LINK_LIBS = $(mimfs_fslink_LDLIBS)
+
+mimfs_fslink$(EXEEXT): $(mimfs_fslink_OBJECTS) $(mimfs_fslink_DEPENDENCIES)
+ @rm -f mimfs_fslink$(EXEEXT)
+ $(make-exe)
+
+include $(top_srcdir)/../automake/local.am
diff --git a/testsuites/fstests/mimfs_fssymlink/Makefile.am b/testsuites/fstests/mimfs_fssymlink/Makefile.am
new file mode 100644
index 0000000000..09391831e8
--- /dev/null
+++ b/testsuites/fstests/mimfs_fssymlink/Makefile.am
@@ -0,0 +1,35 @@
+##
+## $Id$
+##
+
+MANAGERS = all
+
+rtems_tests_PROGRAMS = mimfs_fssymlink
+mimfs_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 \
+ ../mimfs_support/fs_support.c ../mimfs_support/fs_config.h
+
+
+#dist_rtems_tests_DATA = mimfs_fssymlink.scn
+#dist_rtems_tests_DATA += mimfs_fssymlink.doc
+
+include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
+include $(top_srcdir)/../automake/compile.am
+include $(top_srcdir)/../automake/leaf.am
+
+mimfs_fssymlink_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_fssymlink_OBJECTS) $(mimfs_fssymlink_LDADD)
+LINK_LIBS = $(mimfs_fssymlink_LDLIBS)
+
+mimfs_fssymlink$(EXEEXT): $(mimfs_fssymlink_OBJECTS) $(mimfs_fssymlink_DEPENDENCIES)
+ @rm -f mimfs_fssymlink$(EXEEXT)
+ $(make-exe)
+
+include $(top_srcdir)/../automake/local.am
diff --git a/testsuites/fstests/mimfs_support/fs_config.h b/testsuites/fstests/mimfs_support/fs_config.h
index 5cc6f02539..f68fec47b1 100644
--- a/testsuites/fstests/mimfs_support/fs_config.h
+++ b/testsuites/fstests/mimfs_support/fs_config.h
@@ -2,9 +2,19 @@
* $Id$
*/
+#ifndef __MIMFS_SUPPORT_h
+#define __MIMFS_SUPPORT_h
+
+#define MIMFS_TEST
+
#define FILESYSTEM "MOUNTED IMFS"
#define BASE_FOR_TEST "/mnt/"
+#ifdef __cplusplus
+extern "C" {
+#endif
-extern void test_initialize_filesystem(void);
+#ifdef __cplusplus
+};
+#endif
-extern void test_shutdown_filesystem(void);
+#endif
diff --git a/testsuites/fstests/mimfs_support/fs_support.c b/testsuites/fstests/mimfs_support/fs_support.c
index ee8a904060..dcebd9be49 100644
--- a/testsuites/fstests/mimfs_support/fs_support.c
+++ b/testsuites/fstests/mimfs_support/fs_support.c
@@ -5,37 +5,67 @@
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
+#include "pmacros.h"
+
+#include "fs_config.h"
#include <sys/stat.h>
#include <sys/types.h>
-#include "pmacros.h"
-#include "fs_config.h"
-
#include <rtems/libio.h>
+
+
void test_initialize_filesystem(void)
{
- int rc;
-
- rc = mkdir( BASE_FOR_TEST, 0777 );
- rtems_test_assert( rc == 0 );
-
- rc = mount(
- "null",
- BASE_FOR_TEST,
- "imfs",
- RTEMS_FILESYSTEM_READ_ONLY,
- NULL
- );
- rtems_test_assert( rc == 0 );
+ int rc=0;
+ rc=mkdir(BASE_FOR_TEST,0777);
+ rtems_test_assert(rc==0);
+
+
+ rc=mount(NULL,
+ BASE_FOR_TEST,
+ "imfs",
+ RTEMS_FILESYSTEM_READ_WRITE,
+ NULL);
+ rtems_test_assert(rc==0);
}
+
void test_shutdown_filesystem(void)
{
- int rc;
+ int rc=0;
+ rc=unmount(BASE_FOR_TEST) ;
+ rtems_test_assert(rc==0);
+}
- rc = unmount( BASE_FOR_TEST );
- rtems_test_assert( rc == 0 );
+/* configuration information */
+
+/* drivers */
+#define CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
+#define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
+
+/**
+ * Configure base RTEMS resources.
+ */
+#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
+#define CONFIGURE_MEMORY_OVERHEAD 512
+#define CONFIGURE_MAXIMUM_TASKS rtems_resource_unlimited (10)
+#define CONFIGURE_MAXIMUM_SEMAPHORES rtems_resource_unlimited (10)
+#define CONFIGURE_MAXIMUM_MESSAGE_QUEUES rtems_resource_unlimited (6)
+#define CONFIGURE_MAXIMUM_PARTITIONS rtems_resource_unlimited (4)
+#define CONFIGURE_MAXIMUM_TIMERS 10
+
+
+/**
+ * Configure file system and libblock.
+ */
+#define CONFIGURE_USE_IMFS_AS_BASE_FILESYSTEM
+#define CONFIGURE_LIBIO_MAXIMUM_FILE_DESCRIPTORS 100
+#define CONFIGURE_MAXIMUM_DRIVERS 100
+#define CONFIGURE_APPLICATION_NEEDS_LIBBLOCK
+
+
+#define CONFIGURE_INIT
+#include <rtems/confdefs.h>
-}
diff --git a/testsuites/fstests/mrfs_fslink/Makefile.am b/testsuites/fstests/mrfs_fslink/Makefile.am
new file mode 100644
index 0000000000..50269d20ee
--- /dev/null
+++ b/testsuites/fstests/mrfs_fslink/Makefile.am
@@ -0,0 +1,35 @@
+##
+## $Id$
+##
+
+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
+
+
+#dist_rtems_tests_DATA = mrfs_fslink.scn
+#dist_rtems_tests_DATA += mrfs_fslink.doc
+
+include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
+include $(top_srcdir)/../automake/compile.am
+include $(top_srcdir)/../automake/leaf.am
+
+mrfs_fslink_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_fslink_OBJECTS) $(mrfs_fslink_LDADD)
+LINK_LIBS = $(mrfs_fslink_LDLIBS)
+
+mrfs_fslink$(EXEEXT): $(mrfs_fslink_OBJECTS) $(mrfs_fslink_DEPENDENCIES)
+ @rm -f mrfs_fslink$(EXEEXT)
+ $(make-exe)
+
+include $(top_srcdir)/../automake/local.am
diff --git a/testsuites/fstests/mrfs_fssymlink/Makefile.am b/testsuites/fstests/mrfs_fssymlink/Makefile.am
new file mode 100644
index 0000000000..586e7187ff
--- /dev/null
+++ b/testsuites/fstests/mrfs_fssymlink/Makefile.am
@@ -0,0 +1,35 @@
+##
+## $Id$
+##
+
+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
+
+
+#dist_rtems_tests_DATA = mrfs_fssymlink.scn
+#dist_rtems_tests_DATA += mrfs_fssymlink.doc
+
+include $(RTEMS_ROOT)/make/custom/@RTEMS_BSP@.cfg
+include $(top_srcdir)/../automake/compile.am
+include $(top_srcdir)/../automake/leaf.am
+
+mrfs_fssymlink_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_fssymlink_OBJECTS) $(mrfs_fssymlink_LDADD)
+LINK_LIBS = $(mrfs_fssymlink_LDLIBS)
+
+mrfs_fssymlink$(EXEEXT): $(mrfs_fssymlink_OBJECTS) $(mrfs_fssymlink_DEPENDENCIES)
+ @rm -f mrfs_fssymlink$(EXEEXT)
+ $(make-exe)
+
+include $(top_srcdir)/../automake/local.am
diff --git a/testsuites/fstests/mrfs_support/fs_config.h b/testsuites/fstests/mrfs_support/fs_config.h
new file mode 100644
index 0000000000..808440c356
--- /dev/null
+++ b/testsuites/fstests/mrfs_support/fs_config.h
@@ -0,0 +1,21 @@
+/*
+ * $Id$
+ */
+
+#ifndef __MIMFS_SUPPORT_h
+#define __MIMFS_SUPPORT_h
+
+#define MRFS_TEST
+
+#define FILESYSTEM "MOUNTED RFS"
+#define BASE_FOR_TEST "/mnt/"
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+
+#ifdef __cplusplus
+};
+#endif
+
+#endif
diff --git a/testsuites/fstests/mrfs_support/fs_support.c b/testsuites/fstests/mrfs_support/fs_support.c
new file mode 100644
index 0000000000..7db033afd5
--- /dev/null
+++ b/testsuites/fstests/mrfs_support/fs_support.c
@@ -0,0 +1,85 @@
+/*
+ * $Id$
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+#include "pmacros.h"
+
+#include "fs_config.h"
+
+#include <sys/stat.h>
+#include <sys/types.h>
+
+#include <rtems/libio.h>
+#include <rtems/rtems-rfs-format.h>
+#include "ramdisk_support.h"
+
+#define BLOCK_SIZE (512)
+
+rtems_rfs_format_config config=
+{
+block_size:BLOCK_SIZE
+};
+
+
+void test_initialize_filesystem(void)
+{
+ int rc=0;
+ rc=mkdir(BASE_FOR_TEST,0777);
+ rtems_test_assert(rc==0);
+
+ init_ramdisk();
+
+ rc=rtems_rfs_format(RAMDISK_PATH,&config);
+ rtems_test_assert(rc==0);
+
+ rc=mount(RAMDISK_PATH,
+ BASE_FOR_TEST,
+ "rfs",
+ RTEMS_FILESYSTEM_READ_WRITE,
+ NULL);
+ rtems_test_assert(rc==0);
+}
+
+
+void test_shutdown_filesystem(void)
+{
+ int rc=0;
+ rc=unmount(BASE_FOR_TEST) ;
+ rtems_test_assert(rc==0);
+ del_ramdisk();
+}
+
+/* configuration information */
+
+/* drivers */
+#define CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
+#define CONFIGURE_APPLICATION_NEEDS_CONSOLE_DRIVER
+
+/**
+ * Configure base RTEMS resources.
+ */
+#define CONFIGURE_RTEMS_INIT_TASKS_TABLE
+#define CONFIGURE_MEMORY_OVERHEAD 512
+#define CONFIGURE_MAXIMUM_TASKS rtems_resource_unlimited (10)
+#define CONFIGURE_MAXIMUM_SEMAPHORES rtems_resource_unlimited (10)
+#define CONFIGURE_MAXIMUM_MESSAGE_QUEUES rtems_resource_unlimited (6)
+#define CONFIGURE_MAXIMUM_PARTITIONS rtems_resource_unlimited (4)
+#define CONFIGURE_MAXIMUM_TIMERS 10
+
+
+/**
+ * Configure file system and libblock.
+ */
+#define CONFIGURE_USE_IMFS_AS_BASE_FILESYSTEM
+#define CONFIGURE_LIBIO_MAXIMUM_FILE_DESCRIPTORS 100
+#define CONFIGURE_MAXIMUM_DRIVERS 100
+#define CONFIGURE_APPLICATION_NEEDS_LIBBLOCK
+
+#define CONFIGURE_FILESYSTEM_RFS
+
+#define CONFIGURE_INIT
+#include <rtems/confdefs.h>
+
diff --git a/testsuites/fstests/support/fstest.h b/testsuites/fstests/support/fstest.h
new file mode 100644
index 0000000000..bc5b591873
--- /dev/null
+++ b/testsuites/fstests/support/fstest.h
@@ -0,0 +1,23 @@
+/*
+ *
+ * $Id$
+ */
+
+#ifndef __FSTEST_H
+#define __FSTEST_H
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <pmacros.h>
+
+#include "fs_config.h"
+
+#define TIME_PRECISION (2)
+#define time_equal(x,y) (abs((x)-(y))<TIME_PRECISION)
+#define ALLPERMS (S_ISUID|S_ISGID|S_ISVTX|S_IRWXU|S_IRWXG|S_IRWXO)
+#endif
+
+
+
diff --git a/testsuites/fstests/support/fstest_support.c b/testsuites/fstests/support/fstest_support.c
new file mode 100644
index 0000000000..c1dac4399e
--- /dev/null
+++ b/testsuites/fstests/support/fstest_support.c
@@ -0,0 +1,98 @@
+#include <stdio.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <string.h>
+#include <unistd.h>
+#include <sys/stat.h>
+#include <sys/types.h>
+
+#include "rtems.h"
+
+#include "fstest_support.h"
+#include "fs_config.h"
+
+#define TEMP_DIR "waterbuffalo"
+
+
+/* Break out of a chroot() environment in C */
+void break_out_of_chroot(void)
+{
+
+ int x; /* Used to move up a directory tree */
+ int done=0; /* Are we done yet ? */
+ int dir_fd; /* File descriptor to directory */
+ struct stat sbuf; /* The stat() buffer */
+ chdir("/");
+
+ if (stat(TEMP_DIR,&sbuf)<0) {
+ if (errno==ENOENT) {
+ if (mkdir(TEMP_DIR,0755)<0) {
+ fprintf(stderr,"Failed to create %s - %s\n", TEMP_DIR,
+ strerror(errno));
+ exit(1);
+ }
+ } else {
+ fprintf(stderr,"Failed to stat %s - %s\n", TEMP_DIR,
+ strerror(errno));
+ exit(1);
+ }
+ } else if (!S_ISDIR(sbuf.st_mode)) {
+ fprintf(stderr,"Error - %s is not a directory!\n",TEMP_DIR);
+ exit(1);
+ }
+
+ if ((dir_fd=open(".",O_RDONLY))<0) {
+ fprintf(stderr,"Failed to open \".\" for reading - %s\n", strerror(errno));
+ exit(1);
+ }
+
+ if (chroot(TEMP_DIR)<0) {
+ fprintf(stderr,"Failed to chroot to %s - %s\n",TEMP_DIR,
+ strerror(errno));
+ exit(1);
+ }
+
+ if (fchdir(dir_fd)<0) {
+ fprintf(stderr,"Failed to fchdir - %s\n",
+ strerror(errno));
+ exit(1);
+ }
+ close(dir_fd);
+ chdir("..");
+ chroot(".");
+
+}
+
+
+/*
+ * Main entry point of every filesystem test
+ */
+
+rtems_task Init(
+ rtems_task_argument ignored)
+{
+ int rc=0;
+ puts( "\n\n*** FILE SYSTEM TEST ( " FILESYSTEM " ) ***" );
+
+ puts( "Initializing filesystem " FILESYSTEM );
+ test_initialize_filesystem();
+ rc=chdir(BASE_FOR_TEST);
+ rtems_test_assert(rc==0);
+
+ rc=chroot(BASE_FOR_TEST);
+ rtems_test_assert(rc==0);
+
+ test();
+
+ break_out_of_chroot();
+ chdir("/");
+
+
+ puts( "\n\nShutting down filesystem " FILESYSTEM );
+ test_shutdown_filesystem();
+
+ puts( "*** END OF FILE SYSTEM TEST ( " FILESYSTEM " ) ***" );
+ rtems_test_exit(0);
+
+}
+
diff --git a/testsuites/fstests/support/fstest_support.h b/testsuites/fstests/support/fstest_support.h
new file mode 100644
index 0000000000..16972710a1
--- /dev/null
+++ b/testsuites/fstests/support/fstest_support.h
@@ -0,0 +1,33 @@
+
+/*
+ *
+ * $Id$
+ */
+#ifndef __FSTEST_SUPPORT_H
+#define __FSTEST_SUPPORT_H
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+#include "pmacros.h"
+
+#include "rtems.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+extern rtems_task Init(
+ rtems_task_argument ignored
+);
+
+extern void test(void);
+
+extern void test_initialize_filesystem(void);
+
+extern void test_shutdown_filesystem(void);
+#ifdef __cplusplus
+};
+#endif
+
+#endif
diff --git a/testsuites/fstests/support/ramdisk_support.c b/testsuites/fstests/support/ramdisk_support.c
new file mode 100644
index 0000000000..2945b3456e
--- /dev/null
+++ b/testsuites/fstests/support/ramdisk_support.c
@@ -0,0 +1,46 @@
+
+/*
+ *
+ * $Id$
+ */
+#include <rtems/ramdisk.h>
+#include <rtems/blkdev.h>
+#include <rtems/libio.h>
+
+#include "ramdisk_support.h"
+/*
+ * Ramdisk information
+ */
+
+dev_t dev = 0;
+
+void init_ramdisk(void)
+{
+
+ int rc=0;
+ rc =rtems_disk_io_initialize();
+ rtems_test_assert( rc == 0 );
+ rc =ramdisk_register(RAMDISK_BLOCK_SIZE,RAMDISK_BLOCK_COUNT,\
+ false,RAMDISK_PATH,&dev);
+ rtems_test_assert( rc == 0 );
+
+}
+void del_ramdisk(void )
+{
+ int rc=0;
+ rtems_device_major_number major=0;
+ rtems_device_minor_number minor=0;
+
+ rc=rtems_disk_delete (dev);
+ rtems_test_assert( rc == 0 );
+
+ rtems_filesystem_split_dev_t(dev,major,minor);
+
+ rc=rtems_io_unregister_driver(major);
+ rtems_test_assert( rc == 0 );
+
+ rc=rtems_disk_io_done();
+ rtems_test_assert( rc == 0 );
+}
+
+
diff --git a/testsuites/fstests/support/ramdisk_support.h b/testsuites/fstests/support/ramdisk_support.h
new file mode 100644
index 0000000000..f3e0836cce
--- /dev/null
+++ b/testsuites/fstests/support/ramdisk_support.h
@@ -0,0 +1,26 @@
+/*
+ *
+ * $Id$
+ */
+#ifndef __RAMDISK_SUPPORT_H
+#define __RAMDISK_SUPPORT_H
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include "fstest_support.h"
+
+#define RAMDISK_BLOCK_SIZE (512)
+#define RAMDISK_BLOCK_COUNT (1024)
+#define RAMDISK_PATH "/dev/ramdisk"
+#ifdef __cplusplus
+extern "C" {
+#endif
+extern void init_ramdisk(void);
+extern void del_ramdisk(void );
+#ifdef __cplusplus
+};
+#endif
+
+#endif