>># 
>># Copyright 1990, 1991 by the Massachusetts Institute of Technology and
>># UniSoft Group Limited.
>># 
>># Permission to use, copy, modify, distribute, and sell this software and
>># its documentation for any purpose is hereby granted without fee,
>># provided that the above copyright notice appear in all copies and that
>># both that copyright notice and this permission notice appear in
>># supporting documentation, and that the names of MIT and UniSoft not be
>># used in advertising or publicity pertaining to distribution of the
>># software without specific, written prior permission.  MIT and UniSoft
>># make no representations about the suitability of this software for any
>># purpose.  It is provided "as is" without express or implied warranty.
>># 
>># $XConsortium: stioerrrhn.m,v 1.12 92/06/11 17:25:51 rws Exp $
>># 
>>#
>>TITLE XSetIOErrorHandler CH08
>>ASSERTION A XSetIOErrorHandler-1
A call to XSetIOErrorHandler sets the fatal I/O error
handler to handler.
>>STRATEGY
Call XSetIOErrorHandler to set the handler to errorhandler.
Open display.
Set exit_status.
Create child process.
Child process closes connection number.
Child process attempts to communicate to server,
causing handler to be invoked.
Handler exits with exit status of exit_status.
Verify that child's exit status was exit_status.
Repeat for various other exit_status values.
>>ASSERTION A XSetIOErrorHandler-2
A call to XSetIOErrorHandler returns the previous fatal I/O
error handler.
>>STRATEGY
Call XSetIOErrorHandler to set error handler to errorhandler.
Call XSetIOErrorHandler to set error handler to _errorhandler.
Verify that errorhandler was returned.
Call XSetIOErrorHandler to set error handler to errorhandler.
Verify that _errorhandler was returned.
>>ASSERTION B XSetIOErrorHandler-3
On a call to XSetIOErrorHandler with handler set to NULL
the fatal I/O error handler is set to the default fatal I/O
error handler.
>>STRATEGY
Report UNTESTED
>>ASSERTION A XSetIOErrorHandler-4
The default fatal I/O error handler prints a message and
exits.
>>STRATEGY
Get default error handler.
Create child process.
Child calls default error handler and loops forever.
Parent sleeps for 10 seconds.
Parent verifies that child no longer exists.
>>ASSERTION B XSetIOErrorHandler-5
There is no limit to the number of times XSetIOErrorHandler
may be called.
>>STRATEGY
Set handler to errorhandler.
Call XSetIOErrorHandler 1000 times.
Report untested.
>>ASSERTION - XSetIOErrorHandler-6
When a system call error occurs, then Xlib calls handler.
>>ASSERTION A XSetIOErrorHandler-7
When handler returns, then the client process exits.
>>STRATEGY
Call XSetIOErrorHandler to set the handler to _errorhandler.
Open display.
Set exit_status.
Create child process.
Child process closes connection number.
Child process attempts to communicate to server,
causing handler to be invoked.
Handler returns first time called.
Verify that handler exited in the child proc.
