Modifying the File System Driver Test (Windows CE 5.0)
The File System Driver Test executes the tux -o -d fsdtst
command line on default execution.
Warning Prior to running this test, be aware that all information on the storage device is destroyed. The test writes to and reads from sectors on the storage device without preserving the contents of the sectors. Microsoft recommends that you back up data on all cards and disks that are attached to the tested device before running the test.
You can modify the test by editing the command line. For information about how to edit the command line for a test, see Editing the Command Line for a Test. The following table shows the modifications you can make to the test.
To modify the File System Driver Test
To | Add this command-line parameter |
---|---|
Run all test cases, destroying all information on the storage device. Test cases write to and read from sectors on the storage device without preserving the contents of the sectors. |
|
Specify the storage profile to which to restrict testing, found in the registry under the HKEY_LOCAL_MACHINE\System\StorageManager\Profiles key.
The default storage profile is PCMCIA. |
|
Specify the file system to which to restrict testing.
The default file system is Fatfs.dll. You only need to specify a file system when testing a new FSD. |
|
Specify the root directory in which to run the test. If you provide this option, the test only runs in the specified directory and ignores the –s and –p options.
This flag is useful for a file system driver that does not use storage profiles such as a network file system driver. If the name of the root directory includes spaces, surround the name of the directory with single quotation marks; for example, |
|
Specify the size of a cluster used by the FSD. You can use this option to specify the size of a cluster for a file system that is not a FAT file system.
Specifying this option does not affect the cluster size for a FAT volume. By default, the test uses a cluster size of 4096 bytes. You can use the default value if the file system being tested does not have a cluster-like data structure. |
|
Specify the maximum number of directory entries that the test attempts to create in the root directory. Specifying this option does not affect the number of directory entries for a FAT volume.
The default value is 255 directory entries. You can use the default value if the file system being tested does not limit the number of directory entries that can exist in the root directory. |
|
Disable automatic formatting of each mounted partition before testing.
Automatic formatting is enabled by default and each mounted partition is formatted as a FAT volume before each test case runs. If you specify this option, the test does not automatically format each mounted partition. |
|
Disable quick filling of partitions.
Quick filling is enabled by default and, for a test case that requires the creation of a large file to fill the partition, a large filler file is artificially created by calling the SetFilePointer and SetEndOfFile functions. If you specify this option, disabling quick filling, a large file is created by repeated calls to the WriteFile function. |
|
The following table shows the test cases for the File System Driver Test.
Test case | Result |
---|---|
1001 | Creates, writes to, verifies, and then deletes a 256-byte file. This test fails if the CreateDirectory, WriteFile, or SetFilePointer function calls fail. This test also fails if the data written to the file does not match the data read from the file. |
1002 | Creates, copies, and then deletes a file. This test fails if the CreateDirectory, CreateFile, CopyFile, or DeleteFile function calls fail. |
1003 | Creates, moves, and then deletes a file. This test fails if the CreateDirectory, CreateFile, MoveFile, or DeleteFile function calls fail. |
1004 | Creates, enumerates, and deletes two files. This test fails if the CreateDirectory, CreateFile, FindFirstFile, FindNextFile, FindClose, or DeleteFile function calls fail. |
1005 | Creates multiple files, finds the first file, and then deletes all files. This test fails if the CreateDirectory, CreateFile, FindFirstFile, FindNextFile, FindClose, or DeleteFile function calls fail. |
1006 | Creates, gets attributes for, and then deletes a file. This test fails if the CreateDirectory, CreateFile, GetFileAttributes, or DeleteFile function calls fail. |
1007 | Creates, gets information by handle for, and then deletes a file. This test fails if the CreateFile, GetFileInformationByHandle, or DeleteFile function calls fail. |
1008 | Creates 32 empty files in a directory. This test fails if it cannot create 32 empty files in the directory. |
1009 | Creates 128 empty files in a directory. This test fails if it cannot create 128 empty files in the directory. |
1010 | Creates a file and then writes data to the file. The test then maps the file to memory and verifies that the data read from mapped memory is correct. This test fails if the storage device does not support paging on demand or if the FSD does not export a ReadFileWithSeek or WriteFileWithSeek function. This test also fails if the operation that maps the file to memory fails or if the data read from mapped memory is not the same as the data written to the file. |
5001 | Creates, modifies, and deletes a file that is the same size as a cluster. The test performs this operation with every possible combination of attributes. This test fails if it is unable to set or retrieve the attributes of a file for any combination of attributes. |
5002 | Creates, modifies, and deletes a file that is one byte smaller than the size of a cluster. The test performs this operation with every possible combination of attributes. This test fails if it is unable to set or retrieve the attributes of a file for any combination of attributes. |
5003 | Creates, modifies, and deletes a file that is one byte larger than the size of a cluster. The test performs this operation with every possible combination of attributes. This test fails if it is unable to set or retrieve the attributes of a file for any combination of attributes. |
5004 | Creates, modifies, and deletes a file that is one byte in size. The test performs this operation with every possible combination of attributes. This test fails if it is unable to set or retrieve the attributes of a file for any combination of attributes. |
5005 | Creates, modifies, and deletes a file that is zero bytes in size. The test performs this operation with every possible combination of attributes. This test fails if it is unable to set or retrieve the attributes of a file for any combination of attributes |
5006 | Creates single directories with names that have a lengths varying from MAX_PATH-10 to MAX_PATH+10 characters. This test fails if a directory with a name longer than MAX_PATH characters is successfully created. The test also fails if it cannot create a directory with a name that contains MAX_PATH or fewer characters. |
5007 | Creates nested directories with one-character names and complete paths that have lengths varying from MAX_PATH-10 to MAX_PATH+10 characters. This test fails if a directory with a path longer than MAX_PATH characters is successfully created. The test also fails if it cannot create a directory with a name that contains MAX_PATH or fewer characters. The test may fail if the FSD imposes a limit on the depth of nested directories. |
5008 | Attempts to create a file in a directory that does not exist. This test fails if it successfully creates the file. |
5009 | Creates subdirectories within a directory and then creates one file in each subdirectory. This test fails if it cannot create a subdirectory or file. |
5010 | Creates files within a directory and then copies the files to a second directory. The test then moves the second directory to another directory. Finally, the test deletes the files from the original directory and deletes the files from the second directory. This test fails if it cannot copy or move files to a directory. The test also fails if the copied or moved files do not match the original files. |
5011 | Tests the FileTimeToLocalTime, FileTimeToSystemTime, and LocalTimeToFileTime functions. This test fails if it cannot set file times properly or if it cannot convert a time to system time. |
5012 | Fills the drive with four-byte files and then deletes every other file. This test fails if it cannot fill the drive with files, if it cannot delete a file, or if the files do not enumerate properly after every other file is deleted. |
5013 | Fills the drive with cluster-sized files and then deletes every other file. This test fails if it cannot fill the drive with files, if it cannot delete a file, or if the files do not enumerate properly after every other file is deleted. |
5014 | Creates files in a directory, copies the files to a different directory, copies the files back to the original directory, and then moves the directory. This test fails if it cannot copy or move files to a directory. The test also fails if the copied or moved files do not match the original files. |
5015 | Creates files on the drive, copies the files to the object store, and then moves the files back to the drive. This test fails if it cannot copy or move files from the drive to the object store. The test also fails if the copied or moved files do not match the original files. |
5016 | Creates files on the object store, copies the files to the drive, and then moves the files back to the object store. This test fails if it cannot copy or move files from the object store to the drive. The test also fails if the copied or moved files do not match the original files. |
5017 | Attempts to call the CreateFile, CreateDirectory, and RemoveDirectory functions using the name of the root directory. This test fails if it successfully calls the CreateFile, CreateDirectory, or RemoveDirectory function using the name of the root directory. |
5018 | Creates a 100-KB file, truncates 10 KB from the end of the file, and then truncates 10 KB from the beginning of the file using the SetFilePointer function. This test fails if the SetFilePointer or SetEndOfFile function calls fail. |
5019 | Creates the maximum number of entries in the root directory. This test fails if it cannot create the maximum number of entries in the root directory. |
5020 | Attempts to create a file that has the same name as an existing directory. This test fails if it successfully creates a file with the same name as an existing directory. |
5021 | Attempts to create a directory that has the same name as an existing file. This test fails if it successfully creates a directory with the same name as an existing file. |
5022 | Attempts to create more than 999 files with the same file name extension and the same first 8 characters in the file name. This test fails if it creates more than 999 files or creates fewer than 999 files. If this test fails on a volume that is not a FAT volume, failure does not necessarily indicate that the implementation of the file system is faulty. |
5023 | Creates a 100-byte file on a volume that has only two clusters available. This test fails if it cannot create the 100-byte file. If this test fails on a volume that is not a FAT volume, failure does not necessarily indicate that the implementation of the file system is faulty. |
5024 | Creates a directory on a volume that has only one cluster available. This test fails if it cannot create the directory. If this test fails on a volume that is not a FAT volume, failure does not necessarily indicate that the implementation of the file system is faulty. |
5025 | Creates a 100-byte file on a volume that has only one cluster available. This test fails if it cannot create the 100-byte file. If this test fails on a volume that is not a FAT volume, failure does not necessarily indicate that the implementation of the file system is faulty. |
5026 | Creates directories on a volume that has only one cluster available. This test fails if it cannot create at least one directory. If this test fails on a volume that is not a FAT volume, failure does not necessarily indicate that the implementation of the file system is faulty. |
5027 | Attempts to create a directory on a volume that has no clusters available. This test fails if it successfully creates a directory. If this test fails on a volume that is not a FAT volume, failure does not necessarily indicate that the implementation of the file system is faulty. |
5028 | Attempts to create an empty file on a volume that has no clusters available. This test fails if it cannot create an empty file. If this test fails on a volume that is not a FAT volume, failure does not necessarily indicate that the implementation of the file system is faulty. |
5029 | Attempts to create a 100-byte file on a volume that has no clusters available. This test fails if it successfully creates a 100-byte file. If this test fails on a volume that is not a FAT volume, failure does not necessarily indicate that the implementation of the file system is faulty. |
5030 | Attempts to write a file using the WriteFileWithSeek function, if the function is supported by the file system, when there is only one cluster available on the drive. This test fails if the WriteFileWithSeek function writes no data to the file. If this test fails on a volume that is not a FAT volume, failure does not necessarily indicate that the implementation of the file system is faulty. |
5031 | Writes data to and reads data from the volume using the WriteFileWithSeek and ReadFileWithSeek functions. This test fails if the data written does not match the data read. This test is skipped if the file system does not support these operations. |
6001 | Creates and formats a single partition on a drive before running tests. This test fails if it cannot partition or format the media using the DismountStore, FormatStore, GetStoreInfo, and CreatePartition functions. |
6002 | Creates and formats two partitions on a drive before running tests. This test fails if it cannot partition or format the media using the DismountStore, FormatStore, GetStoreInfo, and CreatePartition functions. |
6003 | Creates and formats three partitions on a drive before running tests. This test fails if it cannot partition or format the media using the DismountStore, FormatStore, GetStoreInfo, and CreatePartition functions. |
8001 | Creates, writes, reads, and verifies files in multiple directories using a separate thread for each directory. This test fails if it cannot create, write to, or read from a file using multiple threads. |
9001 | Formats each partition of the specified storage profile. This test fails if it cannot format a FAT partition or if Fatutil.dll is not available. This test does not format volumes that are not FAT volumes and automatically passes. |
Remarks
This test library can have one or more optional command-line entries to change the behavior of the test. To specify one or more optional command-line entries to the test library, you must use the –c
command-line option. This option forces Tux to pass the specified string into the test library.
See Also
Send Feedback on this topic to the authors