// Tags: JDK1.0 // This test is from Jeff Sturm. // It tests whether close() on a PipedInputStream will correctly // notify the writer. package gnu.testlet.wonka.io.PipedStream; import gnu.testlet.Testlet; import gnu.testlet.TestHarness; import java.io.*; public class close implements Runnable, Testlet { Thread main; PipedInputStream in; PipedOutputStream out; TestHarness harness; public void run() { try { Thread.sleep(1000); harness.debug("Closing pipe input stream:"); in.close(); Thread.sleep(1000); harness.debug("Interrupting pipe reader:"); main.interrupt(); } catch (Throwable t) { harness.debug(t); } } public void test (TestHarness harness) { int val = 23; try { close test = new close(); test.harness = harness; test.main = Thread.currentThread(); test.out = new PipedOutputStream(); test.in = new PipedInputStream(test.out); (new Thread(test)).start(); val = test.in.read(); } catch (InterruptedIOException t) { harness.check(true,"read() interrupted okay"); } catch (IOException t) { harness.fail("Unexpected IOException thrown"); } } }