You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by ml...@apache.org on 2006/05/05 09:14:20 UTC
svn commit: r399997 - in
/incubator/harmony/enhanced/classlib/trunk/modules/luni/src:
main/java/java/io/FileOutputStream.java
test/java/tests/api/java/io/FileOutputStreamTest.java
Author: mloenko
Date: Fri May 5 00:14:19 2006
New Revision: 399997
URL: http://svn.apache.org/viewcvs?rev=399997&view=rev
Log:
fixes for HARMONY-437
[classlib] java.io.FileOutputStream.write(byte[] b,int off,int len) does not throw IndexOutOfBoundsException
Modified:
incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/io/FileOutputStream.java
incubator/harmony/enhanced/classlib/trunk/modules/luni/src/test/java/tests/api/java/io/FileOutputStreamTest.java
Modified: incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/io/FileOutputStream.java
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/io/FileOutputStream.java?rev=399997&r1=399996&r2=399997&view=diff
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/io/FileOutputStream.java (original)
+++ incubator/harmony/enhanced/classlib/trunk/modules/luni/src/main/java/java/io/FileOutputStream.java Fri May 5 00:14:19 2006
@@ -252,22 +252,27 @@
* If buffer is <code>null</code>.
*/
public void write(byte[] buffer, int offset, int count) throws IOException {
- openCheck();
+ if (buffer == null) {
+ throw new NullPointerException();
+ }
+ if (count < 0 || offset < 0 || offset > buffer.length
+ || count > buffer.length - offset) {
+ throw new IndexOutOfBoundsException();
+ }
+ openCheck();
fileSystem.write(fd.descriptor, buffer, offset, count);
- }
+ }
/**
- * Writes the specified byte <code>oneByte</code> to this
- * FileOutputStream. Only the low order byte of <code>oneByte</code> is
- * written.
- *
- * @param oneByte
- * the byte to be written
- *
- * @throws IOException
- * If an error occurs attempting to write to this
- * FileOutputStream.
- */
+ * Writes the specified byte <code>oneByte</code> to this
+ * FileOutputStream. Only the low order byte of <code>oneByte</code> is
+ * written.
+ *
+ * @param oneByte the byte to be written
+ *
+ * @throws IOException If an error occurs attempting to write to this
+ * FileOutputStream.
+ */
public void write(int oneByte) throws IOException {
openCheck();
byte[] byteArray = new byte[1];
Modified: incubator/harmony/enhanced/classlib/trunk/modules/luni/src/test/java/tests/api/java/io/FileOutputStreamTest.java
URL: http://svn.apache.org/viewcvs/incubator/harmony/enhanced/classlib/trunk/modules/luni/src/test/java/tests/api/java/io/FileOutputStreamTest.java?rev=399997&r1=399996&r2=399997&view=diff
==============================================================================
--- incubator/harmony/enhanced/classlib/trunk/modules/luni/src/test/java/tests/api/java/io/FileOutputStreamTest.java (original)
+++ incubator/harmony/enhanced/classlib/trunk/modules/luni/src/test/java/tests/api/java/io/FileOutputStreamTest.java Fri May 5 00:14:19 2006
@@ -1,227 +1,225 @@
-/* Copyright 1998, 2005 The Apache Software Foundation or its licensors, as applicable
+/*
+ * Copyright 1998, 2005 The Apache Software Foundation or its licensors, as
+ * applicable
*
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
*
- * http://www.apache.org/licenses/LICENSE-2.0
+ * http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
*/
package tests.api.java.io;
import java.io.File;
import java.io.FileInputStream;
-import java.io.FileNotFoundException;
import java.io.FileOutputStream;
-import java.io.IOException;
public class FileOutputStreamTest extends junit.framework.TestCase {
- public String fileName;
+ public String fileName;
- private java.io.InputStream is;
+ java.io.FileOutputStream fos;
- java.io.FileOutputStream fos;
+ java.io.FileInputStream fis;
- java.io.FileInputStream fis;
+ java.io.File f;
- java.io.File f;
-
- byte[] ibuf = new byte[4096];
-
- public String fileString = "Test_All_Tests\nTest_java_io_BufferedInputStream\nTest_java_io_BufferedOutputStream\nTest_java_io_ByteArrayInputStream\nTest_java_io_ByteArrayOutputStream\nTest_java_io_DataInputStream\nTest_java_io_File\nTest_java_io_FileDescriptor\nTest_java_io_FileInputStream\nTest_java_io_FileNotFoundException\nTest_FileOutputStream\nTest_java_io_FilterInputStream\nTest_java_io_FilterOutputStream\nTest_java_io_InputStream\nTest_java_io_IOException\nTest_java_io_OutputStream\nTest_java_io_PrintStream\nTest_java_io_RandomAccessFile\nTest_java_io_SyncFailedException\nTest_java_lang_AbstractMethodError\nTest_java_lang_ArithmeticException\nTest_java_lang_ArrayIndexOutOfBoundsException\nTest_java_lang_ArrayStoreException\nTest_java_lang_Boolean\nTest_java_lang_Byte\nTest_java_lang_Character\nTest_java_lang_Class\nTest_java_lang_ClassCastException\nTest_java_lang_ClassCircularityError\nTest_java_lang_ClassFormatError\nTest_java_lang_ClassLoader\nTest_java_lang_Class
NotFoundException\nTest_java_lang_CloneNotSupportedException\nTest_java_lang_Double\nTest_java_lang_Error\nTest_java_lang_Exception\nTest_java_lang_ExceptionInInitializerError\nTest_java_lang_Float\nTest_java_lang_IllegalAccessError\nTest_java_lang_IllegalAccessException\nTest_java_lang_IllegalArgumentException\nTest_java_lang_IllegalMonitorStateException\nTest_java_lang_IllegalThreadStateException\nTest_java_lang_IncompatibleClassChangeError\nTest_java_lang_IndexOutOfBoundsException\nTest_java_lang_InstantiationError\nTest_java_lang_InstantiationException\nTest_java_lang_Integer\nTest_java_lang_InternalError\nTest_java_lang_InterruptedException\nTest_java_lang_LinkageError\nTest_java_lang_Long\nTest_java_lang_Math\nTest_java_lang_NegativeArraySizeException\nTest_java_lang_NoClassDefFoundError\nTest_java_lang_NoSuchFieldError\nTest_java_lang_NoSuchMethodError\nTest_java_lang_NullPointerException\nTest_java_lang_Number\nTest_java_lang_NumberFormatException\nTest_java_lang_Obj
ect\nTest_java_lang_OutOfMemoryError\nTest_java_lang_RuntimeException\nTest_java_lang_SecurityManager\nTest_java_lang_Short\nTest_java_lang_StackOverflowError\nTest_java_lang_String\nTest_java_lang_StringBuffer\nTest_java_lang_StringIndexOutOfBoundsException\nTest_java_lang_System\nTest_java_lang_Thread\nTest_java_lang_ThreadDeath\nTest_java_lang_ThreadGroup\nTest_java_lang_Throwable\nTest_java_lang_UnknownError\nTest_java_lang_UnsatisfiedLinkError\nTest_java_lang_VerifyError\nTest_java_lang_VirtualMachineError\nTest_java_lang_vm_Image\nTest_java_lang_vm_MemorySegment\nTest_java_lang_vm_ROMStoreException\nTest_java_lang_vm_VM\nTest_java_lang_Void\nTest_java_net_BindException\nTest_java_net_ConnectException\nTest_java_net_DatagramPacket\nTest_java_net_DatagramSocket\nTest_java_net_DatagramSocketImpl\nTest_java_net_InetAddress\nTest_java_net_NoRouteToHostException\nTest_java_net_PlainDatagramSocketImpl\nTest_java_net_PlainSocketImpl\nTest_java_net_Socket\nTest_java_net_SocketE
xception\nTest_java_net_SocketImpl\nTest_java_net_SocketInputStream\nTest_java_net_SocketOutputStream\nTest_java_net_UnknownHostException\nTest_java_util_ArrayEnumerator\nTest_java_util_Date\nTest_java_util_EventObject\nTest_java_util_HashEnumerator\nTest_java_util_Hashtable\nTest_java_util_Properties\nTest_java_util_ResourceBundle\nTest_java_util_tm\nTest_java_util_Vector\n";
-
- /**
- * @tests java.io.FileOutputStream#FileOutputStream(java.io.File)
- */
- public void test_ConstructorLjava_io_File() {
- // Test for method java.io.FileOutputStream(java.io.File)
- try {
- f = new File(fileName = System.getProperty("user.home"), "fos.tst");
- fos = new java.io.FileOutputStream(f);
- } catch (java.io.IOException e) {
- fail("Exception during Constructor test" + e.toString());
- }
- }
-
- /**
- * @tests java.io.FileOutputStream#FileOutputStream(java.io.FileDescriptor)
- */
- public void test_ConstructorLjava_io_FileDescriptor() {
- // Test for method java.io.FileOutputStream(java.io.FileDescriptor)
- try {
- f = new File(fileName = System.getProperty("user.home"), "fos.tst");
- fileName = f.getAbsolutePath();
- fos = new FileOutputStream(fileName);
- fos.write('l');
- fos.close();
- fis = new FileInputStream(fileName);
- fos = new FileOutputStream(fis.getFD());
- fos.close();
- fis.close();
- } catch (Exception e) {
- fail("Exception during constrcutor test: " + e.toString());
- }
- }
-
- /**
- * @tests java.io.FileOutputStream#FileOutputStream(java.lang.String)
- */
- public void test_ConstructorLjava_lang_String() {
- // Test for method java.io.FileOutputStream(java.lang.String)
- try {
- f = new File(fileName = System.getProperty("user.home"), "fos.tst");
- fileName = f.getAbsolutePath();
- fos = new java.io.FileOutputStream(f);
- } catch (java.io.IOException e) {
- fail("Exception during Constructor test : " + e.getMessage());
- }
- }
-
- /**
- * @tests java.io.FileOutputStream#FileOutputStream(java.lang.String,
- * boolean)
- */
- public void test_ConstructorLjava_lang_StringZ() {
- // Test for method java.io.FileOutputStream(java.lang.String, boolean)
- try {
- f = new java.io.File(System.getProperty("user.home"), "fos.tst");
- fos = new java.io.FileOutputStream(f.getPath(), false);
- fos.write("HI".getBytes(), 0, 2);
- fos.close();
- fos = new java.io.FileOutputStream(f.getPath(), true);
- fos.write(fileString.getBytes());
- fos.close();
- byte[] buf = new byte[fileString.length() + 2];
- fis = new FileInputStream(f.getPath());
- fis.read(buf, 0, buf.length);
- assertTrue("Failed to create appending stream", new String(buf, 0,
- buf.length).equals("HI" + fileString));
- } catch (java.io.IOException e) {
- fail("Exception during Constructor test : " + e.getMessage());
- }
- }
-
- /**
- * @tests java.io.FileOutputStream#close()
- */
- public void test_close() {
- // Test for method void java.io.FileOutputStream.close()
-
- try {
- f = new java.io.File(System.getProperty("user.home"), "output.tst");
- fos = new java.io.FileOutputStream(f.getPath());
- fos.close();
- fos.write(fileString.getBytes());
- fail("Close test failed - wrote to closed stream");
- } catch (java.io.IOException e) {
- // correct
- }
-
- }
-
- /**
- * @tests java.io.FileOutputStream#getFD()
- */
- public void test_getFD() {
- // Test for method java.io.FileDescriptor
- // java.io.FileOutputStream.getFD()
- try {
- f = new File(fileName = System.getProperty("user.home"), "testfd");
- fileName = f.getAbsolutePath();
- fos = new FileOutputStream(f);
- assertTrue("Returned invalid fd", fos.getFD().valid());
- fos.close();
- assertTrue("Returned invalid fd", !fos.getFD().valid());
- } catch (FileNotFoundException e) {
- fail("Could not find : " + fileName);
- } catch (IOException e) {
- fail("Exception during test : " + e.getMessage());
- }
- }
-
- /**
- * @tests java.io.FileOutputStream#write(byte[])
- */
- public void test_write$B() {
- // Test for method void java.io.FileOutputStream.write(byte [])
- try {
- f = new java.io.File(System.getProperty("user.home"), "output.tst");
- fos = new java.io.FileOutputStream(f.getPath());
- fos.write(fileString.getBytes());
- fis = new java.io.FileInputStream(f.getPath());
- byte rbytes[] = new byte[4000];
- fis.read(rbytes, 0, fileString.length());
- assertTrue("Incorrect string returned", new String(rbytes, 0,
- fileString.length()).equals(fileString));
- } catch (java.io.IOException e) {
- fail("Exception during write test : " + e.getMessage());
- }
- }
-
- /**
- * @tests java.io.FileOutputStream#write(byte[], int, int)
- */
- public void test_write$BII() {
- // Test for method void java.io.FileOutputStream.write(byte [], int,
- // int)
- try {
- f = new java.io.File(System.getProperty("user.home"), "output.tst");
- fos = new java.io.FileOutputStream(f.getPath());
- fos.write(fileString.getBytes(), 0, fileString.length());
- fis = new java.io.FileInputStream(f.getPath());
- byte rbytes[] = new byte[4000];
- fis.read(rbytes, 0, fileString.length());
- assertTrue("Incorrect bytes written", new String(rbytes, 0,
- fileString.length()).equals(fileString));
- } catch (java.io.IOException e) {
- fail("Exception during write test : " + e.getMessage());
- }
- }
-
- /**
- * @tests java.io.FileOutputStream#write(int)
- */
- public void test_writeI() {
- // Test for method void java.io.FileOutputStream.write(int)
- try {
- f = new java.io.File(System.getProperty("user.home"), "output.tst");
- fos = new java.io.FileOutputStream(f.getPath());
- fos.write('t');
- fis = new java.io.FileInputStream(f.getPath());
- assertEquals("Incorrect char written", 't', fis.read());
- } catch (java.io.IOException e) {
- fail("Exception during write test : " + e.getMessage());
- }
-
- }
-
- /**
- * Sets up the fixture, for example, open a network connection. This method
- * is called before a test is executed.
- */
- protected void setUp() {
- }
-
- /**
- * Tears down the fixture, for example, close a network connection. This
- * method is called after a test is executed.
- */
- protected void tearDown() {
- try {
- if (f != null)
- f.delete();
- if (fis != null)
- fis.close();
- if (fos != null)
- fos.close();
- } catch (Exception e) {
- }
- }
+ byte[] ibuf = new byte[4096];
+
+ public String fileString = "Test_All_Tests\nTest_java_io_BufferedInputStream\nTest_java_io_BufferedOutputStream\nTest_java_io_ByteArrayInputStream\nTest_java_io_ByteArrayOutputStream\nTest_java_io_DataInputStream\nTest_java_io_File\nTest_java_io_FileDescriptor\nTest_java_io_FileInputStream\nTest_java_io_FileNotFoundException\nTest_FileOutputStream\nTest_java_io_FilterInputStream\nTest_java_io_FilterOutputStream\nTest_java_io_InputStream\nTest_java_io_IOException\nTest_java_io_OutputStream\nTest_java_io_PrintStream\nTest_java_io_RandomAccessFile\nTest_java_io_SyncFailedException\nTest_java_lang_AbstractMethodError\nTest_java_lang_ArithmeticException\nTest_java_lang_ArrayIndexOutOfBoundsException\nTest_java_lang_ArrayStoreException\nTest_java_lang_Boolean\nTest_java_lang_Byte\nTest_java_lang_Character\nTest_java_lang_Class\nTest_java_lang_ClassCastException\nTest_java_lang_ClassCircularityError\nTest_java_lang_ClassFormatError\nTest_java_lang_ClassLoader\nTest_java_lang_Cl
assNotFoundException\nTest_java_lang_CloneNotSupportedException\nTest_java_lang_Double\nTest_java_lang_Error\nTest_java_lang_Exception\nTest_java_lang_ExceptionInInitializerError\nTest_java_lang_Float\nTest_java_lang_IllegalAccessError\nTest_java_lang_IllegalAccessException\nTest_java_lang_IllegalArgumentException\nTest_java_lang_IllegalMonitorStateException\nTest_java_lang_IllegalThreadStateException\nTest_java_lang_IncompatibleClassChangeError\nTest_java_lang_IndexOutOfBoundsException\nTest_java_lang_InstantiationError\nTest_java_lang_InstantiationException\nTest_java_lang_Integer\nTest_java_lang_InternalError\nTest_java_lang_InterruptedException\nTest_java_lang_LinkageError\nTest_java_lang_Long\nTest_java_lang_Math\nTest_java_lang_NegativeArraySizeException\nTest_java_lang_NoClassDefFoundError\nTest_java_lang_NoSuchFieldError\nTest_java_lang_NoSuchMethodError\nTest_java_lang_NullPointerException\nTest_java_lang_Number\nTest_java_lang_NumberFormatException\nTest_java_lang_
Object\nTest_java_lang_OutOfMemoryError\nTest_java_lang_RuntimeException\nTest_java_lang_SecurityManager\nTest_java_lang_Short\nTest_java_lang_StackOverflowError\nTest_java_lang_String\nTest_java_lang_StringBuffer\nTest_java_lang_StringIndexOutOfBoundsException\nTest_java_lang_System\nTest_java_lang_Thread\nTest_java_lang_ThreadDeath\nTest_java_lang_ThreadGroup\nTest_java_lang_Throwable\nTest_java_lang_UnknownError\nTest_java_lang_UnsatisfiedLinkError\nTest_java_lang_VerifyError\nTest_java_lang_VirtualMachineError\nTest_java_lang_vm_Image\nTest_java_lang_vm_MemorySegment\nTest_java_lang_vm_ROMStoreException\nTest_java_lang_vm_VM\nTest_java_lang_Void\nTest_java_net_BindException\nTest_java_net_ConnectException\nTest_java_net_DatagramPacket\nTest_java_net_DatagramSocket\nTest_java_net_DatagramSocketImpl\nTest_java_net_InetAddress\nTest_java_net_NoRouteToHostException\nTest_java_net_PlainDatagramSocketImpl\nTest_java_net_PlainSocketImpl\nTest_java_net_Socket\nTest_java_net_Sock
etException\nTest_java_net_SocketImpl\nTest_java_net_SocketInputStream\nTest_java_net_SocketOutputStream\nTest_java_net_UnknownHostException\nTest_java_util_ArrayEnumerator\nTest_java_util_Date\nTest_java_util_EventObject\nTest_java_util_HashEnumerator\nTest_java_util_Hashtable\nTest_java_util_Properties\nTest_java_util_ResourceBundle\nTest_java_util_tm\nTest_java_util_Vector\n";
+
+ /**
+ * @tests java.io.FileOutputStream#FileOutputStream(java.io.File)
+ */
+ public void test_ConstructorLjava_io_File() throws Exception {
+ // Test for method java.io.FileOutputStream(java.io.File)
+ f = new File(fileName = System.getProperty("user.home"), "fos.tst");
+ fos = new java.io.FileOutputStream(f);
+ }
+
+ /**
+ * @tests java.io.FileOutputStream#FileOutputStream(java.io.FileDescriptor)
+ */
+ public void test_ConstructorLjava_io_FileDescriptor() throws Exception {
+ // Test for method java.io.FileOutputStream(java.io.FileDescriptor)
+ f = new File(fileName = System.getProperty("user.home"), "fos.tst");
+ fileName = f.getAbsolutePath();
+ fos = new FileOutputStream(fileName);
+ fos.write('l');
+ fos.close();
+ fis = new FileInputStream(fileName);
+ fos = new FileOutputStream(fis.getFD());
+ fos.close();
+ fis.close();
+ }
+
+ /**
+ * @tests java.io.FileOutputStream#FileOutputStream(java.lang.String)
+ */
+ public void test_ConstructorLjava_lang_String() throws Exception {
+ // Test for method java.io.FileOutputStream(java.lang.String)
+ f = new File(fileName = System.getProperty("user.home"), "fos.tst");
+ fileName = f.getAbsolutePath();
+ fos = new java.io.FileOutputStream(f);
+ }
+
+ /**
+ * @tests java.io.FileOutputStream#FileOutputStream(java.lang.String,
+ * boolean)
+ */
+ public void test_ConstructorLjava_lang_StringZ() throws Exception {
+ // Test for method java.io.FileOutputStream(java.lang.String, boolean)
+ f = new java.io.File(System.getProperty("user.home"), "fos.tst");
+ fos = new java.io.FileOutputStream(f.getPath(), false);
+ fos.write("HI".getBytes(), 0, 2);
+ fos.close();
+ fos = new java.io.FileOutputStream(f.getPath(), true);
+ fos.write(fileString.getBytes());
+ fos.close();
+ byte[] buf = new byte[fileString.length() + 2];
+ fis = new FileInputStream(f.getPath());
+ fis.read(buf, 0, buf.length);
+ assertTrue("Failed to create appending stream", new String(buf, 0,
+ buf.length).equals("HI" + fileString));
+ }
+
+ /**
+ * @tests java.io.FileOutputStream#close()
+ */
+ public void test_close() throws Exception {
+ // Test for method void java.io.FileOutputStream.close()
+
+ f = new java.io.File(System.getProperty("user.home"), "output.tst");
+ fos = new java.io.FileOutputStream(f.getPath());
+ fos.close();
+
+ try {
+ fos.write(fileString.getBytes());
+ fail("Close test failed - wrote to closed stream");
+ } catch (java.io.IOException e) {
+ // correct
+ }
+
+ }
+
+ /**
+ * @tests java.io.FileOutputStream#getFD()
+ */
+ public void test_getFD() throws Exception {
+ // Test for method java.io.FileDescriptor
+ // java.io.FileOutputStream.getFD()
+ f = new File(fileName = System.getProperty("user.home"), "testfd");
+ fileName = f.getAbsolutePath();
+ fos = new FileOutputStream(f);
+ assertTrue("Returned invalid fd", fos.getFD().valid());
+ fos.close();
+ assertTrue("Returned invalid fd", !fos.getFD().valid());
+ }
+
+ /**
+ * @tests java.io.FileOutputStream#write(byte[])
+ */
+ public void test_write$B() throws Exception {
+ // Test for method void java.io.FileOutputStream.write(byte [])
+ f = new java.io.File(System.getProperty("user.home"), "output.tst");
+ fos = new java.io.FileOutputStream(f.getPath());
+ fos.write(fileString.getBytes());
+ fis = new java.io.FileInputStream(f.getPath());
+ byte rbytes[] = new byte[4000];
+ fis.read(rbytes, 0, fileString.length());
+ assertTrue("Incorrect string returned", new String(rbytes, 0,
+ fileString.length()).equals(fileString));
+ }
+
+ /**
+ * @tests java.io.FileOutputStream#write(byte[], int, int)
+ */
+ public void test_write$BII() throws Exception {
+ // Test for method void java.io.FileOutputStream.write(byte [], int,
+ // int)
+ f = new java.io.File(System.getProperty("user.home"), "output.tst");
+ fos = new java.io.FileOutputStream(f.getPath());
+ fos.write(fileString.getBytes(), 0, fileString.length());
+ fis = new java.io.FileInputStream(f.getPath());
+ byte rbytes[] = new byte[4000];
+ fis.read(rbytes, 0, fileString.length());
+ assertTrue("Incorrect bytes written", new String(rbytes, 0, fileString
+ .length()).equals(fileString));
+ }
+
+ /**
+ * @tests java.io.FileOutputStream#write(int)
+ */
+ public void test_writeI() throws Exception {
+ // Test for method void java.io.FileOutputStream.write(int)
+ f = new java.io.File(System.getProperty("user.home"), "output.tst");
+ fos = new java.io.FileOutputStream(f.getPath());
+ fos.write('t');
+ fis = new java.io.FileInputStream(f.getPath());
+ assertEquals("Incorrect char written", 't', fis.read());
+ }
+
+ /**
+ * @tests java.io.FileOutputStream#write(byte[], int, int)
+ */
+ public void test_write$BII2() throws Exception {
+ // Regression for HARMONY-437
+
+ f = new java.io.File(System.getProperty("user.home"), "output.tst");
+ fos = new java.io.FileOutputStream(f.getPath());
+
+ try {
+ fos.write(null, 1, 1);
+ fail("NullPointerException must be thrown");
+ } catch (NullPointerException e) {}
+
+ try {
+ fos.write(new byte[1], -1, 1);
+ fail("IndexOutOfBoundsException must be thrown if off <0");
+ } catch (IndexOutOfBoundsException e) {}
+
+ try {
+ fos.write(new byte[1], 0, -1);
+ fail("IndexOutOfBoundsException must be thrown if len <0");
+ } catch (IndexOutOfBoundsException e) {}
+
+ try {
+ fos.write(new byte[1], 0, 5);
+ fail("IndexOutOfBoundsException must be thrown if off+len > b.lengh");
+ } catch (IndexOutOfBoundsException e) {}
+
+ try {
+ fos.write(new byte[10], Integer.MAX_VALUE, 5);
+ fail("IndexOutOfBoundsException expected");
+ } catch (IndexOutOfBoundsException e) {}
+
+ try {
+ fos.write(new byte[10], 5, Integer.MAX_VALUE);
+ fail("IndexOutOfBoundsException expected");
+ } catch (IndexOutOfBoundsException e) {}
+ fos.close();
+ }
+
+ /**
+ * Tears down the fixture, for example, close a network connection. This
+ * method is called after a test is executed.
+ */
+ protected void tearDown() throws Exception {
+ super.tearDown();
+ try {
+ if (f != null)
+ f.delete();
+ if (fis != null)
+ fis.close();
+ if (fos != null)
+ fos.close();
+ } catch (Exception e) {}
+ }
}