diff packages/fs/yaffs/current/doc/yaffs.sgml @ 311:16de60f90faa

ecos-yaffs-nand.c: Correctly use ECC on YAFFS tags in yaffs2
author wry
date Fri, 18 Sep 2009 11:13:00 +0000
parents ed45fbf83981
children 8678bc743892
line wrap: on
line diff
--- a/packages/fs/yaffs/current/doc/yaffs.sgml
+++ b/packages/fs/yaffs/current/doc/yaffs.sgml
@@ -30,7 +30,7 @@
 
 <!-- }}} -->
 
-<!-- ### Uncomment to make a standalone book: 
+<!-- ### Uncomment to make a standalone book:
 <!DOCTYPE book  PUBLIC "-//OASIS//DTD DocBook V3.1//EN">
 <book id="fs-yaffs-book">
     <bookinfo>
@@ -521,17 +521,60 @@ the heap's own overheads.)
 
 <sect1 id="yaffs-testing"><title>Testing</title>
 <para>
-YAFFS comes with a single test program, <filename>fops.c</filename>.
-This is believed to exercise all of the code paths (filesystem operations,
-file operations and directory operations) within the eCos-YAFFS
-adaptation layer.
+YAFFS is supplied with a number of test programs, some of which are have been
+adapted from tests for other filesystems in eCos.
 </para>
 
-<para>
-The test was originally designed to run on a synthetic NAND filesystem.
+<glosslist>
+<glossentry><glossterm>fops</glossterm><glossdef><para>
+This was the first basic test created for the port of the filesystem.
+It is believed to exercise all of the code paths (filesystem operations,
+file operations and directory operations) within the eCos-YAFFS
+adaptation layer.  </para> <para>
+This test was originally intended to run on a synthetic NAND filesystem.
 On real NAND chips, it deliberately omits the more stressful routines to
-avoid unduly damaging the hardware.
-</para>
+avoid undue wear on the hardware.
+</para></glossdef></glossentry>
+<glossentry><glossterm>yaffs1</glossterm><glossdef><para>
+A number of filesystem edge-case semantic tests, including 
+file and directory creation and deletion, 
+invalid open and rename operations, and
+removing nonexistent files and directories.
+</para></glossdef></glossentry>
+<glossentry><glossterm>yaffs2</glossterm><glossdef><para>
+Concurrent multi-threaded filesystem access and consistency checks.
+</para></glossdef></glossentry>
+<glossentry><glossterm>yaffs4</glossterm><glossdef><para>
+Semantic and edge-case testing - like yaffs1 - but with long file names.
+</para></glossdef></glossentry>
+<glossentry><glossterm>yaffs5</glossterm><glossdef><para>
+Tests that file reading and writing works over reasonably large files
+(up to 1Mbyte) with different I/O chunk sizes. Some operation timings
+are collected and reported, as is the data rate on large files.
+</para></glossdef></glossentry>
+<glossentry><glossterm>yaffs6</glossterm><glossdef><para>
+Semantic and edge-case testing - like yaffs1 - but with Cyrillic filenames
+in order to test UTF-8 correctness.
+</para></glossdef></glossentry>
+<glossentry><glossterm>mounttime</glossterm><glossdef><para>
+A simple benchmark which repeatedly mounts and unmounts the filesystem
+and measures how long this takes.
+You can optionally use the <filename>mkfiles</filename> routine - also
+present in the tests directory - to create many short files so you can 
+test performance on a loaded filesystem.
+</para></glossdef></glossentry>
+<glossentry><glossterm>hammer</glossterm><glossdef><para>
+A stress test designed to shake out corner cases.
+Repeatedly creates many files of varying sizes from multiple threads
+until the filesystem fills up, then verifies their contents and removes
+them. From time to time, all threads pause and the filesystem is
+unmounted and remounted. </para><para>This test is particularly useful when 
+combined with the bad block injection functionality provided by
+the synthetic NAND device. It has been used in this way by eCosCentric to 
+thoroughly test this package's stability under error conditions.
+<note><para>This test runs forever, until interrupted.</para></note>
+</para></glossdef></glossentry>
+</glosslist>
 </sect1>
 </chapter>