================================================
``sd_bench`` SD card or mount point bench test
================================================

Performs bench mark testing on SD card or other mount points using the file system layer.

A single test run.

- Sequentially writes blocks of bytes to a test file on the device until the test duration elapses.
- Optionally, the number of bytes written are read back and verified.

The following runtime options are available::

  sdbench: [-b] [-r] [-d] [-k] [-s] [-a] [-v]
    -b   Block size per write (1-65536), default 512
    -r   Number of runs (1-10000), default 5
    -d   Max duration of a test (ms) (1-60000), default 2000
    -k   Keep test file when finished, default false
    -s   Call fsync after each block, false calls fsync
         only at the end of each run, default false
    -a   Test performance on aligned data, default false
    -v   Verify data and block number, default true

An example of a completed test::

  nsh> sdbench
  Using block size = 512 bytes, sync = false

  Testing Sequential Write Speed...
    Run  1:    345.9 KB/s, max write time: 156.907 ms (3.2 KB/s), fsync: 259.687 ms
    Run  2:    378.8 KB/s, max write time: 30.273 ms (16.5 KB/s), fsync: 240.832 ms
    Run  3:    372.1 KB/s, max write time: 37.630 ms (13.3 KB/s), fsync: 261.005 ms
    Run  4:    341.7 KB/s, max write time: 186.352 ms (2.7 KB/s), fsync: 240.875 ms
    Run  5:    375.6 KB/s, max write time: 37.785 ms (13.2 KB/s), fsync: 250.928 ms
    Avg   :    362.8 KB/s, 3.999 MB written.

  Testing Sequential Read Speed...
    Run  1:    636.5 KB/s, max read/verify time: 54.1180 ms (9.2 KB/s)
    Run  2:    648.9 KB/s, max read/verify time: 54.0520 ms (9.3 KB/s)
    Run  3:    663.2 KB/s, max read/verify time: 43.5360 ms (11.5 KB/s)
    Run  4:    721.8 KB/s, max read/verify time: 11.7640 ms (42.5 KB/s)
    Avg   :    652.6 KB/s, 3.999 MB and verified


The following Kconfig options can be used to configure the application at compile time.

- ``CONFIG_TESTING_SD_BENCH`` - Enable the SD benchmark testing utility.
- ``CONFIG_TESTING_SD_BENCH_PROGNAME`` - The name of the program registered with nsh.
- ``CONFIG_TESTING_SD_BENCH_PRIORITY`` - The priority of the task.
- ``CONFIG_TESTING_SD_BENCH_STACKSIZE`` - The stacksize of the task.
- ``CONFIG_TESTING_SD_BENCH_DEVICE`` - The mountpoint to run sdbench on.