Yaffs is supplied with a number of test programs, some of which are have been adapted from tests for other filesystems in eCos.
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.
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 undue wear on the hardware.
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.
Concurrent multi-threaded filesystem access and consistency checks.
Semantic and edge-case testing - like yaffs1 - but with long file names.
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.
Semantic and edge-case testing - like yaffs1 - but with Cyrillic filenames in order to test UTF-8 correctness.
A simple benchmark which repeatedly mounts and unmounts the filesystem and measures how long this takes. You can optionally use the mkfiles routine - also present in the tests directory - to create many short files so you can test performance on a loaded filesystem.
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.
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: This test runs forever, until interrupted.