📄 windowstesting.txt
字号:
January 13th, 2001
Hi All,
I want to write this stuff down, while it's fresh in my mind,
(it may get moldy soon :-), which may help during your script port.
Jeremy, I'm sure I've missed some things, so feel free to
update this and redistribute (as necessary).
I know this is lengthy, but please save it and read prior to
starting your Windows port, as it may save you lots of time :-)
Here's a few things to keep in mind on Windows/NT/2000:
- A sub-set of Cygnus tools will be packaged with our Windows
test kit. Currently, these tools are stored in dpg/cygnus,
and for transparent access your PATH variable needs to include
this directory.
As mentioned in previous e-mail, to expedite this Windows port,
I think we should utilize these Unix tools. All necessary tools
exist, except those for creating and mounting file systems.
Rose, for tapes 'mt' exists and 'tar' also supports tapes.
Jeremy, perhaps part of our installation should update the system
PATH variable to include the location of our tools and Cygnus?
- Cygnus raw access to physical devices has been implemented via
mounting devices with a fake /dev prefix. Once mounted, this
mount points are stored in the registry so they are retained
between boots. Disk devices can be mounted with any name,
but tapes must follow this format:
meda# mount -f -b '\\.\tape0' /dev/rmt0
meda# mount -f -b '\\.\tape0' /dev/nrmt0
meda# mount
Device Directory Type Flags
\\.\tape0 /dev/rmt0 user binmode
\\.\tape0 /dev/nrmt0 user binmode
meda#
Disk devices should be mounted using the actual drive name:
meda# mount -f -b //./PhysicalDrive3 /dev/PhysicalDrive3
Please Note: These mount points will be handled transparently
by MakeDeviceName{}. Jeremy is doing this work (some is done).
Also Note: The Cygnus 'df' reports errors on mounted devices
which don't have a valid file system (exits with code of 1).
Special Note on Windows Device Prefix: The normal Windows hidden
device prefix is \\.\ as shown above. Cygnus permits using forward
slashes //./ for ease of use. Otherwise in a Unix shell, you must
quote or double up the backslashes, for example '\\.\tape0' or
\\\\.\\tape0 (yuck!)
Scu, which is a native mode program, has also been updated to accept
the Unix /dev/ prefix. This way a consistent device name can be used
with both Dt and Scu.
Native Windows programs require the native device prefix (of course).
- POSIX AIO Support: This is not supported by the Cygnus API's.
- Tape Testing: I'm happy to report with the latest Dt updates, all
tape testing has been succesful to date. This includes multi-file
tests which exercise Write File Mark and Forward Space File Mark.
Please Note: Unlike Unix systems, the appropriate tape driver
must be installed from the Control Panel -> "Tape Devices" ICON.
Windows uses a separate device driver for each tape device!!!
- Disk Testing: Dt has run successfully on physical disks, through
the file system and with multiple processes. Dt expects physical
disk names to be called PhysicalDriveN. Otherwise "dtype=disk" is
necessary to tell Dt the device type you are testing.
The Cygnus Unix API's only support a signed 32-bit file offset,
which limits random I/O seeks to 2Gbytes. However, sequential
I/O does write/read the entire media, so internally the API's
do maintain the real 64-bit Windows file offset.
How does this affect us?
o Random I/O to limited to 2Gbytes (Dt handles this).
o If an I/O error occurs, the file offset and relative block
reported by Dt will be inaccurate past the 2GByte offset.
- Scu and Disks: The Windows Scu assumes if a drive letter is
assigned to a disk, that the disk is mounted. This assumption
is not always correct, so Scu needs updated to determine if a
valid partition and file system exists. For now, you can use
"set bypass on" to avoid this mounted file system check. But
obviously use care, or Scu will overwrite mounted file systems.
Please Note: Dt does not do *any* mounted file system checks!
- Scu and Compaq SCSI Adapters: Jeremy found duirng his testing,
that some Compaq adapters report an Initiator of 255. This
created a problem for Scu, since this ID is used to differentiate
between IDE (ATAPI) and SCSI adapters.
Workaround: When Scu is started up, a "set ide on" command is
issued which enables use of ATAPI devices. Please note, the
ATAPI command set is not 100% compatable with SCSI, so some
Scu commands will not work (in fact, some SCSI commands crash
my NT SP5 system!).
- Windows Tcl Woes: As mentioned in previous e-mail, the TclX
wait{} command is *not* returning expected exit status. This
problem still needs to be resolved. You'll know you've had an
error, but you cannot examine the real exit code. The latter
code is necessary for detecting dt's EOF status (for example).
Our common procedures execute commands by openning a pipe to
the command line. This approach was implemented so non-blocking
I/O could be utilized to read the output. The Tcl construct for
merging the stderr output with the stdout stream is broken on
Windows. To overcome this deficiency, a pipeline to the Cygnus
shell is used and the shell construct "2>&1" is appended to merge
the data streams.
The Windows TclX does not support all the Unix signals we are
catching, so your script needs updated as follows:
if { $tcl_platform(platform) == "windows" } {
signal trap {SIGINT} {TerminateTesting %S}
} else {
signal trap {SIGHUP SIGINT SIGQUIT} {TerminateTesting %S}
}
Please Note: TclPro *must* be installed to obtain the TclX
extension. Installing TclPro will be part of Jeremy's
installation process.
Ok, end of brain dump... that's all I can remember right now!
Cheers,
Robin
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -