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