1935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson/* 2935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson * Licensed to the Apache Software Foundation (ASF) under one or more 3935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson * contributor license agreements. See the NOTICE file distributed with 4935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson * this work for additional information regarding copyright ownership. 5935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson * The ASF licenses this file to You under the Apache License, Version 2.0 6935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson * (the "License"); you may not use this file except in compliance with 7935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson * the License. You may obtain a copy of the License at 8935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson * 9935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson * http://www.apache.org/licenses/LICENSE-2.0 10935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson * 11935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson * Unless required by applicable law or agreed to in writing, software 12935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson * distributed under the License is distributed on an "AS IS" BASIS, 13935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson * See the License for the specific language governing permissions and 15935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson * limitations under the License. 16935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson */ 17935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson 18935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilsonpackage libcore.java.io; 19935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson 20935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilsonimport java.io.ByteArrayInputStream; 21935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilsonimport java.io.DataInputStream; 22935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilsonimport java.io.DataOutputStream; 23935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilsonimport java.io.EOFException; 24935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilsonimport java.io.IOException; 25935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilsonimport tests.support.Support_OutputStream; 26935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson 27935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilsonpublic class OldDataInputOutputStreamTest extends junit.framework.TestCase { 28935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson 29935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson private DataOutputStream os; 30935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson 31935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson private DataInputStream dis; 32935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson 33935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson private Support_OutputStream sos; 34935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson 35935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson String unihw = "\u0048\u0065\u006C\u006C\u006F\u0020\u0057\u006F\u0072\u006C\u0064"; 36935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson 37935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson public void test_read_writeBoolean() throws IOException { 38935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson os.writeBoolean(true); 39935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson sos.setThrowsException(true); 40935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson try { 41935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson os.writeBoolean(false); 42935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson fail("Test 1: IOException expected."); 43935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } catch (IOException e) { 44935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson // Expected. 45935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } 46935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson sos.setThrowsException(false); 47935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson 48935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson os.close(); 49935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson openDataInputStream(); 50935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson assertTrue("Test 2: Incorrect boolean written or read.", 51935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson dis.readBoolean()); 52935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson 53935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson try { 54935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson dis.readBoolean(); 55935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson fail("Test 3: EOFException expected."); 56935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } catch (EOFException e) { 57935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson // Expected. 58935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } 59935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson 60935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson dis.close(); 61935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson try { 62935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson dis.readBoolean(); 63935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson fail("Test 4: IOException expected."); 64935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } catch (IOException e) { 65935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson // Expected. 66935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } 67935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } 68935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson 69935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson public void test_read_writeByte() throws IOException { 70935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson os.writeByte((byte) 127); 71935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson sos.setThrowsException(true); 72935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson try { 73935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson os.writeByte((byte) 127); 74935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson fail("Test 1: IOException expected."); 75935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } catch (IOException e) { 76935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson // Expected. 77935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } 78935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson sos.setThrowsException(false); 79935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson 80935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson os.close(); 81935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson openDataInputStream(); 82935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson assertEquals("Test 2: Incorrect byte written or read;", 83935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson (byte) 127, dis.readByte()); 84935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson 85935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson try { 86935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson dis.readByte(); 87935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson fail("Test 3: EOFException expected."); 88935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } catch (EOFException e) { 89935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson // Expected. 90935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } 91935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson 92935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson dis.close(); 93935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson try { 94935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson dis.readByte(); 95935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson fail("Test 4: IOException expected."); 96935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } catch (IOException e) { 97935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson // Expected. 98935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } 99935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } 100935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson 101935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson public void test_read_writeChar() throws IOException { 102935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson os.writeChar('b'); 103935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson sos.setThrowsException(true); 104935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson try { 105935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson os.writeChar('k'); 106935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson fail("Test 1: IOException expected."); 107935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } catch (IOException e) { 108935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson // Expected. 109935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } 110935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson sos.setThrowsException(false); 111935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson 112935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson os.close(); 113935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson openDataInputStream(); 114935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson assertEquals("Test 2: Incorrect char written or read;", 115935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson 'b', dis.readChar()); 116935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson 117935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson try { 118935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson dis.readChar(); 119935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson fail("Test 3: EOFException expected."); 120935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } catch (EOFException e) { 121935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson // Expected. 122935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } 123935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson 124935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson dis.close(); 125935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson try { 126935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson dis.readChar(); 127935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson fail("Test 4: IOException expected."); 128935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } catch (IOException e) { 129935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson // Expected. 130935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } 131935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } 132935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson 133935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson public void test_read_writeDouble() throws IOException { 134935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson os.writeDouble(2345.76834720202); 135935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson sos.setThrowsException(true); 136935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson try { 137935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson os.writeDouble(2345.76834720202); 138935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson fail("Test 1: IOException expected."); 139935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } catch (IOException e) { 140935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson // Expected. 141935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } 142935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson sos.setThrowsException(false); 143935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson 144935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson os.close(); 145935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson openDataInputStream(); 146935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson assertEquals("Test 1: Incorrect double written or read;", 147935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson 2345.76834720202, dis.readDouble()); 148935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson 149935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson try { 150935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson dis.readDouble(); 151935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson fail("Test 2: EOFException expected."); 152935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } catch (EOFException e) { 153935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson // Expected. 154935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } 155935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson 156935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson dis.close(); 157935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson try { 158935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson dis.readDouble(); 159935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson fail("Test 3: IOException expected."); 160935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } catch (IOException e) { 161935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson // Expected. 162935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } 163935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } 164935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson 165935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson public void test_read_writeFloat() throws IOException { 166935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson os.writeFloat(29.08764f); 167935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson sos.setThrowsException(true); 168935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson try { 169935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson os.writeFloat(29.08764f); 170935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson fail("Test 1: IOException expected."); 171935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } catch (IOException e) { 172935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson // Expected. 173935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } 174935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson sos.setThrowsException(false); 175935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson 176935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson os.close(); 177935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson openDataInputStream(); 178935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson assertEquals("Test 2: Incorrect float written or read;", 179935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson 29.08764f, dis.readFloat()); 180935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson 181935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson try { 182935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson dis.readFloat(); 183935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson fail("Test 3: EOFException expected."); 184935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } catch (EOFException e) { 185935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson // Expected. 186935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } 187935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson 188935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson dis.close(); 189935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson try { 190935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson dis.readFloat(); 191935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson fail("Test 4: IOException expected."); 192935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } catch (IOException e) { 193935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson // Expected. 194935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } 195935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } 196935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson 197935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson public void test_read_writeInt() throws IOException { 198935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson os.writeInt(768347202); 199935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson sos.setThrowsException(true); 200935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson try { 201935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson os.writeInt(768347202); 202935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson fail("Test 1: IOException expected."); 203935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } catch (IOException e) { 204935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson // Expected. 205935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } 206935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson sos.setThrowsException(false); 207935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson 208935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson os.close(); 209935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson openDataInputStream(); 210935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson assertEquals("Test 1: Incorrect int written or read;", 211935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson 768347202, dis.readInt()); 212935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson 213935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson try { 214935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson dis.readInt(); 215935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson fail("Test 2: EOFException expected."); 216935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } catch (EOFException e) { 217935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson // Expected. 218935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } 219935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson 220935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson dis.close(); 221935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson try { 222935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson dis.readInt(); 223935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson fail("Test 3: IOException expected."); 224935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } catch (IOException e) { 225935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson // Expected. 226935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } 227935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } 228935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson 229935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson public void test_read_writeLong() throws IOException { 230935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson os.writeLong(9875645283333L); 231935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson sos.setThrowsException(true); 232935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson try { 233935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson os.writeLong(9875645283333L); 234935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson fail("Test 1: IOException expected."); 235935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } catch (IOException e) { 236935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson // Expected. 237935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } 238935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson sos.setThrowsException(false); 239935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson 240935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson os.close(); 241935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson openDataInputStream(); 242935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson assertEquals("Test 2: Incorrect long written or read;", 243935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson 9875645283333L, dis.readLong()); 244935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson 245935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson try { 246935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson dis.readLong(); 247935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson fail("Test 3: EOFException expected."); 248935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } catch (EOFException e) { 249935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson // Expected. 250935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } 251935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson 252935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson dis.close(); 253935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson try { 254935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson dis.readLong(); 255935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson fail("Test 4: IOException expected."); 256935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } catch (IOException e) { 257935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson // Expected. 258935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } 259935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } 260935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson 261935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson public void test_read_writeShort() throws IOException { 262935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson os.writeShort(9875); 263935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson sos.setThrowsException(true); 264935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson try { 265935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson os.writeShort(9875); 266935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson fail("Test 1: IOException expected."); 267935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } catch (IOException e) { 268935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson // Expected. 269935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } 270935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson sos.setThrowsException(false); 271935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson 272935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson os.close(); 273935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson openDataInputStream(); 274935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson assertEquals("Test 1: Incorrect short written or read;", 275935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson 9875, dis.readShort()); 276935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson 277935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson try { 278935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson dis.readShort(); 279935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson fail("Test 2: EOFException expected."); 280935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } catch (EOFException e) { 281935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson // Expected. 282935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } 283935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson 284935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson dis.close(); 285935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson try { 286935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson dis.readShort(); 287935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson fail("Test 3: IOException expected."); 288935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } catch (IOException e) { 289935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson // Expected. 290935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } 291935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } 292935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson 293935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson public void test_read_writeUTF() throws IOException { 294935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson os.writeUTF(unihw); 295935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson sos.setThrowsException(true); 296935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson try { 297935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson os.writeUTF(unihw); 298935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson fail("Test 1: IOException expected."); 299935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } catch (IOException e) { 300935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson // Expected. 301935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } 302935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson sos.setThrowsException(false); 303935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson 304935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson os.close(); 305935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson openDataInputStream(); 306935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson assertTrue("Test 1: Incorrect UTF-8 string written or read.", 307935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson dis.readUTF().equals(unihw)); 308935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson 309935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson try { 310935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson dis.readUTF(); 311935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson fail("Test 2: EOFException expected."); 312935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } catch (EOFException e) { 313935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson // Expected. 314935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } 315935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson 316935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson dis.close(); 317935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson try { 318935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson dis.readUTF(); 319935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson fail("Test 3: IOException expected."); 320935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } catch (IOException e) { 321935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson // Expected. 322935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } 323935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } 324935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson 325935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson private void openDataInputStream() throws IOException { 326935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson dis = new DataInputStream(new ByteArrayInputStream(sos.toByteArray())); 327935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } 328935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson 329935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson protected void setUp() { 330935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson sos = new Support_OutputStream(256); 331935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson os = new DataOutputStream(sos); 332935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } 333935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson 334935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson protected void tearDown() { 335935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson try { 336935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson os.close(); 337935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } catch (Exception e) { 338935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } 339935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson try { 340935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson dis.close(); 341935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } catch (Exception e) { 342935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } 343935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson } 344935ede9c3846d11df39435c2f2e4517d90cd61e8Jesse Wilson} 345