Mercurial > yaffs-ecoscentric
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>
