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