xref: /minix3/minix/tests/blocktest/test.sh (revision 16b6870659aa088aa97905a4c9980f6a654a36a6)
1#!/bin/sh
2
3. ./support.sh
4
5# The following commented-out examples of how to run blocktest for certain
6# driver and device pairs. The syntax of the calls is:
7#
8#   block_test <device> <parameters>
9#
10# <device> is the path to a device to run blocktest on. This may be a full
11# disk, a partition, or a subpartition. If possible, give blocktest the whole
12# disk; otherwise preferably the first partition with a size of slightly over
13# 8GB (for ATA) (better yet: slightly over 128GB); even fewer tests can be done
14# if you give it only a subpartition.
15#
16# <parameters> is a comma-separated list of parameters for blocktest. The
17# following parameters are supported and in fact expected:
18#
19# rw (or) ro   Specifying "rw" will let blocktest write to the target
20#              partition. This allows for a lot more tests, but keep in mind
21#              that any data on the partition (and, if the driver misbehaves,
22#              on other partitions and possibly other disks) WILL BE DESTROYED.
23#              Use "ro" for read-only mediums, such as CD-ROMs.
24# sector       Sector size, in bytes. This should be 512 for ATA devices, and
25#              2048 for ATAPI devices. The default is 512.
26# min_read     Minimum size of a read request. This must be at least 1 and at
27#              most the sector size, and the sector size must be divisible by
28#              it. A value other than the sector size allows blocktest to test
29#              sub-sector reads.
30# min_write    Minimum size of a write request. This must be at least 1 and at
31#              most the sector size. Sub-sector write support is not common in
32#              drivers, and therefore not yet well tested by blocktest. This
33#              parameter is optional; if omitted, the sector size is used.
34# element      Minimum size of a vector element within a larger I/O request.
35#              This must be at least 1 and at most min_read, and min_read must
36#              be divisible by this value. The idea is that several small
37#              elements may add up to the minimum read size.
38# max          Maximum size of any request. This should be a multiple of the
39#              sector size. Blocktest will not test what happens when this
40#              value is exceeded, but it will generate large requests up to
41#              this value. For drivers that do not have a maximum request size,
42#              simply use some large value (typically several megabytes).
43#
44# Before commenting out any entry, you MUST edit the device name for that
45# entry, or you WILL risk losing arbitrary data. You may run multiple tests in
46# parallel, on different devices. Note that at_wini has no maximum request
47# size, so an arbitray size is used. Finally, a disclaimer: a buggy device
48# driver may destroy any data it has access to, so use at your own risk.
49
50# AT_WINI ATA TEST (for IDE disk devices)
51
52#block_test /dev/c0d1 "rw,sector=512,min_read=512,element=2,max=16777216"
53
54# AT_WINI ATAPI TEST (for IDE CD-ROM devices)
55
56#block_test /dev/c0d2 "ro,sector=2048,min_read=2,element=2,max=16777216"
57
58# AHCI ATA TEST (for SATA disk devices)
59
60#block_test /dev/c2d0 "rw,sector=512,min_read=2,element=2,max=4194304"
61
62# AHCI ATAPI TEST (for SATA CD-ROM devices)
63
64#block_test /dev/c2d1 "ro,sector=2048,min_read=2,element=2,max=4194304"
65
66# VND TEST (for configured vnode disk devices)
67
68#block_test /dev/vnd0 "rw,min_read=1,min_write=1,element=1,max=16777216"
69