Rapidfile Test (SYSTEM)

This test runs through data integrity tests on the specified volume or file.

Test details

Associated requirements

System.Fundamentals.StorageAndBoot.BootPerformance

See the system hardware requirements.

Platforms

Windows RT (ARM-based) Windows 8 (x86) Windows RT 8.1 Windows 8.1 x64 Windows 8.1 x86

Expected run time

~30 minutes

Categories

Certification Reliability

Type

Automated

 

Running the test

Before you run the test, complete the test setup as described in the test requirements: WDTF System Fundamentals Testing Prerequisites.

The volume path must exist before running the test. If a file path is used, the test creates the file during write phase/step and expects the same file path during read/verify phase.

Troubleshooting

For troubleshooting information, see Troubleshooting System Fundamentals Testing.

This test returns Pass or Fail. To review test details, review the test log from Windows Hardware Certification Kit (Windows HCK) Studio.

More information

This test accepts a lot of parameters related to the file system/IO behavior and a few of them are explained below:

I/O Operation

  1. Write This is the default operation performed on the device path provided in the command-line.

  2. Read/Verify Performs read when /V option is specified in the command-line. After a given read IO finishes, test would compare the read data against the expected data (based off the device path given at the command-line) and inform the user if read data doesn’t match with the expected data (data corruption).

I/O Mode

  1. Synchronous When the /SYNC command-line option is specified, I/O requests done by the test on the given device path (file/volume) would be done synchronously. The test waits for the completion of an I/O before issuing another one. This is not the default option.

  2. Asynchronous When the /SYNC command-line option is not specified, I/O requests are performed in an asynchronous manner where the test issues a set of I/O requests without waiting for their completion. Completion of the respective I/O requests are tracked separately. This is the default mode used by the test.

File Size

User can specify a custom file size using the /Z command-line option. User can append one of the following to specify various sizes:

  1. K - For KB

  2. M – For MB

  3. G – For GB

  4. T – For TB

Pending I/O

When using asynchronous I/O mode, the user can specify maximum number of I/O requests to keep pending before waiting for the completion of issued I/O requests. This can be done using /R <number> command-line option. For example, /R 1K would mean that the test keeps issuing new I/O requests until 1000 non-completed I/Os.

File Flags

Test creates a file handle using FS APIs before starting the IOs on a given path. And user can create various IO patterns using following file flags:

  1. /FD – FILE_FLAG_DELETE_ON_CLOSE This option is an indication to the respective FS that once the last handle on the file closes, the given file must be deleted. The test supports this flag only during read/verify operation.

  2. /FS – FILE_FLAG_SEQUENTIAL_SCAN File system flag to optimize file caching. It shows that the access is intended to be sequential from beginning to the end. This flag has no effect if the respective file system doesn’t support cached I/O.

  3. /FR – FILE_FLAG_RANDOM_ACCESS File system flag to optimize file caching. It shows that the access is intended to be random.

  4. /FW – FILE_FLAG_WRITE_THROUGH When used, write operations will not use any intermediate cache and would be served directly to the disk.

  5. /FU – FILE_FLAG_NO_BUFFERING When used, it is an instruction to the file system that the file or device is being opened with no system caching for data reads and writes.

Block Size

The test performs a given I/O with the provided block size. The default block size value is 64K. User can specify different block size using /B command line option.

For example, /B 1M means that user wants to perform single I/O of 1MB.

Debug Break

If user is running the test with the Windows Debugger attached to the system, the /D command-line option can be used to indicate the test to break into debugger (and in a way freeze the system in given state) when an expected error occurs in the test. The test would use this as a hint and breaks into debugger when an expected error is received during write and read/verify operation as well as when read data doesn’t match with expected data during read/verify operation.

Command usage

CommandDescription

rapidfile.exe test.dat /D /Z [FILE_SIZE] /R 16k

Async Write

rapidfile.exe test.dat /V /D /FD /Z [FILE_SIZE] /R 16k

Verify of Async Read

rapidfile.exe test.dat /D /Z [FILE_SIZE] /SYNC

Sync Write

rapidfile.exe test.dat /V /D /FD /Z [FILE_SIZE] /SYNC

Verify of Sync Read

rapidfile.exe test.dat /D /Z [FILE_SIZE] /FU /R 16K

Async Unbuffered Write

rapidfile.exe test.dat /FU /V /D /FD /Z [FILE_SIZE] /R 16K

Verify of Async Unbuffered Read

rapidfile.exe test.dat /D /Z [FILE_SIZE] /FR /R 16K

Random Access Async Write

rapidfile.exe test.dat /FR /V /D /FD /Z [FILE_SIZE] /R 16K

Verify of Random Access Async Read

 

Command syntax

Command optionDescription

rapidfile.exe

The command line options for the test are listed below.

/?

Displays the help.

/PERF

Logs the results to the file system performance database/

/A

Append to existing file.

Default value: Do not append

/B #

Block size. You can append k, m, g, or t.

Default value: 64k

/C

Prints checksum. Also exits with checksum as return value.

/CM

Compress file with default compression format.

/D

Break into the debugger if an unexpected error happens.

/E #

Sleep for # milliseconds in between read/write issue.

/FD

FILE_FLAG_DELETE_ON_CLOSE (only valid with read/verify operation).

/FS

FILE_FLAG_SEQUENTIAL_SCAN

/FW

FILE_FLAG_WRITE_THROUGH

/FU

FILE_FLAG_NO_BUFFERING

/FR

FILE_FLAG_RANDOM_ACCESS

/H

Create disk or volume device handle instead of file handle.

/I

Use idle priority.

/L #

Log statistics every # of seconds.

Default value: 60

/M #

Number of minutes to run the test. This will run write followed by read/verify operations.

/N

Uses a new handle for every I/O.

/NL

Don't log anything to the debugger.

/O

Overwrite existing file.

/P #

Pattern size. You can append k, m, g, or t.

Default value: 4m

/R #

Maximum number of pending requests.

/RT #

Time out interval in milliseconds while retrying on error. Other formats are #s, #m, #h for seconds, minutes and hours respectively.

/S

Use simple pattern for I/O operation.

/SO

Starting offset for a disk or volume device.

/SP

Make the file sparse before writing to it.

/SYNC

Synchronously write to the file (/TC /R cannot be specified).

/TC #

Number of completer threads.

Default value: 1 for create and 4 for verify

/TQ #

Number of queueing threads.

Default value: 1

/V

Verify the file by reading it back.

Default value: no verify

/X

Flush the file after creating.

/Z #

Size of the test file. You can append k, m, g, or t.

Default value: 10m

/VDL #

Location to push VDL out to before starting to write (default == 0, -1 == FileSize).

/EOF #

Location to push EOF out to before starting to write(default == 0, -1 == FileSize).

 

Note  

For command-line help for this test binary, type /?.

 

File list

FileLocation

rapidfile.exe

<testbinroot>\NTTEST\Basetest\core_file_services\Shared_Tests\Wdk\

ntlog.dll

<osbinroot>\NTTest\CommonTest\NtLog\

ntlogger.ini

<osbinroot>\NTTest\CommonTest\NtLog\

dtresslog.dll

<testbinroot>\NTTest\basetest\core_file_services\shared_libs\

 

 

 

Send comments about this topic to Microsoft

Show: