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 18937efdb41a1c4448ddd7bced4783009ab36a26acJesse Wilsonpackage libcore.java.io; 19adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 20adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.io.EOFException; 21adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.io.File; 22adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.io.FileInputStream; 23adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.io.FileOutputStream; 24adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.io.FileNotFoundException; 25adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.io.IOException; 26adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.io.RandomAccessFile; 27adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 28adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.nio.channels.FileChannel; 29adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Projectimport java.nio.channels.NonWritableChannelException; 30adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 31937efdb41a1c4448ddd7bced4783009ab36a26acJesse Wilsonpublic class OldRandomAccessFileTest extends junit.framework.TestCase { 32adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 33adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public String fileName; 34adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 35adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public boolean ufile = true; 36adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 37adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project java.io.RandomAccessFile raf; 38adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 39adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project java.io.File f; 40adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 41adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project String unihw = "\u0048\u0065\u006C\u0801\u006C\u006F\u0020\u0057\u0081\u006F\u0072\u006C\u0064"; 42adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 43adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project static final String testString = "Lorem ipsum dolor sit amet,\n" + 44adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "consectetur adipisicing elit,\nsed do eiusmod tempor incididunt ut" + 45adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "labore et dolore magna aliqua.\n"; 46adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project static final int testLength = testString.length(); 47adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 48adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 49229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.io.RandomAccessFile#RandomAccessFile(java.io.File, 50adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * java.lang.String) 51adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 52adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_ConstructorLjava_io_FileLjava_lang_String() throws Exception { 53adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project RandomAccessFile raf = null; 54adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project File tmpFile = new File(fileName); 55adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 56adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 57adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf = new java.io.RandomAccessFile(tmpFile, "r"); 58adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 1: FileNotFoundException expected."); 59adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (FileNotFoundException e) { 60adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected. 61adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalArgumentException e) { 62adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 2: Unexpected IllegalArgumentException: " + e.getMessage()); 63adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 64adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 65adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project tmpFile.createNewFile(); 66f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 67adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 68adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Checking the remaining valid mode parameters. 69adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 70adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf = new java.io.RandomAccessFile(tmpFile, "rwd"); 71adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalArgumentException e) { 72adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 3: Unexpected IllegalArgumentException: " + e.getMessage()); 73adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 74adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.close(); 75adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 76adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf = new java.io.RandomAccessFile(tmpFile, "rws"); 77adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalArgumentException e) { 78adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 4: Unexpected IllegalArgumentException: " + e.getMessage()); 79adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 80adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.close(); 81adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 82adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf = new java.io.RandomAccessFile(tmpFile, "rw"); 83adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalArgumentException e) { 84adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 5: Unexpected IllegalArgumentException: " + e.getMessage()); 85adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 86adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.close(); 87f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 88adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Checking an invalid mode parameter. 89adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 90adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf = new java.io.RandomAccessFile(tmpFile, "i"); 91adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 6: IllegalArgumentException expected."); 92adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalArgumentException e) { 93adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected. 94adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 95adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } finally { 96adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project if (raf != null ) raf.close(); 97adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project tmpFile.delete(); 98adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 99adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 100adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 101adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 102229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.io.RandomAccessFile#RandomAccessFile(java.lang.String, 103adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * java.lang.String) 104adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 105adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_ConstructorLjava_lang_StringLjava_lang_String() 106adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project throws IOException { 107adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project RandomAccessFile raf = null; 108adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project File tmpFile = new File(fileName); 109adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 110adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 111adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf = new java.io.RandomAccessFile(fileName, "r"); 112adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 1: FileNotFoundException expected."); 113adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (FileNotFoundException e) { 114adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected. 115adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalArgumentException e) { 116adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 2: Unexpected IllegalArgumentException: " + e.getMessage()); 117adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 118adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 119adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 120adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Checking the remaining valid mode parameters. 121adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 122adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf = new java.io.RandomAccessFile(fileName, "rwd"); 123adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalArgumentException e) { 124adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 3: Unexpected IllegalArgumentException: " + e.getMessage()); 125adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 126adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.close(); 127adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 128adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf = new java.io.RandomAccessFile(fileName, "rws"); 129adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalArgumentException e) { 130adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 4: Unexpected IllegalArgumentException: " + e.getMessage()); 131adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 132adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.close(); 133adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 134adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf = new java.io.RandomAccessFile(fileName, "rw"); 135adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalArgumentException e) { 136adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 5: Unexpected IllegalArgumentException: " + e.getMessage()); 137adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 138adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.close(); 139f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 140adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Checking an invalid mode parameter. 141adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 142adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf = new java.io.RandomAccessFile(fileName, "i"); 143adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 6: IllegalArgumentException expected."); 144adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IllegalArgumentException e) { 145adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected. 146adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 147f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 148adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Checking for NoWritableChannelException. 149adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf = new java.io.RandomAccessFile(fileName, "r"); 150adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project FileChannel fcr = raf.getChannel(); 151adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 152adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 153adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fcr.lock(0L, Long.MAX_VALUE, false); 154adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 7: NonWritableChannelException expected."); 155adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NonWritableChannelException e) { 156adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected. 157adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 158f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 159adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } finally { 160adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project if (raf != null ) raf.close(); 161adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project if (tmpFile.exists()) tmpFile.delete(); 162adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 163adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 164adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 165adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 166229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.io.RandomAccessFile#close() 167adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 168adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_close() { 169adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method void java.io.RandomAccessFile.close() 170adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 171adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project RandomAccessFile raf = new java.io.RandomAccessFile(fileName, "rw"); 172adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.close(); 173adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.write("Test".getBytes(), 0, 4); 174adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Failed to close file properly."); 175adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IOException e) {} 176adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 177adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 178adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 179229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.io.RandomAccessFile#getChannel() 180adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 181adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_getChannel() throws IOException { 182adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 183adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project RandomAccessFile raf = new java.io.RandomAccessFile(fileName, "rw"); 184adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project FileChannel fc = raf.getChannel(); 185f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 186adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Indirect test: If the file's file pointer moves then the position 187adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // in the channel has to move accordingly. 188adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Test 1: Channel position expected to be 0.", fc.position() == 0); 189f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 190adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.write(testString.getBytes()); 191f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes assertEquals("Test 2: Unexpected channel position.", 192adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project testLength, fc.position()); 193f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes assertTrue("Test 3: Channel position is not equal to file pointer.", 194adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fc.position() == raf.getFilePointer()); 195adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.close(); 196adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 197f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 198adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 199229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.io.RandomAccessFile#getFD() 200adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 201adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_getFD() throws IOException { 202adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method java.io.FileDescriptor 203adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // java.io.RandomAccessFile.getFD() 204adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 205adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project RandomAccessFile raf = new java.io.RandomAccessFile(fileName, "rw"); 206adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Test 1: Returned invalid fd.", raf.getFD().valid()); 207adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 208adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.close(); 209adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertFalse("Test 2: Returned valid fd after close", raf.getFD().valid()); 210adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 211adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 212adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 213229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.io.RandomAccessFile#getFilePointer() 214adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 215adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_getFilePointer() throws IOException { 216adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method long java.io.RandomAccessFile.getFilePointer() 217adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project RandomAccessFile raf = new java.io.RandomAccessFile(fileName, "rw"); 218adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.write(testString.getBytes(), 0, testLength); 219adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Test 1: Incorrect filePointer returned. ", testLength, raf 220adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project .getFilePointer()); 221adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.close(); 222adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 223adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.getFilePointer(); 224adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 2: IOException expected."); 225adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IOException e) { 226adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected. 227adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 228adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 229adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 230adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 231229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.io.RandomAccessFile#length() 232adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 233adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_length() throws IOException { 234adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method long java.io.RandomAccessFile.length() 235adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project RandomAccessFile raf = new java.io.RandomAccessFile(fileName, "rw"); 236adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.write(testString.getBytes()); 237f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes assertEquals("Test 1: Incorrect length returned. ", testLength, 238adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.length()); 239adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.close(); 240adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 241adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.length(); 242adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 2: IOException expected."); 243adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IOException e) { 244adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected. 245adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 246adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 247adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 248adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 249229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.io.RandomAccessFile#read() 250adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 251adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_read_write() throws IOException { 252adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project int i; 253adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project byte[] testBuf = testString.getBytes(); 254adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project RandomAccessFile raf = new java.io.RandomAccessFile(fileName, "rw"); 255adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (i = 0; i < testString.length(); i++) { 256adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 257adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.write(testBuf[i]); 258adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (Exception e) { 259f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes fail("Test 1: Unexpected exception while writing: " 260adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project + e.getMessage()); 261adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 262adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 263f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 264adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.seek(0); 265adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 266adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (i = 0; i < testString.length(); i++) { 267f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes assertEquals(String.format("Test 2: Incorrect value written or read at index %d; ", i), 268adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project testBuf[i], raf.read()); 269adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 270f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 271adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Test 3: End of file indicator (-1) expected.", raf.read() == -1); 272f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 273adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.close(); 274adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 275adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.write(42); 276adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 4: IOException expected."); 277adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IOException e) { 278adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected. 279adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 280adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 281adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.read(); 282adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 5: IOException expected."); 283adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IOException e) { 284adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected. 285adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 286adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 287adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 288adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 289229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.io.RandomAccessFile#read(byte[]) 290adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 291adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_read$B() throws IOException { 292adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project FileOutputStream fos = new java.io.FileOutputStream(fileName); 293adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fos.write(testString.getBytes(), 0, testLength); 294adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fos.close(); 295adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 296adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project RandomAccessFile raf = new java.io.RandomAccessFile(fileName, "r"); 297adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project byte[] rbuf = new byte[testLength + 10]; 298f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 299adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project int bytesRead = raf.read(rbuf); 300f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes assertEquals("Test 1: Incorrect number of bytes read. ", 301adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project testLength, bytesRead); 302adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Test 2: Incorrect bytes read. ", testString, 303adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project new String(rbuf, 0, testLength)); 304f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 305adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project bytesRead = raf.read(rbuf); 306adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Test 3: EOF (-1) expected. ", bytesRead == -1); 307adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 308adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.close(); 309adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 310adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project bytesRead = raf.read(rbuf); 311adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 4: IOException expected."); 312adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IOException e) { 313adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected. 314adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 315adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 316adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 317adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 318229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.io.RandomAccessFile#read(byte[], int, int) 319adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 320adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_read$BII() throws IOException { 321adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project int bytesRead; 322adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project RandomAccessFile raf = new java.io.RandomAccessFile(fileName, "rw"); 323adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project byte[] rbuf = new byte[4000]; 324f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 325adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project FileOutputStream fos = new java.io.FileOutputStream(fileName); 326adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fos.write(testString.getBytes(), 0, testLength); 327adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fos.close(); 328f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 329adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Read half of the file contents. 330adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project bytesRead = raf.read(rbuf, 10, testLength / 2); 331f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes assertEquals("Test 1: Incorrect number of bytes read. ", 332adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project testLength / 2, bytesRead); 333f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes assertEquals("Test 2: Incorrect bytes read. ", 334adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project testString.substring(0, testLength / 2), 335adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project new String(rbuf, 10, testLength / 2)); 336f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 337adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Read the rest of the file contents. 338adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project bytesRead = raf.read(rbuf, 0, testLength); 339f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes assertEquals("Test 3: Incorrect number of bytes read. ", 340adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project testLength - (testLength / 2), bytesRead); 341f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes assertEquals("Test 4: Incorrect bytes read. ", 342adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project testString.substring(testLength / 2, (testLength / 2) + bytesRead), 343adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project new String(rbuf, 0, bytesRead)); 344f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 345adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Try to read even more. 346adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project bytesRead = raf.read(rbuf, 0, 1); 347adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Test 5: EOF (-1) expected. ", bytesRead == -1); 348adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 349adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Illegal parameter value tests. 350adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 351adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.read(rbuf, -1, 1); 352adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 6: IndexOutOfBoundsException expected."); 353adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IndexOutOfBoundsException e) { 354adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected. 355adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 356adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 357adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.read(rbuf, 0, -1); 358adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 7: IndexOutOfBoundsException expected."); 359adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IndexOutOfBoundsException e) { 360adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected. 361adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 362adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 363adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.read(rbuf, 2000, 2001); 364adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 8: IndexOutOfBoundsException expected."); 365adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IndexOutOfBoundsException e) { 366adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected. 367adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 368f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 369adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // IOException test. 370adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.close(); 371adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 372adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project bytesRead = raf.read(rbuf, 0, 1); 373adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 9: IOException expected."); 374adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IOException e) { 375adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected. 376adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 377adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 378adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 379adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 380229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.io.RandomAccessFile#readBoolean() 381229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.io.RandomAccessFile#writeBoolean(boolean) 382adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 383adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_read_writeBoolean() throws IOException { 384adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project RandomAccessFile raf = new java.io.RandomAccessFile(fileName, "rw"); 385adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.writeBoolean(true); 386adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.writeBoolean(false); 387adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.seek(0); 388f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 389f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes assertEquals("Test 1: Incorrect value written or read;", 390adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project true, raf.readBoolean()); 391f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes assertEquals("Test 2: Incorrect value written or read;", 392adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project false, raf.readBoolean()); 393f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 394adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 395adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.readBoolean(); 396adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 3: EOFException expected."); 397adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (EOFException e) { 398adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected. 399adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 400f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 401adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.close(); 402adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 403adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.writeBoolean(false); 404adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 4: IOException expected."); 405adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IOException e) { 406adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected. 407adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 408adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 409adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.readBoolean(); 410adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 5: IOException expected."); 411adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IOException e) { 412adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected. 413adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 414adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 415adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 416adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 417229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.io.RandomAccessFile#readByte() 418229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.io.RandomAccessFile#writeByte(byte) 419adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 420adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_read_writeByte() throws IOException { 421adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project RandomAccessFile raf = new java.io.RandomAccessFile(fileName, "rw"); 422adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.writeByte(Byte.MIN_VALUE); 423adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.writeByte(11); 424adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.writeByte(Byte.MAX_VALUE); 425adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.writeByte(Byte.MIN_VALUE - 1); 426adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.writeByte(Byte.MAX_VALUE + 1); 427adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.seek(0); 428f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 429f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes assertEquals("Test 1: Incorrect value written or read;", 430adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Byte.MIN_VALUE, raf.readByte()); 431f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes assertEquals("Test 2: Incorrect value written or read;", 432adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 11, raf.readByte()); 433f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes assertEquals("Test 3: Incorrect value written or read;", 434adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Byte.MAX_VALUE, raf.readByte()); 435f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes assertEquals("Test 4: Incorrect value written or read;", 436adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 127, raf.readByte()); 437f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes assertEquals("Test 5: Incorrect value written or read;", 438adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project -128, raf.readByte()); 439f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 440adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 441adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.readByte(); 442adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 6: EOFException expected."); 443adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (EOFException e) { 444adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected. 445adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 446f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 447adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.close(); 448adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 449adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.writeByte(13); 450adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 7: IOException expected."); 451adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IOException e) { 452adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected. 453adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 454adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 455adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.readByte(); 456adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 8: IOException expected."); 457adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IOException e) { 458adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected. 459adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 460adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 461adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 462adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 463229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.io.RandomAccessFile#readChar() 464229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.io.RandomAccessFile#writeChar(char) 465adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 466adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_read_writeChar() throws IOException { 467adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project RandomAccessFile raf = new java.io.RandomAccessFile(fileName, "rw"); 468adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.writeChar(Character.MIN_VALUE); 469adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.writeChar('T'); 470adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.writeChar(Character.MAX_VALUE); 471adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.writeChar(Character.MIN_VALUE - 1); 472adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.writeChar(Character.MAX_VALUE + 1); 473adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.seek(0); 474f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 475f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes assertEquals("Test 1: Incorrect value written or read;", 476adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Character.MIN_VALUE, raf.readChar()); 477f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes assertEquals("Test 2: Incorrect value written or read;", 478adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 'T', raf.readChar()); 479f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes assertEquals("Test 3: Incorrect value written or read;", 480adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Character.MAX_VALUE, raf.readChar()); 481f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes assertEquals("Test 4: Incorrect value written or read;", 482adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 0xffff, raf.readChar()); 483f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes assertEquals("Test 5: Incorrect value written or read;", 484adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 0, raf.readChar()); 485f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 486adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 487adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.readChar(); 488adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 6: EOFException expected."); 489adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (EOFException e) { 490adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected. 491adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 492f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 493adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.close(); 494adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 495adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.writeChar('E'); 496adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 7: IOException expected."); 497adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IOException e) { 498adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected. 499adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 500adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 501adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.readChar(); 502adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 8: IOException expected."); 503adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IOException e) { 504adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected. 505adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 506adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 507adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 508adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 509229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.io.RandomAccessFile#readDouble() 510229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.io.RandomAccessFile#writeDouble(double) 511adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 512adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_read_writeDouble() throws IOException { 513adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project RandomAccessFile raf = new java.io.RandomAccessFile(fileName, "rw"); 514adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.writeDouble(Double.MAX_VALUE); 515adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.writeDouble(424242.4242); 516adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.seek(0); 517f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 518f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes assertEquals("Test 1: Incorrect value written or read;", 519adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Double.MAX_VALUE, raf.readDouble()); 520f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes assertEquals("Test 2: Incorrect value written or read;", 521adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 424242.4242, raf.readDouble()); 522f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 523adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 524adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.readDouble(); 525adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 3: EOFException expected."); 526adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (EOFException e) { 527adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected. 528adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 529f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 530adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.close(); 531adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 532adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.writeDouble(Double.MIN_VALUE); 533adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 4: IOException expected."); 534adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IOException e) { 535adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected. 536adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 537adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 538adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.readDouble(); 539adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 5: IOException expected."); 540adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IOException e) { 541adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected. 542adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 543adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 544adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 545adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 546229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.io.RandomAccessFile#readFloat() 547229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.io.RandomAccessFile#writeFloat(double) 548adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 549adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_read_writeFloat() throws IOException { 550adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project RandomAccessFile raf = new java.io.RandomAccessFile(fileName, "rw"); 551adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.writeFloat(Float.MAX_VALUE); 552adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.writeFloat(555.55f); 553adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.seek(0); 554f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 555f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes assertEquals("Test 1: Incorrect value written or read. ", 556adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Float.MAX_VALUE, raf.readFloat()); 557f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes assertEquals("Test 2: Incorrect value written or read. ", 558adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 555.55f, raf.readFloat()); 559f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 560adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 561adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.readFloat(); 562adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 3: EOFException expected."); 563adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (EOFException e) { 564adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected. 565adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 566f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 567adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.close(); 568adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 569adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.writeFloat(Float.MIN_VALUE); 570adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 4: IOException expected."); 571adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IOException e) { 572adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected. 573adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 574adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 575adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.readFloat(); 576adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 5: IOException expected."); 577adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IOException e) { 578adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected. 579adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 580adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 581adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 582adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 583229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.io.RandomAccessFile#readInt() 584229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.io.RandomAccessFile#writeInt(char) 585adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 586adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_read_writeInt() throws IOException { 587adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project RandomAccessFile raf = new java.io.RandomAccessFile(fileName, "rw"); 588adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.writeInt(Integer.MIN_VALUE); 589adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.writeInt('T'); 590adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.writeInt(Integer.MAX_VALUE); 591adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.writeInt(Integer.MIN_VALUE - 1); 592adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.writeInt(Integer.MAX_VALUE + 1); 593adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.seek(0); 594f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 595f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes assertEquals("Test 1: Incorrect value written or read;", 596adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Integer.MIN_VALUE, raf.readInt()); 597f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes assertEquals("Test 2: Incorrect value written or read;", 598adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 'T', raf.readInt()); 599f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes assertEquals("Test 3: Incorrect value written or read;", 600adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Integer.MAX_VALUE, raf.readInt()); 601f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes assertEquals("Test 4: Incorrect value written or read;", 602adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 0x7fffffff, raf.readInt()); 603f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes assertEquals("Test 5: Incorrect value written or read;", 604adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 0x80000000, raf.readInt()); 605f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 606adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 607adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.readInt(); 608adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 6: EOFException expected."); 609adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (EOFException e) { 610adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected. 611adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 612f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 613adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.close(); 614adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 615adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.writeInt('E'); 616adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 7: IOException expected."); 617adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IOException e) { 618adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected. 619adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 620adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 621adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.readInt(); 622adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 8: IOException expected."); 623adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IOException e) { 624adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected. 625adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 626adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 627adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 628adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 629229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.io.RandomAccessFile#readLong() 630229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.io.RandomAccessFile#writeLong(char) 631adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 632adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_read_writeLong() throws IOException { 633adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project RandomAccessFile raf = new java.io.RandomAccessFile(fileName, "rw"); 634adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.writeLong(Long.MIN_VALUE); 635adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.writeLong('T'); 636adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.writeLong(Long.MAX_VALUE); 637adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.writeLong(Long.MIN_VALUE - 1); 638adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.writeLong(Long.MAX_VALUE + 1); 639adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.seek(0); 640f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 641f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes assertEquals("Test 1: Incorrect value written or read;", 642adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Long.MIN_VALUE, raf.readLong()); 643f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes assertEquals("Test 2: Incorrect value written or read;", 644adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 'T', raf.readLong()); 645f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes assertEquals("Test 3: Incorrect value written or read;", 646adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Long.MAX_VALUE, raf.readLong()); 647f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes assertEquals("Test 4: Incorrect value written or read;", 648adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 0x7fffffffffffffffl, raf.readLong()); 649f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes assertEquals("Test 5: Incorrect value written or read;", 650adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 0x8000000000000000l, raf.readLong()); 651f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 652adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 653adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.readLong(); 654adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 6: EOFException expected."); 655adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (EOFException e) { 656adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected. 657adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 658f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 659adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.close(); 660adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 661adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.writeLong('E'); 662adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 7: IOException expected."); 663adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IOException e) { 664adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected. 665adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 666adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 667adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.readLong(); 668adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 8: IOException expected."); 669adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IOException e) { 670adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected. 671adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 672adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 673adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 674adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 675229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.io.RandomAccessFile#readShort() 676229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.io.RandomAccessFile#writeShort(short) 677adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 678adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_read_writeShort() throws IOException { 679adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project RandomAccessFile raf = new java.io.RandomAccessFile(fileName, "rw"); 680adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.writeShort(Short.MIN_VALUE); 681adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.writeShort('T'); 682adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.writeShort(Short.MAX_VALUE); 683adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.writeShort(Short.MIN_VALUE - 1); 684adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.writeShort(Short.MAX_VALUE + 1); 685adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.seek(0); 686f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 687f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes assertEquals("Test 1: Incorrect value written or read;", 688adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Short.MIN_VALUE, raf.readShort()); 689f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes assertEquals("Test 2: Incorrect value written or read;", 690adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 'T', raf.readShort()); 691f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes assertEquals("Test 3: Incorrect value written or read;", 692adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project Short.MAX_VALUE, raf.readShort()); 693f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes assertEquals("Test 4: Incorrect value written or read;", 694adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 0x7fff, raf.readShort()); 695f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes assertEquals("Test 5: Incorrect value written or read;", 696adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project (short) 0x8000, raf.readShort()); 697f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 698adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 699adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.readShort(); 700adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 6: EOFException expected."); 701adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (EOFException e) { 702adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected. 703adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 704f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 705adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.close(); 706adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 707adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.writeShort('E'); 708adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 7: IOException expected."); 709adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IOException e) { 710adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected. 711adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 712adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 713adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.readShort(); 714adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 8: IOException expected."); 715adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IOException e) { 716adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected. 717adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 718adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 719adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 720adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 721229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.io.RandomAccessFile#readUTF() 722229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.io.RandomAccessFile#writeShort(char) 723adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 724adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_read_writeUTF() throws IOException { 725adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project RandomAccessFile raf = new java.io.RandomAccessFile(fileName, "rw"); 726adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.writeUTF(unihw); 727adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.seek(0); 728f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes assertEquals("Test 1: Incorrect UTF string written or read;", 729adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project unihw, raf.readUTF()); 730f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 731adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 732adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.readUTF(); 733adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 2: EOFException expected."); 734adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (EOFException e) { 735adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected. 736adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 737f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 738adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.close(); 739adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 740adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.writeUTF("Already closed."); 741adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 3: IOException expected."); 742adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IOException e) { 743adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected. 744adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 745adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 746adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.readUTF(); 747adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 4: IOException expected."); 748adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IOException e) { 749adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected. 750adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 751adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 752adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 753adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 754229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.io.RandomAccessFile#writeBytes(java.lang.String) 755229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.io.RandomAccessFile#readFully(byte[]) 756adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 757adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_readFully$B_writeBytesLjava_lang_String() throws IOException { 758adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project byte[] buf = new byte[testLength]; 759adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project RandomAccessFile raf = new java.io.RandomAccessFile(fileName, "rw"); 760adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.writeBytes(testString); 761adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.seek(0); 762f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 763adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 764adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.readFully(null); 765adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 1: NullPointerException expected."); 766adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException e) { 767adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected. 768adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 769f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 770adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.readFully(buf); 771f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes assertEquals("Test 2: Incorrect bytes written or read;", 772adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project testString, new String(buf)); 773adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 774adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 775adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.readFully(buf); 776adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 3: EOFException expected."); 777adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (EOFException e) { 778adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected. 779adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 780f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 781f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes raf.close(); 782adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 783adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.writeBytes("Already closed."); 784adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 4: IOException expected."); 785adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IOException e) { 786adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected. 787adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 788adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 789adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.readFully(buf); 790adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 5: IOException expected."); 791adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IOException e) { 792adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected. 793adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 794adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 795adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 796adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 797229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.io.RandomAccessFile#writeBytes(java.lang.String) 798229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.io.RandomAccessFile#readFully(byte[], int, int) 799adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 800adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_readFully$BII() throws IOException { 801adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project byte[] buf = new byte[testLength]; 802adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project RandomAccessFile raf = new java.io.RandomAccessFile(fileName, "rw"); 803adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.writeBytes(testString); 804adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.seek(0); 805f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 806adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 807adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.readFully(null); 808adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 1: NullPointerException expected."); 809adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException e) { 810adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected. 811adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 812f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 813adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.readFully(buf, 5, testLength - 10); 814adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int i = 0; i < 5; i++) { 815adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Test 2: Incorrect bytes read;", 0, buf[i]); 816adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 817f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes assertEquals("Test 3: Incorrect bytes written or read;", 818f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes testString.substring(0, testLength - 10), 819adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project new String(buf, 5, testLength - 10)); 820adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 821adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Reading past the end of the file. 822adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 823adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.readFully(buf, 3, testLength - 6); 824adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 4: EOFException expected."); 825adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (EOFException e) { 826adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected. 827adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 828adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 829adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Passing invalid arguments. 830adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 831adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.readFully(buf, -1, 1); 832adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 5: IndexOutOfBoundsException expected."); 833adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IndexOutOfBoundsException e) { 834adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected. 835adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 836adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 837adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.readFully(buf, 0, -1); 838adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 6: IndexOutOfBoundsException expected."); 839adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IndexOutOfBoundsException e) { 840adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected. 841adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 842adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 843adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.readFully(buf, 2, testLength); 844adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 7: IndexOutOfBoundsException expected."); 845adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IndexOutOfBoundsException e) { 846adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected. 847adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 848f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 849adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Reading from a closed file. 850f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes raf.close(); 851adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 852adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.readFully(buf); 853adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 8: IOException expected."); 854adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IOException e) { 855adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected. 856adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 857adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 858adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 859adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 860229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.io.RandomAccessFile#readUnsignedByte() 861adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 862adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_readUnsignedByte() throws IOException { 863adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project RandomAccessFile raf = new java.io.RandomAccessFile(fileName, "rw"); 864adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.writeByte(-1); 865adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.seek(0); 866f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 867f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes assertEquals("Test 1: Incorrect value written or read;", 868adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 255, raf.readUnsignedByte()); 869f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 870adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 871adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.readUnsignedByte(); 872adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 2: EOFException expected."); 873adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (EOFException e) { 874adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected. 875adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 876f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 877adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.close(); 878adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 879adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.readUnsignedByte(); 880adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 3: IOException expected."); 881adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IOException e) { 882adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected. 883adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 884adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 885adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 886adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 887229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.io.RandomAccessFile#readUnsignedShort() 888adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 889adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_readUnsignedShort() throws IOException { 890adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project RandomAccessFile raf = new java.io.RandomAccessFile(fileName, "rw"); 891adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.writeShort(-1); 892adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.seek(0); 893f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 894f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes assertEquals("Test 1: Incorrect value written or read;", 895adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 65535, raf.readUnsignedShort()); 896f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 897adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 898adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.readUnsignedShort(); 899adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 2: EOFException expected."); 900adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (EOFException e) { 901adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected. 902adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 903f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 904adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.close(); 905adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 906adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.readUnsignedShort(); 907adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 3: IOException expected."); 908adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IOException e) { 909adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected. 910adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 911adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 912adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 913adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 914229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.io.RandomAccessFile#readLine() 915adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 916adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_readLine() throws IOException { 917adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method java.lang.String java.io.RandomAccessFile.readLine() 918adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project RandomAccessFile raf = new java.io.RandomAccessFile(fileName, "rw"); 919adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project String s = "Goodbye\nCruel\nWorld\n"; 920adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.write(s.getBytes(), 0, s.length()); 921adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.seek(0); 922adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 923adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Test 1: Incorrect line read;", "Goodbye", raf.readLine()); 924adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Test 2: Incorrect line read;", "Cruel", raf.readLine()); 925adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Test 3: Incorrect line read;", "World", raf.readLine()); 926adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertNull("Test 4: Incorrect line read; null expected.", raf.readLine()); 927f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 928adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.close(); 929adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 930adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.readLine(); 931adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 5: IOException expected."); 932adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IOException e) { 933adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected. 934adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 935f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 936adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 937adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 938adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 939229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.io.RandomAccessFile#seek(long) 940adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 941adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_seekJ() throws IOException { 942adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Test for method void java.io.RandomAccessFile.seek(long) 943adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project RandomAccessFile raf = new java.io.RandomAccessFile(fileName, "rw"); 944f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 945adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 946adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.seek(-1); 947adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 1: IOException expected."); 948adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IOException e) { 949adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected. 950adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 951adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 952adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.write(testString.getBytes(), 0, testLength); 953adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.seek(12); 9543d478ad9fefa9c90b5c644f5e3d9437828537ed9Elliott Hughes assertEquals("Test 3: Seek failed to set file pointer.", 12, 955adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.getFilePointer()); 956f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 957adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.close(); 958adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 959adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.seek(1); 9603d478ad9fefa9c90b5c644f5e3d9437828537ed9Elliott Hughes fail("Test 4: IOException expected."); 961adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IOException e) { 962adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected. 963adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 964adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 965adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 966adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 967229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.io.RandomAccessFile#skipBytes(int) 968adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 969adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_skipBytesI() throws IOException { 970adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project byte[] buf = new byte[5]; 971adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project RandomAccessFile raf = new java.io.RandomAccessFile(fileName, "rw"); 972adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.writeBytes("HelloWorld"); 973adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.seek(0); 974f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 975adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertTrue("Test 1: Nothing should be skipped if parameter is less than zero", 976adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.skipBytes(-1) == 0); 977f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 978f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes assertEquals("Test 4: Incorrect number of bytes skipped; ", 979adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 5, raf.skipBytes(5)); 980adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 981adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.readFully(buf); 982f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes assertEquals("Test 3: Failed to skip bytes.", 983adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project "World", new String(buf, 0, 5)); 984adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 985adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.seek(0); 986f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes assertEquals("Test 4: Incorrect number of bytes skipped; ", 987adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 10, raf.skipBytes(20)); 988adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 989adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.close(); 990adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 991adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.skipBytes(1); 992adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 5: IOException expected."); 993adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IOException e) { 994adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected. 995adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 996adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 997adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 998adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 999229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.io.RandomAccessFile#skipBytes(int) 1000adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 1001adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_setLengthJ() throws IOException { 1002adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project int bytesRead; 1003adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project long truncLength = (long) (testLength * 0.75); 1004adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project byte[] rbuf = new byte[testLength + 10]; 1005f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 1006adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Setup the test file. 1007adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project RandomAccessFile raf = new java.io.RandomAccessFile(fileName, "rw"); 1008adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.write(testString.getBytes()); 1009f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes assertEquals("Test 1: Incorrect file length;", 1010adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project testLength, raf.length()); 1011f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 1012adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Truncate the file. 1013adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.setLength(truncLength); 1014f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes assertTrue("Test 2: File pointer not moved to the end of the truncated file.", 1015adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.getFilePointer() == truncLength); 1016f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 1017adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.close(); 1018adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf = new java.io.RandomAccessFile(fileName, "rw"); 1019f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes assertEquals("Test 3: Incorrect file length;", 1020adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project truncLength, raf.length()); 1021adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project bytesRead = raf.read(rbuf); 1022f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes assertEquals("Test 4: Incorrect number of bytes read;", 1023adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project truncLength, bytesRead); 1024f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes assertEquals("Test 5: Incorrect bytes read. ", 1025adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project testString.substring(0, bytesRead), 1026adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project new String(rbuf, 0, bytesRead)); 1027f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 1028adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expand the file. 1029adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.setLength(testLength + 2); 1030f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes assertTrue("Test 6: File pointer incorrectly moved.", 1031adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.getFilePointer() == truncLength); 1032f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes assertEquals("Test 7: Incorrect file length;", 1033adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project testLength + 2, raf.length()); 1034f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 1035adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Exception testing. 1036adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 1037adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.setLength(-1); 10383d478ad9fefa9c90b5c644f5e3d9437828537ed9Elliott Hughes fail("Test 9: IllegalArgumentException expected."); 1039937efdb41a1c4448ddd7bced4783009ab36a26acJesse Wilson } catch (IOException expected) { 1040937efdb41a1c4448ddd7bced4783009ab36a26acJesse Wilson } catch (IllegalArgumentException expected) { 1041adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1042f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 1043adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.close(); 1044adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 1045adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.setLength(truncLength); 10463d478ad9fefa9c90b5c644f5e3d9437828537ed9Elliott Hughes fail("Test 10: IOException expected."); 1047adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IOException e) { 1048adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected. 1049adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1050adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1051f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 1052adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 1053229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.io.RandomAccessFile#write(byte[]) 1054adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 1055adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_write$B() throws IOException { 1056adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project byte[] rbuf = new byte[4000]; 1057adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project RandomAccessFile raf = new java.io.RandomAccessFile(fileName, "rw"); 1058f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 1059adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project byte[] nullByteArray = null; 1060adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 1061adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.write(nullByteArray); 1062adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 1: NullPointerException expected."); 1063adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException e) { 1064adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected. 1065f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes } 1066f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 1067adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 1068adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.write(testString.getBytes()); 1069adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (Exception e) { 1070adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 2: Unexpected exception: " + e.getMessage()); 1071adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1072f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 1073adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.close(); 1074adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1075adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 1076adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.write(new byte[0]); 1077adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IOException e) { 1078adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 3: Unexpected IOException: " + e.getMessage()); 1079adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1080f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 1081adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 1082adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.write(testString.getBytes()); 1083adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 4: IOException expected."); 1084adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IOException e) { 1085adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected. 1086adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1087f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 1088adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project FileInputStream fis = new java.io.FileInputStream(fileName); 1089adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fis.read(rbuf, 0, testLength); 1090adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Incorrect bytes written", testString, new String(rbuf, 0, 1091f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes testLength)); 1092adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1093adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1094adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 1095229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.io.RandomAccessFile#write(byte[], int, int) 1096adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 1097adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_write$BII() throws Exception { 1098adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project RandomAccessFile raf = new java.io.RandomAccessFile(fileName, "rw"); 1099adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project byte[] rbuf = new byte[4000]; 1100adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project byte[] testBuf = null; 1101adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project int bytesRead; 1102f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 1103adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 1104adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.write(testBuf, 1, 1); 1105adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 1: NullPointerException expected."); 1106adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (NullPointerException e) { 1107adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected. 1108adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1109f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 1110adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project testBuf = testString.getBytes(); 1111f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 1112adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 1113adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.write(testBuf, -1, 10); 1114adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 2: IndexOutOfBoundsException expected."); 111507f3b77c01e51d8a99a9e165b266de5fd7472d7aJesse Wilson } catch (IndexOutOfBoundsException expected) { 1116adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1117f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 1118adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 1119adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.write(testBuf, 0, -1); 1120adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 3: IndexOutOfBoundsException expected."); 112107f3b77c01e51d8a99a9e165b266de5fd7472d7aJesse Wilson } catch (IndexOutOfBoundsException expected) { 1122adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1123f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 1124adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 1125adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.write(testBuf, 5, testLength); 1126adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 4: IndexOutOfBoundsException expected."); 112707f3b77c01e51d8a99a9e165b266de5fd7472d7aJesse Wilson } catch (IndexOutOfBoundsException expected) { 1128adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1129f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 1130adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Positive test: The following write should not fail. 1131adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 1132adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.write(testBuf, 3, testLength - 5); 1133adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (Exception e) { 1134adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 5: Unexpected exception: " + e.getMessage()); 1135adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1136f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 1137adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.close(); 1138f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 1139adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Writing nothing to a closed file should not fail either. 1140adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 1141adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.write(new byte[0]); 1142adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IOException e) { 1143adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 6: Unexpected IOException: " + e.getMessage()); 1144adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1145f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 1146adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Writing something to a closed file should fail. 1147adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 1148adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.write(testString.getBytes()); 1149adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 7: IOException expected."); 1150adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IOException e) { 1151adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected. 1152adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1153f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 1154adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project FileInputStream fis = new java.io.FileInputStream(fileName); 1155adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project bytesRead = fis.read(rbuf, 0, testLength); 1156adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Test 8: Incorrect number of bytes written or read;", 1157adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project testLength - 5, bytesRead); 1158f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes assertEquals("Test 9: Incorrect bytes written or read; ", 1159f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes testString.substring(3, testLength - 2), 1160f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes new String(rbuf, 0, bytesRead)); 1161adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1162f33eae7e84eb6d3b0f4e86b59605bb3de73009f3Elliott Hughes 1163adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 1164229e34b182b98e1dba15d3dc6341954986ae2b7aBrian Carlstrom * java.io.RandomAccessFile#writeChars(java.lang.String) 1165adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 1166adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project public void test_writeCharsLjava_lang_String() throws IOException { 1167adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project RandomAccessFile raf = new java.io.RandomAccessFile(fileName, "rw"); 1168adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.writeChars(unihw); 1169adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project char[] hchars = new char[unihw.length()]; 1170adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project unihw.getChars(0, unihw.length(), hchars, 0); 1171adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.seek(0); 1172adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project for (int i = 0; i < hchars.length; i++) 1173adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project assertEquals("Test 1: Incorrect character written or read at index " + i + ";", 1174adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project hchars[i], raf.readChar()); 1175adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.close(); 1176adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project try { 1177adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project raf.writeChars("Already closed."); 1178adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Test 2: IOException expected."); 1179adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } catch (IOException e) { 1180adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project // Expected. 1181adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1182adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1183adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1184adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 1185adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Sets up the fixture, for example, open a network connection. This method 1186adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * is called before a test is executed. 1187adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 1188adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project protected void setUp() throws Exception { 1189adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project super.setUp(); 1190adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1191adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project f = File.createTempFile("raf", "tst"); 1192adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project if (!f.delete()) { 1193adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fail("Unable to delete test file : " + f); 1194adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1195adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project fileName = f.getAbsolutePath(); 1196adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1197adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 1198adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project /** 1199adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * Tears down the fixture, for example, close a network connection. This 1200adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * method is called after a test is executed. 1201adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project * @throws Exception 1202adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project */ 1203adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project protected void tearDown() throws Exception { 1204adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project if (f.exists()) { 1205adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project f.delete(); 1206adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1207adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project super.tearDown(); 1208adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project } 1209adc854b798c1cfe3bfd4c27d68d5cee38ca617daThe Android Open Source Project 12103d478ad9fefa9c90b5c644f5e3d9437828537ed9Elliott Hughes} 1211