You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@commons.apache.org by "Stephen Colebourne (JIRA)" <ji...@apache.org> on 2006/10/11 18:31:36 UTC
[jira] Resolved: (IO-96) Test case misuses read(byte[]) and
read(char[])
[ http://issues.apache.org/jira/browse/IO-96?page=all ]
Stephen Colebourne resolved IO-96.
----------------------------------
Resolution: Fixed
> 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/commons-dev@jakarta.apache.org/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: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org