1adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project/* 2adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Licensed to the Apache Software Foundation (ASF) under one or more 3adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * contributor license agreements. See the NOTICE file distributed with 4adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * this work for additional information regarding copyright ownership. 5adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * The ASF licenses this file to You under the Apache License, Version 2.0 6adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * (the "License"); you may not use this file except in compliance with 7adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * the License. You may obtain a copy of the License at 8adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 9adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * http://www.apache.org/licenses/LICENSE-2.0 10adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * 11adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Unless required by applicable law or agreed to in writing, software 12adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * distributed under the License is distributed on an "AS IS" BASIS, 13adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * See the License for the specific language governing permissions and 15adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * limitations under the License. 16adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 17adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 18935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilsonpackage libcore.java.io; 19adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 20adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.io.IOException; 21adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.io.PipedInputStream; 22adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.io.PipedOutputStream; 23adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 24935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilsonpublic class OldPipedOutputStreamTest extends junit.framework.TestCase { 25adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 26adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project static class PReader implements Runnable { 27adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project PipedInputStream reader; 28adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 29adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public PipedInputStream getReader() { 30adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return reader; 31adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 32adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 33adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public PReader(PipedOutputStream out) { 34adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 35adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project reader = new PipedInputStream(out); 36adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (Exception e) { 37adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project System.out.println("Exception setting up reader: " 38adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project + e.toString()); 39adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 40adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 41adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 42adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public int available() { 43adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 44adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return reader.available(); 45adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (Exception e) { 46adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return -1; 47adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 48adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 49adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 50adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void run() { 51adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 52adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project while (true) { 53adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Thread.sleep(1000); 54adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Thread.yield(); 55adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 56adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (InterruptedException e) { 57adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 58adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 59adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 60adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public String read(int nbytes) { 61adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project byte[] buf = new byte[nbytes]; 62adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 63adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project reader.read(buf, 0, nbytes); 64adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return new String(buf); 65adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IOException e) { 66adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project System.out.println("Exception reading (" 67adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project + Thread.currentThread().getName() + "): " 68adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project + e.toString()); 69adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project return "ERROR"; 70adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 71adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 72adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 73adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 74adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project static final String testString = "Lorem ipsum dolor sit amet,\n" + 75adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "consectetur adipisicing elit,\nsed do eiusmod tempor incididunt ut" + 76adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "labore et dolore magna aliqua.\n"; 77adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project static final int testLength = testString.length(); 78adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 79adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Thread rt; 80adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 81adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project PReader reader; 82adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 83adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project PipedOutputStream out; 84adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 85adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_Constructor() { 86adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project out = new PipedOutputStream(); 87adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertNotNull(out); 88adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 89adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project out.close(); 90adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IOException e) { 91adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Unexpeceted IOException."); 92adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 93adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 94adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 95adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_ConstructorLjava_io_PipedInputStream() throws IOException { 96adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method java.io.PipedOutputStream(java.io.PipedInputStream) 97adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 98adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 99adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project out = new PipedOutputStream(new PipedInputStream()); 100adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project out.write('b'); 101adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (Exception e) { 102adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 1: Constructor failed: " + e.getMessage()); 103adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 104adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project out.close(); 105f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 106adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project PipedInputStream pis = new PipedInputStream(new PipedOutputStream()); 107adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 108adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project out = new PipedOutputStream(pis); 109adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 2: IOException expected because the input stream is already connected."); 110adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IOException e) { 111adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected. 112adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 113adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 114adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 115adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_close() { 116adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project out = new PipedOutputStream(); 117adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project rt = new Thread(reader = new PReader(out)); 118adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project rt.start(); 119adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 120adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project out.close(); 121adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IOException e) { 122adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 1: Unexpected IOException: " + e.getMessage()); 123adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 124adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 125f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 126adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_connectLjava_io_PipedInputStream() throws IOException { 127adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project out = new PipedOutputStream(); 128f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 129adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 130adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project out.connect(new PipedInputStream()); 131adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (Exception e) { 132f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes fail("Test 1: Unexpected exception when connecting: " + 133adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project e.getLocalizedMessage()); 134adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 135adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 136adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 137adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project out.write('B'); 138adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IOException e) { 139adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 2: Unexpected IOException when writing after connecting."); 140adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 141f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 142adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 143adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project out.connect(new PipedInputStream()); 144adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 3: IOException expected when reconnecting the stream."); 145adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IOException e) { 146adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected. 147adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 148adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 149adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 150adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project out.connect(null); 151adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 4: NullPointerException expected."); 152adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException e) { 153adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected. 154adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 155adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 156adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 157adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_flush() throws Exception { 158adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project out = new PipedOutputStream(); 159adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project rt = new Thread(reader = new PReader(out)); 160adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project rt.start(); 161adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project out.write(testString.getBytes(), 0, 10); 162adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Test 1: Bytes have been written before flush.", reader.available() != 0); 163adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project out.flush(); 164f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes assertEquals("Test 2: Flush failed. ", 165adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project testString.substring(0, 10), reader.read(10)); 166adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 167adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 168adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_write$BII() throws IOException { 169adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project out = new PipedOutputStream(); 170f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 171adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 172adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project out.write(testString.getBytes(), 0, 5); 173adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 1: IOException expected."); 174adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IOException e) { 175adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected. 176adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 177f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 178adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project out = new PipedOutputStream(new PipedInputStream()); 179f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 180adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 181adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project out.write(testString.getBytes(), -1, 10); 182adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 2: IndexOutOfBoundsException expected."); 183adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IndexOutOfBoundsException e) { 184adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected. 185adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 186f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 187adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 188adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project out.write(testString.getBytes(), 0, -1); 189adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 3: IndexOutOfBoundsException expected."); 190adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IndexOutOfBoundsException e) { 191adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected. 192adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 193f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 194adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 195adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project out.write(testString.getBytes(), 5, testString.length()); 196adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 4: IndexOutOfBoundsException expected."); 197adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IndexOutOfBoundsException e) { 198adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected. 199adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 200f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 201adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project out.close(); 202adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project out = new PipedOutputStream(); 203adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 204adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project rt = new Thread(reader = new PReader(out)); 205adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project rt.start(); 206adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project out.write(testString.getBytes(), 0, testString.length()); 207adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project out.flush(); 208f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes assertEquals("Test 5: Bytes read do not match the bytes written. ", 209adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project testString, reader.read(testString.length())); 210adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IOException e) { 211adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 5: Unexpected IOException: " + e.getMessage()); 212adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 213adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 214adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project reader.getReader().close(); 215adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 216adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project out.write(testString.getBytes(), 0, 5); 217adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 7: IOException expected."); 218adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IOException e) { 219adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected. 220adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 221adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 222adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 223f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 224adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_writeI() throws IOException { 225adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project out = new PipedOutputStream(); 226f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 227adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 228adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project out.write(42); 229adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 1: IOException expected."); 230adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IOException e) { 231adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected. 232adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 233adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 234adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project rt = new Thread(reader = new PReader(out)); 235adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project rt.start(); 236adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project out.write('c'); 237adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project out.flush(); 238f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes assertEquals("Test 2: The byte read does not match the byte written. ", 239adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "c", reader.read(1)); 240f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 241f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes/* Test disabled due to incomplete implementation, see ticket #92. 242adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project rt.interrupt(); 243f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 244adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 245adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project out.write(42); 246adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 3: IOException expected."); 247adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IOException e) { 248adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected. 249adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 250adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 251adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project*/ 252adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project reader.getReader().close(); 253adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 254adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project out.write(42); 255adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 4: IOException expected."); 256adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IOException e) { 257adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected. 258adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 259adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 260adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 261adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 262adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Tears down the fixture, for example, close a network connection. This 263adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * method is called after a test is executed. 264adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 265adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project protected void tearDown() throws Exception { 266adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project if (rt != null) 267adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project rt.interrupt(); 268adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project super.tearDown(); 269adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 270adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project} 271