Hi All,
For those people who may be tooking for a good test tool for qualifying
devices, I am making my Data Test 'dt' program available externally at the
following URL:
http://www.bit-net.com/~rmiller/dt.html
This program tests disks, tapes, serial lines, pipes, and others, and
supports a number of options to provide flexible testing.
A summary of what 'dt' offers for I/O testing:
* user specifyable transfer sizes via "bs=" option.
* multiple data pattern methods via "pattern=" or "pf=" options.
* misalign data buffer "align=" options.
* data buffer pad bytes to check for buffer overflow on reads.
* performance statistics at end of test (transfer and I/O rates).
* variable length records via "min=", "max=", and "incr=" options.
* multiple processes via "procs=" option.
* asynchronous I/O via "aios=" or "enable=aio" options.
* mutliple tape files via "files=" option.
* multi-initiator testing via "enable=resets" option (Tru64 Unix only).
* sequential and random I/O via "iotype={sequential,random}" option.
* data I/O mode via "iomode={test,copy,verify}" option.
* data verification control via "compare/verify" flag options.
* indirectly tests tag que support via "procs=" and "aios=" options.
* can be used for testing raw (character) or block (file system) devices.
* properly detects tape end of media on writes and reads.
* serial line testing via "speed=", "parity=", and "flow=" options (requires
loopback)
These are the main test features. For specialized testing, folks usually
use 'dt' in scripts. For more details on 'dt', please refer to the 'dt'
User's Manual.
Note: POSIX AIO does not work on Linux (right now), and buffer alignment
options are not so useful on Linux for drivers doing buffered I/O (instead
of direct I/O). Also, I have not tested serial lines.
If you decide to try out 'dt', please send any questions or problems
directly to me.
Enjoy,
Robin Miller
tru64> dt help
Usage: dt options...
Where options are:
if=filename The input file to read.
of=filename The output file to write.
pf=filename The data pattern file to use.
bs=value The block size to read/write.
log=filename The log file name to write.
aios=value Set number of AIO's to queue.
align=offset Set offset within page aligned buffer.
or align=rotate Rotate data address through sizeof(ptr).
dispose=mode Set file dispose to: {delete or keep}.
dlimit=value Set the dump data buffer limit.
dtype=string Set the device type being tested.
idtype=string Set input device type being tested.
odtype=string Set output device type being tested.
errors=value The number of errors to tolerate.
files=value Set number of tape files to process.
flow=type Set flow to: none, cts_rts, or xon_xoff.
incr=value Set number of record bytes to increment.
iomode=mode Set I/O mode to: {copy, test, or verify}.
iotype=type Set I/O type to: {random or sequential}.
min=value Set the minumum record size to transfer.
max=value Set the maximum record size to transfer.
lba=value Set starting block used w/lbdata option.
lbs=value Set logical block size for lbdata option.
limit=value The number of bytes to transfer.
flags=flags Set open flags: {excl,sync,...}
oflags=flags Set output flags: {append,trunc,...}
oncerr=action Set child error action: {abort or continue}.
parity=string Set parity to: {even, odd, or none}.
passes=value The number of passes to perform.
pattern=value The 32 bit hex data pattern to use.
or pattern=iot Use DJ's IOT test pattern.
or pattern=incr Use an incrementing data pattern.
or pattern=string The string to use for the data pattern.
position=offset Position to offset before testing.
procs=value The number of processes to create.
ralign=value The random I/O offset alignment.
rlimit=value The random I/O data byte limit.
records=value The number of records to process.
runtime=time The number of seconds to execute.
skip=value The number of records to skip past.
seek=value The number of records to seek past.
step=value The number of bytes seeked after I/O.
speed=value The tty speed (baud rate) to use.
timeout=value The tty read timeout in .10 seconds.
ttymin=value The tty read minimum count (sets vmin).
enable=flag Enable one or more of the flags below.
disable=flag Disable one or more of the flags below.
Flags to enable/disable:
aio POSIX Asynchronous I/O.(Default: disabled)
compare Data comparison. (Default: enabled)
coredump Core dump on errors. (Default: disabled)
debug Debug output. (Default: disabled)
Debug Verbose debug output. (Default: disabled)
dump Dump data buffer. (Default: enabled)
eei Tape EEI reporting. (Default: enabled)
resets Tape reset handling. (Default: disabled)
flush Flush tty I/O queues. (Default: enabled)
header Log file header. (Default: enabled)
lbdata Logical block data. (Default: disabled)
loopback Loopback mode. (Default: disabled)
microdelay Microsecond delays. (Default: disabled)
mmap Memory mapped I/O. (Default: disabled)
modem Test modem tty lines. (Default: disabled)
pstats Per pass statistics. (Default: enabled)
stats Display statistics. (Default: enabled)
table Table(sysinfo) timing. (Default: disabled)
ttyport Flag device as a tty. (Default: disabled)
verbose Verbose output. (Default: enabled)
verify Verify data written. (Default: enabled)
Example: enable=debug disable=compare,pstats
Common Open Flags:
excl (O_EXCL) Exclusive open. (don't share)
ndelay (O_NDELAY) Non-delay open. (don't block)
nonblock (O_NONBLOCK) Non-blocking open/read/write.
rsync (O_RSYNC) Synchronize read operations.
sync (O_SYNC) Sync updates for data/file attributes.
Output Open Flags:
append (O_APPEND) Append data to end of existing file.
defer (O_DEFER) Defer updates to file during writes.
dsync (O_DSYNC) Sync data to disk during write operations.
trunc (O_TRUNC) Truncate an exisiting file before writing.
Delays (Values are seconds, unless microdelay enabled):
cdelay=value Delay before closing the file. (Def: 0)
edelay=value Delay between multiple passes. (Def: 0)
rdelay=value Delay before reading each record. (Def: 0)
sdelay=value Delay before starting the test. (Def: 0)
tdelay=value Delay before child terminates. (Def: 1)
wdelay=value Delay before writing each record. (Def: 0)
Numeric Input:
For options accepting numeric input, the string may contain any
combination of the following characters:
Special Characters:
w = words (4 bytes) q = quadwords (8 bytes)
b = blocks (512 bytes) k = kilobytes (1024 bytes)
m = megabytes (1048576 bytes) p = page size (8192 bytes)
g = gigabytes (1073741824 bytes)
t = terabytes (1099511627776 bytes)
inf or INF = infinity (4294967295l bytes)
Arithmetic Characters:
+ = addition - = subtraction
* or x = multiplcation / = division
% = remainder
Bitwise Characters:
~ = complement of value >> = shift bits right
<< = shift bits left & = bitwise 'and' operation
| = bitwise 'or' operation ^ = bitwise exclusive 'or'
The default base for numeric input is decimal, but you can override
this default by specifying 0x or 0X for hexadecimal conversions, or
a leading zero '0' for octal conversions. NOTE: Evaluation is from
right to left without precedence, and parenthesis are not permitted.
Pattern String Input:
\\ = Backslash \a = Alert (bell) \b = Backspace
\f = Formfeed \n = Newline \r = Carriage Return
\t = Tab \v = Vertical Tab \e or \E = Escape
\ddd = Octal Value \xdd or \Xdd = Hexadecimal Value
Time Input:
d = days (86400 seconds), h = hours (3600 seconds)
m = minutes (60 seconds), s = seconds (the default)
Arithmetic characters are permitted, and implicit addition is
performed on strings of the form '1d5h10m30s'.
Defaults:
errors=1, files=0, passes=1, records=0, bs=512, log=stderr
pattern=0x39c39c39, flow=xon_xoff, parity=none, speed=9600
timeout=3 seconds, dispose=delete, align=0 (page aligned)
aios=8, dlimit=64, oncerr=continue, iomode=test, iotype=sequential
--> Date: August 26th, 1999, Version: 12.6, Author: Robin T. Miller <--
tru64>
-
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to [EMAIL PROTECTED]