1cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath/* 2cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * Licensed to the Apache Software Foundation (ASF) under one or more 3cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * contributor license agreements. See the NOTICE file distributed with 4cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * this work for additional information regarding copyright ownership. 5cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * The ASF licenses this file to You under the Apache License, Version 2.0 6cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * (the "License"); you may not use this file except in compliance with 7cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * the License. You may obtain a copy of the License at 8cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * 9cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * http://www.apache.org/licenses/LICENSE-2.0 10cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * 11cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * Unless required by applicable law or agreed to in writing, software 12cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * distributed under the License is distributed on an "AS IS" BASIS, 13cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * See the License for the specific language governing permissions and 15cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * limitations under the License. 16cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 17cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 18ab762bb740405d0fefcccf4a0899a234f995be13Narayan Kamathpackage org.apache.harmony.tests.java.io; 19cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 20cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.io.EOFException; 21cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.io.File; 22cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.io.FileInputStream; 23cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.io.FileNotFoundException; 24cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.io.FileOutputStream; 25cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.io.IOException; 26cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.io.RandomAccessFile; 27cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.nio.channels.FileChannel; 28cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathimport java.nio.channels.NonWritableChannelException; 29cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 30cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamathpublic class RandomAccessFileTest extends junit.framework.TestCase { 31cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 32cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public String fileName; 33cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 34cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public boolean ufile = true; 35cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 36cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath java.io.RandomAccessFile raf; 37cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 38cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath java.io.File f; 39cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 40cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath String unihw = "\u0048\u0065\u006C\u0801\u006C\u006F\u0020\u0057\u0081\u006F\u0072\u006C\u0064"; 41cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 42cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath //java.io.FileOutputStream fos; 43cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 44cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public String fileString = "Test_All_Tests\nTest_java_io_BufferedInputStream\nTest_java_io_BufferedOutputStream\nTest_java_io_ByteArrayInputStream\nTest_java_io_ByteArrayOutputStream\nTest_java_io_DataInputStream\nTest_java_io_File\nTest_java_io_FileDescriptor\nTest_java_io_FileInputStream\nTest_java_io_FileNotFoundException\nTest_java_io_FileOutputStream\nTest_java_io_FilterInputStream\nTest_java_io_FilterOutputStream\nTest_java_io_InputStream\nTest_java_io_IOException\nTest_java_io_OutputStream\nTest_java_io_PrintStream\nTest_RandomAccessFile\nTest_java_io_SyncFailedException\nTest_java_lang_AbstractMethodError\nTest_java_lang_ArithmeticException\nTest_java_lang_ArrayIndexOutOfBoundsException\nTest_java_lang_ArrayStoreException\nTest_java_lang_Boolean\nTest_java_lang_Byte\nTest_java_lang_Character\nTest_java_lang_Class\nTest_java_lang_ClassCastException\nTest_java_lang_ClassCircularityError\nTest_java_lang_ClassFormatError\nTest_java_lang_ClassLoader\nTest_java_lang_ClassNotFoundException\nTest_java_lang_CloneNotSupportedException\nTest_java_lang_Double\nTest_java_lang_Error\nTest_java_lang_Exception\nTest_java_lang_ExceptionInInitializerError\nTest_java_lang_Float\nTest_java_lang_IllegalAccessError\nTest_java_lang_IllegalAccessException\nTest_java_lang_IllegalArgumentException\nTest_java_lang_IllegalMonitorStateException\nTest_java_lang_IllegalThreadStateException\nTest_java_lang_IncompatibleClassChangeError\nTest_java_lang_IndexOutOfBoundsException\nTest_java_lang_InstantiationError\nTest_java_lang_InstantiationException\nTest_java_lang_Integer\nTest_java_lang_InternalError\nTest_java_lang_InterruptedException\nTest_java_lang_LinkageError\nTest_java_lang_Long\nTest_java_lang_Math\nTest_java_lang_NegativeArraySizeException\nTest_java_lang_NoClassDefFoundError\nTest_java_lang_NoSuchFieldError\nTest_java_lang_NoSuchMethodError\nTest_java_lang_NullPointerException\nTest_java_lang_Number\nTest_java_lang_NumberFormatException\nTest_java_lang_Object\nTest_java_lang_OutOfMemoryError\nTest_java_lang_RuntimeException\nTest_java_lang_SecurityManager\nTest_java_lang_Short\nTest_java_lang_StackOverflowError\nTest_java_lang_String\nTest_java_lang_StringBuffer\nTest_java_lang_StringIndexOutOfBoundsException\nTest_java_lang_System\nTest_java_lang_Thread\nTest_java_lang_ThreadDeath\nTest_java_lang_ThreadGroup\nTest_java_lang_Throwable\nTest_java_lang_UnknownError\nTest_java_lang_UnsatisfiedLinkError\nTest_java_lang_VerifyError\nTest_java_lang_VirtualMachineError\nTest_java_lang_vm_Image\nTest_java_lang_vm_MemorySegment\nTest_java_lang_vm_ROMStoreException\nTest_java_lang_vm_VM\nTest_java_lang_Void\nTest_java_net_BindException\nTest_java_net_ConnectException\nTest_java_net_DatagramPacket\nTest_java_net_DatagramSocket\nTest_java_net_DatagramSocketImpl\nTest_java_net_InetAddress\nTest_java_net_NoRouteToHostException\nTest_java_net_PlainDatagramSocketImpl\nTest_java_net_PlainSocketImpl\nTest_java_net_Socket\nTest_java_net_SocketException\nTest_java_net_SocketImpl\nTest_java_net_SocketInputStream\nTest_java_net_SocketOutputStream\nTest_java_net_UnknownHostException\nTest_java_util_ArrayEnumerator\nTest_java_util_Date\nTest_java_util_EventObject\nTest_java_util_HashEnumerator\nTest_java_util_Hashtable\nTest_java_util_Properties\nTest_java_util_ResourceBundle\nTest_java_util_tm\nTest_java_util_Vector\n"; 45cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 46cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 47cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.io.RandomAccessFile#RandomAccessFile(java.io.File, 48cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath *java.lang.String) 49cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 50cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_ConstructorLjava_io_FileLjava_lang_String() 51cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath throws Exception { 52cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method java.io.RandomAccessFile(java.io.File, 53cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // java.lang.String) 54cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath RandomAccessFile raf = new java.io.RandomAccessFile(f, "rw"); 55cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.write(20); 56cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.seek(0); 57cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Incorrect int read/written", 20, raf.read()); 58cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.close(); 59cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 60cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf = new java.io.RandomAccessFile(f, "rwd"); 61cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.write(20); 62cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.seek(0); 63cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Incorrect int read/written", 20, raf.read()); 64cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.close(); 65cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 66cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf = new java.io.RandomAccessFile(f, "rws"); 67cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.write(20); 68cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.seek(0); 69cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Incorrect int read/written", 20, raf.read()); 70cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.close(); 71cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 72cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Regression for HARMONY-50 73cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath File f = File.createTempFile("xxx", "yyy"); 74cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.deleteOnExit(); 75cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf = new RandomAccessFile(f, "rws"); 76cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.close(); 77cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 78cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = File.createTempFile("xxx", "yyy"); 79cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.deleteOnExit(); 80cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf = new RandomAccessFile(f, "rwd"); 81cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.close(); 82cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 83cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 84cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 85cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.io.RandomAccessFile#RandomAccessFile(java.lang.String, 86cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath *java.lang.String) 87cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 88cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_ConstructorLjava_lang_StringLjava_lang_String() 89cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath throws IOException { 90cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method java.io.RandomAccessFile(java.lang.String, 91cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // java.lang.String) 92cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath RandomAccessFile raf = new java.io.RandomAccessFile(fileName, "rw"); 93cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.write("Test".getBytes(), 0, 4); 94cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.close(); 95cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 96cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf = new java.io.RandomAccessFile(fileName, "rwd"); 97cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.write("Test".getBytes(), 0, 4); 98cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.close(); 99cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 100cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf = new java.io.RandomAccessFile(fileName, "rws"); 101cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.write("Test".getBytes(), 0, 4); 102cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.close(); 103cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 104cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 105cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 106cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.io.RandomAccessFile#RandomAccessFile(java.lang.String, 107cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath *java.lang.String) 108cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 109cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_ConstructorLjava_lang_StringLjava_lang_String_I() 110cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath throws IOException { 111cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath RandomAccessFile raf = null; 112cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 113cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf = new RandomAccessFile("", "r"); 114cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw FileNotFoundException."); 115cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (FileNotFoundException e) { 116cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Expected 117cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } finally { 118cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if (raf != null) { 119cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.close(); 120cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf = null; 121cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 122cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 123cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 124cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf = new RandomAccessFile(new File(""), "r"); 125cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw FileNotFoundException."); 126cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (FileNotFoundException e) { 127cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Expected 128cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } finally { 129cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if (raf != null) { 130cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.close(); 131cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf = null; 132cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 133cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 134cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath File dir = new File("/"); 135cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue(dir.isDirectory()); 136cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 137cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf = new RandomAccessFile(dir.getPath(), "r"); 138cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail(); 139cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (FileNotFoundException expected) { 140cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } finally { 141cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if (raf != null) { 142cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.close(); 143cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf = null; 144cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 145cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 146cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 147cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 148cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 149cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.io.RandomAccessFile#close() 150cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 151cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_close() { 152cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method void java.io.RandomAccessFile.close() 153cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 154cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath RandomAccessFile raf = new java.io.RandomAccessFile(fileName, "rw"); 155cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.close(); 156cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.write("Test".getBytes(), 0, 4); 157cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("Failed to close file properly"); 158cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (IOException e) { 159cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 160cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 161cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 162cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 163cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.io.RandomAccessFile#getFD() 164cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 165cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_getFD() throws IOException { 166cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method java.io.FileDescriptor 167cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // java.io.RandomAccessFile.getFD() 168cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 169cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath RandomAccessFile raf = new java.io.RandomAccessFile(fileName, "rw"); 170cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Returned invalid fd", raf.getFD().valid()); 171cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 172cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.close(); 173cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertFalse("Returned valid fd after close", raf.getFD().valid()); 174cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 175cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 176cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 177cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.io.RandomAccessFile#getFilePointer() 178cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 179cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_getFilePointer() throws IOException { 180cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method long java.io.RandomAccessFile.getFilePointer() 181cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath RandomAccessFile raf = new java.io.RandomAccessFile(fileName, "rw"); 182cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.write(fileString.getBytes(), 0, 1000); 183cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Incorrect filePointer returned", 1000, raf 184cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .getFilePointer()); 185cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.close(); 186cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 187cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 188cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 189cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.io.RandomAccessFile#length() 190cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 191cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_length() throws IOException { 192cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method long java.io.RandomAccessFile.length() 193cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath RandomAccessFile raf = new java.io.RandomAccessFile(fileName, "rw"); 194cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.write(fileString.getBytes()); 195cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Incorrect length returned", fileString.length(), raf 196cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .length()); 197cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.close(); 198cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 199cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 200cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 201cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.io.RandomAccessFile#read() 202cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 203cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_read() throws IOException { 204cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method int java.io.RandomAccessFile.read() 205cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath FileOutputStream fos = new java.io.FileOutputStream(fileName); 206cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fos.write(fileString.getBytes("UTF-8"), 0, fileString.length()); 207cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fos.close(); 208cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 209cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath RandomAccessFile raf = new java.io.RandomAccessFile(fileName, "r"); 210cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Incorrect bytes returned from read", 211cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fileString.charAt(0), raf.read()); 212cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.close(); 213cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 214cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 215cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 216cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.io.RandomAccessFile#read(byte[]) 217cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 218cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_read$B() throws IOException { 219cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method int java.io.RandomAccessFile.read(byte []) 220cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath FileOutputStream fos = new java.io.FileOutputStream(fileName); 221cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fos.write(fileString.getBytes(), 0, fileString.length()); 222cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fos.close(); 223cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 224cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath RandomAccessFile raf = new java.io.RandomAccessFile(fileName, "r"); 225cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath byte[] rbuf = new byte[4000]; 226cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.read(rbuf); 227cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Incorrect bytes returned from read", fileString, 228cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath new String(rbuf, 0, fileString.length())); 229cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.close(); 230cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 231cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 232cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 233cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.io.RandomAccessFile#read(byte[], int, int) 234cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 235cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_read$BII() throws IOException { 236cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method int java.io.RandomAccessFile.read(byte [], int, int) 237cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath RandomAccessFile raf = new java.io.RandomAccessFile(fileName, "rw"); 238cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath byte[] rbuf = new byte[4000]; 239cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath FileOutputStream fos = new java.io.FileOutputStream(fileName); 240cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fos.write(fileString.getBytes(), 0, fileString.length()); 241cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fos.close(); 242cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.read(rbuf, 0, fileString.length()); 243cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Incorrect bytes returned from read", fileString, 244cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath new String(rbuf, 0, fileString.length())); 245cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.close(); 246cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 247cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 248cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 249cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.io.RandomAccessFile#readBoolean() 250cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 251cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_readBoolean() throws IOException { 252cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method boolean java.io.RandomAccessFile.readBoolean() 253cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath RandomAccessFile raf = new java.io.RandomAccessFile(fileName, "rw"); 254cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.writeBoolean(true); 255cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.seek(0); 256cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Incorrect boolean read/written", raf.readBoolean()); 257cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.close(); 258cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 259cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 260cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 261cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.io.RandomAccessFile#readByte() 262cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 263cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_readByte() throws IOException { 264cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method byte java.io.RandomAccessFile.readByte() 265cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath RandomAccessFile raf = new java.io.RandomAccessFile(fileName, "rw"); 266cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.writeByte(127); 267cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.seek(0); 268cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Incorrect bytes read/written", 127, raf.readByte()); 269cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.close(); 270cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 271cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 272cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 273cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.io.RandomAccessFile#readChar() 274cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 275cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_readChar() throws IOException { 276cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method char java.io.RandomAccessFile.readChar() 277cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath RandomAccessFile raf = new java.io.RandomAccessFile(fileName, "rw"); 278cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.writeChar('T'); 279cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.seek(0); 280cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Incorrect char read/written", 'T', raf.readChar()); 281cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.close(); 282cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 283cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 284cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 285cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.io.RandomAccessFile#readDouble() 286cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 287cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_readDouble() throws IOException { 288cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method double java.io.RandomAccessFile.readDouble() 289cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath RandomAccessFile raf = new java.io.RandomAccessFile(fileName, "rw"); 290cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.writeDouble(Double.MAX_VALUE); 291cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.seek(0); 292cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Incorrect double read/written", Double.MAX_VALUE, raf 293cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .readDouble(), 0); 294cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.close(); 295cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 296cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 297cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 298cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.io.RandomAccessFile#readFloat() 299cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 300cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_readFloat() throws IOException { 301cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method float java.io.RandomAccessFile.readFloat() 302cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath RandomAccessFile raf = new java.io.RandomAccessFile(fileName, "rw"); 303cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.writeFloat(Float.MAX_VALUE); 304cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.seek(0); 305cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Incorrect float read/written", Float.MAX_VALUE, raf 306cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .readFloat(), 0); 307cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.close(); 308cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 309cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 310cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 311cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.io.RandomAccessFile#readFully(byte[]) 312cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 313cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_readFully$B() throws IOException { 314cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method void java.io.RandomAccessFile.readFully(byte []) 315cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath byte[] buf = new byte[10]; 316cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath RandomAccessFile raf = new java.io.RandomAccessFile(fileName, "rw"); 317cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.writeBytes("HelloWorld"); 318cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.seek(0); 319cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.readFully(buf); 320cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Incorrect bytes read/written", "HelloWorld", new String( 321cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath buf, 0, 10, "UTF-8")); 322cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.close(); 323cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 324cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 325cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 326cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.io.RandomAccessFile#readFully(byte[], int, int) 327cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 328cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_readFully$BII() throws IOException { 329cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method void java.io.RandomAccessFile.readFully(byte [], int, 330cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // int) 331cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath byte[] buf = new byte[10]; 332cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath RandomAccessFile raf = new java.io.RandomAccessFile(fileName, "rw"); 333cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.writeBytes("HelloWorld"); 334cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.seek(0); 335cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.readFully(buf, 0, buf.length); 336cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Incorrect bytes read/written", "HelloWorld", new String( 337cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath buf, 0, 10, "UTF-8")); 338cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 339cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.readFully(buf, 0, buf.length); 340cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("Reading past end of buffer did not throw EOFException"); 341cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (EOFException e) { 342cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 343cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.close(); 344cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 345cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 346cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 347cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.io.RandomAccessFile#readInt() 348cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 349cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_readInt() throws IOException { 350cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method int java.io.RandomAccessFile.readInt() 351cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath RandomAccessFile raf = new java.io.RandomAccessFile(fileName, "rw"); 352cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.writeInt(Integer.MIN_VALUE); 353cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.seek(0); 354cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Incorrect int read/written", Integer.MIN_VALUE, raf 355cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .readInt()); 356cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.close(); 357cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 358cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 359cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 360cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.io.RandomAccessFile#readLine() 361cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 362cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_readLine() throws IOException { 363cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method java.lang.String java.io.RandomAccessFile.readLine() 364cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath RandomAccessFile raf = new java.io.RandomAccessFile(fileName, "rw"); 365cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath String s = "Goodbye\nCruel\nWorld\n"; 366cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.write(s.getBytes("UTF-8"), 0, s.length()); 367cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.seek(0); 368cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 369cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Goodbye", raf.readLine()); 370cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Cruel", raf.readLine()); 371cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("World", raf.readLine()); 372cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 373cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.close(); 374cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 375cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 376cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 377cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.io.RandomAccessFile#readLong() 378cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 379cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_readLong() throws IOException { 380cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method long java.io.RandomAccessFile.readLong() 381cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath RandomAccessFile raf = new java.io.RandomAccessFile(fileName, "rw"); 382cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.writeLong(Long.MAX_VALUE); 383cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.seek(0); 384cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Incorrect long read/written", Long.MAX_VALUE, raf 385cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .readLong()); 386cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.close(); 387cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 388cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 389cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 390cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.io.RandomAccessFile#readShort() 391cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 392cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_readShort() throws IOException { 393cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method short java.io.RandomAccessFile.readShort() 394cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath RandomAccessFile raf = new java.io.RandomAccessFile(fileName, "rw"); 395cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.writeShort(Short.MIN_VALUE); 396cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.seek(0); 397cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Incorrect long read/written", Short.MIN_VALUE, raf 398cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .readShort()); 399cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.close(); 400cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 401cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 402cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 403cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.io.RandomAccessFile#readUnsignedByte() 404cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 405cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_readUnsignedByte() throws IOException { 406cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method int java.io.RandomAccessFile.readUnsignedByte() 407cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath RandomAccessFile raf = new java.io.RandomAccessFile(fileName, "rw"); 408cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.writeByte(-1); 409cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.seek(0); 410cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Incorrect byte read/written", 255, raf.readUnsignedByte()); 411cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.close(); 412cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 413cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 414cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 415cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.io.RandomAccessFile#readUnsignedShort() 416cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 417cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_readUnsignedShort() throws IOException { 418cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method int java.io.RandomAccessFile.readUnsignedShort() 419cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath RandomAccessFile raf = new java.io.RandomAccessFile(fileName, "rw"); 420cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.writeShort(-1); 421cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.seek(0); 422cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Incorrect byte read/written", 65535, raf 423cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .readUnsignedShort()); 424cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.close(); 425cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 426cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 427cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 428cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.io.RandomAccessFile#readUTF() 429cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 430cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_readUTF() throws IOException { 431cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method java.lang.String java.io.RandomAccessFile.readUTF() 432cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 433cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath RandomAccessFile raf = new java.io.RandomAccessFile(fileName, "rw"); 434cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.writeUTF(unihw); 435cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.seek(0); 436cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Incorrect utf string read", unihw, raf.readUTF()); 437cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.close(); 438cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 439cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 440cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 441cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.io.RandomAccessFile#seek(long) 442cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 443cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_seekJ() throws IOException { 444cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method void java.io.RandomAccessFile.seek(long) 445cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath RandomAccessFile raf = new java.io.RandomAccessFile(fileName, "rw"); 446cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.write(fileString.getBytes(), 0, fileString.length()); 447cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.seek(12); 448cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Seek failed to set filePointer", 12, raf.getFilePointer()); 449cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.close(); 450cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 451cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 452cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 453cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.io.RandomAccessFile#skipBytes(int) 454cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 455cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_skipBytesI() throws IOException { 456cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method int java.io.RandomAccessFile.skipBytes(int) 457cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath byte[] buf = new byte[5]; 458cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath RandomAccessFile raf = new java.io.RandomAccessFile(fileName, "rw"); 459cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.writeBytes("HelloWorld"); 460cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.seek(0); 461cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.skipBytes(5); 462cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.readFully(buf); 463cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Failed to skip bytes", "World", new String(buf, 0, 5, "UTF-8")); 464cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.close(); 465cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 466cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 467cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 468cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.io.RandomAccessFile#write(byte[]) 469cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 470cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_write$B() throws IOException { 471cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method void java.io.RandomAccessFile.write(byte []) 472cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath RandomAccessFile raf = new java.io.RandomAccessFile(fileName, "rw"); 473cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 474cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath byte[] nullByteArray = null; 475cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 476cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.write(nullByteArray); 477cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw NullPointerException"); 478cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (NullPointerException e) { 479cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath //expected 480cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 481cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 482cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath byte[] rbuf = new byte[4000]; 483cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.write(fileString.getBytes()); 484cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.close(); 485cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 486cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 487cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.write(nullByteArray); 488cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw NullPointerException"); 489cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (NullPointerException e) { 490cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath //expected 491cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 492cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 493cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath //will not throw IOException if array's length is 0 494cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.write(new byte[0]); 495cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 496cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 497cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.write(fileString.getBytes()); 498cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw IOException"); 499cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (IOException e) { 500cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath //expected 501cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 502cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 503cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath FileInputStream fis = new java.io.FileInputStream(fileName); 504cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fis.read(rbuf, 0, fileString.length()); 505cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Incorrect bytes written", fileString, new String(rbuf, 0, 506cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fileString.length())); 507cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fis.close(); 508cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 509cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 510cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 511cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.io.RandomAccessFile#write(byte[], int, int) 512cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 513cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_write$BII() throws IOException { 514cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method void java.io.RandomAccessFile.write(byte [], int, 515cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // int) 516cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath RandomAccessFile raf = new java.io.RandomAccessFile(fileName, "rw"); 517cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath byte[] rbuf = new byte[4000]; 518cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.write(fileString.getBytes(), 0, fileString.length()); 519cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.close(); 520cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath FileInputStream fis = new java.io.FileInputStream(fileName); 521cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fis.read(rbuf, 0, fileString.length()); 522cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Incorrect bytes written", fileString, new String(rbuf, 0, 523cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fileString.length())); 524cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fis.close(); 525cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 526cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 527cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 528cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.io.RandomAccessFile#write(byte[], int, int) 529cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 530cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_write_$BII_Exception() throws IOException { 531cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf = new java.io.RandomAccessFile(f, "rw"); 532cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath byte[] nullByteArray = null; 533cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath byte[] byteArray = new byte[10]; 534cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 535cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 536cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.write(nullByteArray, -1, -1); 537cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw NullPointerException"); 538cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (NullPointerException e) { 539cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 540cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 541cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 542cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 543cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.write(nullByteArray, 0, 0); 544cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw NullPointerException"); 545cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (NullPointerException e) { 546cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 547cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 548cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 549cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 550cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.write(nullByteArray, 1, -1); 551cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw NullPointerException"); 552cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (NullPointerException e) { 553cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 554cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 555cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 556cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 557cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.write(nullByteArray, 1, 0); 558cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw NullPointerException"); 559cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (NullPointerException e) { 560cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 561cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 562cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 563cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 564cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.write(nullByteArray, 1, 1); 565cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw NullPointerException"); 566cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (NullPointerException e) { 567cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 568cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 569cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 570cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 571cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.write(byteArray, -1, -1); 572cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw IndexOutOfBoundsException"); 573cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (IndexOutOfBoundsException e) { 574cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 575cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 576cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 577cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 578cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.write(byteArray, -1, 0); 579cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw IndexOutOfBoundsException"); 580cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (IndexOutOfBoundsException e) { 581cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 582cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 583cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 584cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 585cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.write(byteArray, -1, 1); 586cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw IndexOutOfBoundsException"); 587cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (IndexOutOfBoundsException e) { 588cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 589cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 590cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 591cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 592cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.write(byteArray, 0, -1); 593cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw IndexOutOfBoundsException"); 594cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (IndexOutOfBoundsException e) { 595cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 596cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 597cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 598cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.write(byteArray, 0, 0); 599cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.write(byteArray, 0, byteArray.length); 600cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.write(byteArray, 1, 0); 601cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.write(byteArray, byteArray.length, 0); 602cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 603cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 604cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.write(byteArray, byteArray.length + 1, 0); 605cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw IndexOutOfBoundsException"); 606cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (IndexOutOfBoundsException e) { 607cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath //expected 608cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 609cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 610cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 611cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.write(byteArray, byteArray.length + 1, 1); 612cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw IndexOutOfBoundsException"); 613cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (IndexOutOfBoundsException e) { 614cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath //expected 615cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 616cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 617cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.close(); 618cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 619cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 620cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.write(nullByteArray, -1, -1); 621cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw NullPointerException"); 622cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (NullPointerException e) { 623cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 624cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 625cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 626cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 627cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.write(byteArray, -1, -1); 628cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw IndexOutOfBoundsException"); 629cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (IndexOutOfBoundsException e) { 630cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 631cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 632cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 633cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 634cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.write(byteArray, 0, 1); 635cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw IOException"); 636cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (IOException e) { 637cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath //expected 638cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 639cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 640cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 641cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.write(byteArray, 0, byteArray.length); 642cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw IOException"); 643cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (IOException e) { 644cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath //expected 645cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 646cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 647cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 648cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.write(byteArray, 1, 1); 649cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw IOException"); 650cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (IOException e) { 651cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath //expected 652cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 653cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 654cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 655cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.write(byteArray, byteArray.length + 1, 0); 656cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw IndexOutOfBoundsException"); 657cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (IndexOutOfBoundsException e) { 658cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath //expected 659cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 660cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 661cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // will not throw IOException if count = 0 662cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.write(byteArray, 0, 0); 663cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.write(byteArray, byteArray.length, 0); 664cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 665cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 666cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 667cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 668cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.io.RandomAccessFile#write(int) 669cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 670cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_writeI() throws IOException { 671cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method void java.io.RandomAccessFile.write(int) 672cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath byte[] rbuf = new byte[4000]; 673cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath RandomAccessFile raf = new java.io.RandomAccessFile(fileName, "rw"); 674cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.write('t'); 675cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.close(); 676cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath FileInputStream fis = new java.io.FileInputStream(fileName); 677cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fis.read(rbuf, 0, 1); 678cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Incorrect byte written", 't', rbuf[0]); 679cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fis.close(); 680cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 681cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 682cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 683cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.io.RandomAccessFile#writeBoolean(boolean) 684cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 685cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_writeBooleanZ() throws IOException { 686cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method void java.io.RandomAccessFile.writeBoolean(boolean) 687cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath RandomAccessFile raf = new java.io.RandomAccessFile(fileName, "rw"); 688cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.writeBoolean(true); 689cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.seek(0); 690cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertTrue("Incorrect boolean read/written", raf.readBoolean()); 691cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.close(); 692cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 693cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 694cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 695cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.io.RandomAccessFile#writeByte(int) 696cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 697cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_writeByteI() throws IOException { 698cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method void java.io.RandomAccessFile.writeByte(int) 699cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath RandomAccessFile raf = new java.io.RandomAccessFile(fileName, "rw"); 700cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.writeByte(127); 701cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.seek(0); 702cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Incorrect byte read/written", 127, raf.readByte()); 703cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.close(); 704cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 705cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 706cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 707cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.io.RandomAccessFile#writeBytes(java.lang.String) 708cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 709cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_writeBytesLjava_lang_String() throws IOException { 710cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method void 711cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // java.io.RandomAccessFile.writeBytes(java.lang.String) 712cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath byte[] buf = new byte[10]; 713cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath RandomAccessFile raf = new java.io.RandomAccessFile(fileName, "rw"); 714cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.writeBytes("HelloWorld"); 715cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.seek(0); 716cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.readFully(buf); 717cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Incorrect bytes read/written", "HelloWorld", new String( 718cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath buf, 0, 10, "UTF-8")); 719cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.close(); 720cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 721cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 722cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 723cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 724cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.io.RandomAccessFile#writeChar(int) 725cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 726cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_writeCharI() throws IOException { 727cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method void java.io.RandomAccessFile.writeChar(int) 728cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath RandomAccessFile raf = new java.io.RandomAccessFile(fileName, "rw"); 729cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.writeChar('T'); 730cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.seek(0); 731cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Incorrect char read/written", 'T', raf.readChar()); 732cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.close(); 733cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 734cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 735cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 736cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.io.RandomAccessFile#writeChars(java.lang.String) 737cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 738cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_writeCharsLjava_lang_String() throws IOException { 739cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method void 740cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // java.io.RandomAccessFile.writeChars(java.lang.String) 741cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath RandomAccessFile raf = new java.io.RandomAccessFile(fileName, "rw"); 742cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.writeChars("HelloWorld"); 743cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath char[] hchars = new char[10]; 744cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath "HelloWorld".getChars(0, 10, hchars, 0); 745cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.seek(0); 746cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath for (int i = 0; i < hchars.length; i++) 747cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Incorrect string written", hchars[i], raf.readChar()); 748cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.close(); 749cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 750cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 751cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 752cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.io.RandomAccessFile#writeDouble(double) 753cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 754cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_writeDoubleD() throws IOException { 755cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method void java.io.RandomAccessFile.writeDouble(double) 756cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath RandomAccessFile raf = new java.io.RandomAccessFile(fileName, "rw"); 757cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.writeDouble(Double.MAX_VALUE); 758cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.seek(0); 759cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Incorrect double read/written", Double.MAX_VALUE, raf 760cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .readDouble(), 0); 761cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.close(); 762cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 763cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 764cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 765cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.io.RandomAccessFile#writeFloat(float) 766cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 767cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_writeFloatF() throws IOException { 768cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method void java.io.RandomAccessFile.writeFloat(float) 769cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath RandomAccessFile raf = new java.io.RandomAccessFile(fileName, "rw"); 770cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.writeFloat(Float.MAX_VALUE); 771cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.seek(0); 772cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Incorrect float read/written", Float.MAX_VALUE, raf 773cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .readFloat(), 0); 774cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.close(); 775cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 776cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 777cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 778cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.io.RandomAccessFile#writeInt(int) 779cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 780cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_writeIntI() throws IOException { 781cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method void java.io.RandomAccessFile.writeInt(int) 782cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath RandomAccessFile raf = new java.io.RandomAccessFile(fileName, "rw"); 783cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.writeInt(Integer.MIN_VALUE); 784cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.seek(0); 785cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Incorrect int read/written", Integer.MIN_VALUE, raf 786cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .readInt()); 787cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.close(); 788cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 789cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 790cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 791cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.io.RandomAccessFile#writeLong(long) 792cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 793cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_writeLongJ() throws IOException { 794cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method void java.io.RandomAccessFile.writeLong(long) 795cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath RandomAccessFile raf = new java.io.RandomAccessFile(fileName, "rw"); 796cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.writeLong(Long.MAX_VALUE); 797cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.seek(0); 798cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Incorrect long read/written", Long.MAX_VALUE, raf 799cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .readLong()); 800cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.close(); 801cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 802cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 803cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 804cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.io.RandomAccessFile#writeShort(int) 805cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 806cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_writeShortI() throws IOException { 807cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method void java.io.RandomAccessFile.writeShort(int) 808cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath RandomAccessFile raf = new java.io.RandomAccessFile(fileName, "rw"); 809cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.writeShort(Short.MIN_VALUE); 810cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.seek(0); 811cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Incorrect long read/written", Short.MIN_VALUE, raf 812cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath .readShort()); 813cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.close(); 814cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 815cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 816cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 817cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.io.RandomAccessFile#writeUTF(java.lang.String) 818cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 819cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_writeUTFLjava_lang_String() throws IOException { 820cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Test for method void 821cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // java.io.RandomAccessFile.writeUTF(java.lang.String) 822cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath RandomAccessFile raf = new java.io.RandomAccessFile(fileName, "rw"); 823cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.writeUTF(unihw); 824cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.seek(0); 825cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("Incorrect utf string", unihw, raf.readUTF()); 826cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.close(); 827cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 828cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 829cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 830cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.io.RandomAccessFile#seek(long) 831cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * <p/> 832cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * Regression for HARMONY-374 833cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 834cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_seekI() throws IOException { 835cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath RandomAccessFile raf = new java.io.RandomAccessFile(fileName, "rw"); 836cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 837cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.seek(-1); 838cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("IOException must be thrown if pos < 0"); 839cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (IOException e) { 840cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 841cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.close(); 842cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 843cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 844cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 845cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.io.RandomAccessFile#read(byte[], int, int) 846cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * <p/> 847cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * Regression for HARMONY-377 848cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 849cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_readBII() throws IOException { 850cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath RandomAccessFile raf = new java.io.RandomAccessFile(fileName, "rw"); 851cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 852cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.read(new byte[1], -1, 1); 853cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("IndexOutOfBoundsException must be thrown if off <0"); 854cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (IndexOutOfBoundsException e) { 855cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 856cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 857cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 858cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.read(new byte[1], 0, -1); 859cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("IndexOutOfBoundsException must be thrown if len <0"); 860cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (IndexOutOfBoundsException e) { 861cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 862cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 863cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 864cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.read(new byte[1], 0, 5); 865cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("IndexOutOfBoundsException must be thrown if off+len > b.length"); 866cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (IndexOutOfBoundsException e) { 867cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 868cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 869cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 870cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.read(new byte[10], Integer.MAX_VALUE, 5); 871cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("IndexOutOfBoundsException expected"); 872cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (IndexOutOfBoundsException e) { 873cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 874cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 875cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 876cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.read(new byte[10], 5, Integer.MAX_VALUE); 877cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("IndexOutOfBoundsException expected"); 878cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (IndexOutOfBoundsException e) { 879cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 880cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 881cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.close(); 882cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 883cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 884cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 885cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.io.RandomAccessFile#read(byte[], int, int) 886cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 887cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_read_$BII_IndexOutOfBoundsException() throws IOException { 888cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath FileOutputStream fos = new java.io.FileOutputStream(fileName); 889cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fos.write(fileString.getBytes(), 0, fileString.length()); 890cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fos.close(); 891cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 892cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath RandomAccessFile raf = new java.io.RandomAccessFile(fileName, "r"); 893cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath byte[] rbuf = new byte[100]; 894cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.close(); 895cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 896cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.read(rbuf, -1, 0); 897cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw IndexOutOfBoundsException"); 898cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (IndexOutOfBoundsException e) { 899cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath //expected 900cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 901cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 902cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 903cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 904cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.io.RandomAccessFile#read(byte[], int, int) 905cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 906cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_read_$BII_IOException() throws IOException { 907cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath FileOutputStream fos = new java.io.FileOutputStream(fileName); 908cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fos.write(fileString.getBytes(), 0, fileString.length()); 909cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fos.close(); 910cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 911cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath RandomAccessFile raf = new java.io.RandomAccessFile(fileName, "r"); 912cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath byte[] rbuf = new byte[100]; 913cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.close(); 914cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath int read = raf.read(rbuf, 0, 0); 915cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals(0, read); 916cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 917cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 918cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 919cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.io.RandomAccessFile#read(byte[]) 920cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 921cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_read_$B_IOException() throws IOException { 922cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath FileOutputStream fos = new java.io.FileOutputStream(fileName); 923cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fos.write(fileString.getBytes(), 0, fileString.length()); 924cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fos.close(); 925cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 926cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath RandomAccessFile raf = new java.io.RandomAccessFile(fileName, "r"); 927cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath byte[] rbuf = new byte[0]; 928cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.close(); 929cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath int read = raf.read(rbuf); 930cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals(0, read); 931cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 932cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 933cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 934cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.io.RandomAccessFile#read(byte[], int, int) 935cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 936cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_read_$BII_NullPointerException() throws IOException { 937cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath File f = File.createTempFile("tmp", "tmp"); 938cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.deleteOnExit(); 939cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath RandomAccessFile raf = new RandomAccessFile(f, "r"); 940cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath byte[] rbuf = null; 941cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 942cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.read(rbuf, 0, -1); 943cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("should throw NullPointerException"); 944cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (NullPointerException e) { 945cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // expected 946cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 947cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.close(); 948cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 949cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 950cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 951cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * java.io.RandomAccessFile#write(byte[], int, int) 952cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * <p/> 953cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * Regression for HARMONY-377 954cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 955cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void test_writeBII() throws IOException { 956cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath RandomAccessFile raf = new java.io.RandomAccessFile(fileName, "rw"); 957cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 958cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.write(new byte[1], -1, 1); 959cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("IndexOutOfBoundsException must be thrown if off <0"); 960cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (IndexOutOfBoundsException e) { 961cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 962cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 963cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 964cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.write(new byte[1], 0, -1); 965cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("IndexOutOfBoundsException must be thrown if len <0"); 966cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (IndexOutOfBoundsException e) { 967cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 968cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 969cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 970cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.write(new byte[1], 0, 5); 971cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("IndexOutOfBoundsException must be thrown if off+len > b.length"); 972cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (IndexOutOfBoundsException e) { 973cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 974cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 975cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 976cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.write(new byte[10], Integer.MAX_VALUE, 5); 977cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("IndexOutOfBoundsException expected"); 978cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (IndexOutOfBoundsException e) { 979cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 980cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 981cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 982cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.write(new byte[10], 5, Integer.MAX_VALUE); 983cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("IndexOutOfBoundsException expected"); 984cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (IndexOutOfBoundsException e) { 985cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 986cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.close(); 987cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 988cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 989cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 990cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * Regression for HARMONY-69 991cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 992cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void testRandomAccessFile_String_String() throws IOException { 993cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.createNewFile(); 994cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath RandomAccessFile raf = new java.io.RandomAccessFile(fileName, "r"); 995cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath FileChannel fcr = raf.getChannel(); 996cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 997cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath try { 998cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fcr.lock(0L, Long.MAX_VALUE, false); 999cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("NonWritableChannelException expected!"); 1000cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } catch (NonWritableChannelException e) { 1001cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1002cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.close(); 1003cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1004cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1005cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // Regression test for HARMONY-6542 1006cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath public void testRandomAccessFile_seekMoreThan2gb() throws IOException { 1007cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if (File.separator != "/") { 1008cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // skip windows until a test can be implemented that doesn't 1009cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // require 2GB of free disk space 1010cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath return; 1011cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1012cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // (all?) unix platforms support sparse files so this should not 1013cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // need to have 2GB free disk space to pass 1014cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath RandomAccessFile raf = new RandomAccessFile(f, "rw"); 1015cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // write a few bytes so we get more helpful error messages 1016cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath // if we land in the wrong places 1017cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.write(1); 1018cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.write(2); 1019cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.seek(2147483647); 1020cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.write(3); 1021cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.write(4); 1022cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.write(5); 1023cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.write(6); 1024cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.seek(0); 1025cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("seek 0", 1, raf.read()); 1026cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.seek(2147483649L); 1027cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("seek >2gb", 5, raf.read()); 1028cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.seek(0); 1029cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath assertEquals("seek back to 0", 1, raf.read()); 1030cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath raf.close(); 1031cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1032cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1033cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 1034cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * Sets up the fixture, for example, open a network connection. This method 1035cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * is called before a test is executed. 1036cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 1037cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath protected void setUp() throws Exception { 1038cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath super.setUp(); 1039cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f = File.createTempFile("raf", "tst"); 1040cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if (!f.delete()) { 1041cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fail("Unable to delete test file : " + f); 1042cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1043cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath fileName = f.getAbsolutePath(); 1044cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1045cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1046cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath /** 1047cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * Tears down the fixture, for example, close a network connection. This 1048cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * method is called after a test is executed. 1049cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * 1050cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath * @throws Exception 1051cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath */ 1052cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath protected void tearDown() throws Exception { 1053cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath if (f.exists()) { 1054cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath f.delete(); 1055cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1056cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath super.tearDown(); 1057cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath } 1058cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath 1059cb318c6f4fe5b0e20099fa85f1b95ccb2d24119fNarayan Kamath} 1060