Test case misuses read(byte[]) and read(char[])
-----------------------------------------------
Key: IO-96
URL: http://issues.apache.org/jira/browse/IO-96
Project: Commons IO
Issue Type: Bug
Components: Filters, Streams/Writers, Utilities
Affects Versions: 1.2
Environment: GNU classpath
Reporter: Stephen Colebourne
Assigned To: Stephen Colebourne
Priority: Minor
Fix For: 1.3
Message to mailing list from Anthony Green
http://www.mail-archive.com/[email protected]/msg82127.html
-----------------------------------------
This support routine from the commons-io project test code assumed that
FileReader.read(byte[]) would always read the entire file. There's no
such guarantee, and some tests were failing on GNU Classpath based VMs
because of this.
Thanks,
AG
--- src/test/org/apache/commons/io/testtools/FileBasedTestCase.java~
2006-07-13 23:44:13.000000000 -0700
+++ src/test/org/apache/commons/io/testtools/FileBasedTestCase.java
2006-07-13 23:44:20.000000000 -0700
@@ -167,18 +171,22 @@
throws IOException
{
Reader ir = new java.io.FileReader( file );
- try {
- char[] c1 = new char[ c0.length ];
- int numRead = ir.read( c1 );
- assertTrue( "Different number of bytes", numRead == c0.length );
- for( int i = 0;
- i < numRead;
- assertTrue( "Byte " + i + " differs (" + c0[ i ] + " != " +
c1[ i ] + ")",
- c0[ i ] == c1[ i ] ), i++
- );
- } finally {
- ir.close();
- }
+ int count = 0, numRead = 0;
+ char[] c1 = new char[ c0.length ];
+ try {
+ while (count < c0.length)
+ {
+ numRead = ir.read( c1, count, c0.length);
+ for( int i = count;
+ i < count+numRead;
+ assertTrue( "Byte " + i + " differs (" + c0[ i ] + " != " +
c1[ i ] + ")",
+ c0[ i ] == c1[ i ] ), i++
+ );
+ count += numRead;
+ }
+ } finally {
+ ir.close();
+ }
}
protected void checkWrite(OutputStream output) throws Exception {
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]