Hi
Test cases
ftpserver/trunk/core/src/test/org/apache/ftpserver/clienttests/RetrieveTest
and
ftpserver/trunk/core/src/test/org/apache/ftpserver/clienttests/RetrievePassiveTest
are failing under a Unix/Linux type of environment: the file sizes do
not match - looks like a \r\n issue.
From the the org.apache.commons.net.ftp.FTPClient document page,
paraphrasing, retrieveFile(String, OutputStream) retrieves a named file
from the server and writes it to the given OutputStream. ... If the
current file type is ASCII, line separators in the file are converted to
the local representation.
Here is how I got around it (not yet tested under Windows)
--- RetrieveTest.java~ 2007-08-24 20:50:43.000000000 +1000
+++ RetrieveTest.java 2007-08-24 20:45:43.000000000 +1000
@@ -30,6 +30,8 @@
private static final File TEST_FILE = new File(ROOT_DIR,
TEST_FILENAME);
private static byte[] testData = null;
+
+ private static final String EOL =
System.getProperty("line.separator");
/* (non-Javadoc)
* @see org.apache.ftpserver.clienttests.ClientTestTemplate#setUp()
@@ -37,7 +39,12 @@
protected void setUp() throws Exception {
super.setUp();
- testData = "TESTDATA\r\n".getBytes("UTF-8");
+ if (EOL.equals("\n"))
+ testData = "TESTDATA\n".getBytes("UTF-8");
+ else if (EOL.equals("\r\n"))
+ testData = "TESTDATA\r\n".getBytes("UTF-8");
+ else
+ testData = "TESTDATA\r\n".getBytes("UTF-8");
client.login(ADMIN_USERNAME, ADMIN_PASSWORD);
}
The failed sure-fire report for RetrieveTest:
-------------------------------------------------------------------------------
Test set: org.apache.ftpserver.clienttests.RetrieveTest
-------------------------------------------------------------------------------
Tests run: 7, Failures: 3, Errors: 0, Skipped: 0, Time elapsed: 9.962
sec <<< FAILURE!
testRetrieve(org.apache.ftpserver.clienttests.RetrieveTest) Time
elapsed: 1.276 sec <<< FAILURE!
junit.framework.AssertionFailedError: Arrays are of different length
at junit.framework.Assert.fail(Assert.java:47)
at
org.apache.ftpserver.test.TestUtil.assertArraysEqual(TestUtil.java:164)
at
org.apache.ftpserver.clienttests.RetrieveTest.testRetrieve(RetrieveTest.java:55)
at
org.apache.ftpserver.clienttests.RetrieveTest.testRetrieve(RetrieveTest.java:55)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at junit.framework.TestCase.runTest(TestCase.java:154)
at junit.framework.TestCase.runBare(TestCase.java:127)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:118)
at junit.framework.TestSuite.runTest(TestSuite.java:208)
at junit.framework.TestSuite.run(TestSuite.java:203)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
org.apache.maven.surefire.junit.JUnitTestSet.execute(JUnitTestSet.java:213)
at
org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet(AbstractDirectoryTestSuite.java:138)
at
org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java:125)
at org.apache.maven.surefire.Surefire.run(Surefire.java:132)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:299)
at
org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:837)
testRetrieveWithRestart(org.apache.ftpserver.clienttests.RetrieveTest)
Time elapsed: 2.124 sec <<< FAILURE!
junit.framework.AssertionFailedError: Arrays are of different length
at junit.framework.Assert.fail(Assert.java:47)
at
org.apache.ftpserver.test.TestUtil.assertArraysEqual(TestUtil.java:164)
at
org.apache.ftpserver.clienttests.RetrieveTest.testRetrieveWithRestart(RetrieveTest.java:88)
at
org.apache.ftpserver.clienttests.RetrieveTest.testRetrieveWithRestart(RetrieveTest.java:88)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at junit.framework.TestCase.runTest(TestCase.java:154)
at junit.framework.TestCase.runBare(TestCase.java:127)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:118)
at junit.framework.TestSuite.runTest(TestSuite.java:208)
at junit.framework.TestSuite.run(TestSuite.java:203)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
org.apache.maven.surefire.junit.JUnitTestSet.execute(JUnitTestSet.java:213)
at
org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet(AbstractDirectoryTestSuite.java:138)
at
org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java:125)
at org.apache.maven.surefire.Surefire.run(Surefire.java:132)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:299)
at
org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:837)
testRetrieveWithPath(org.apache.ftpserver.clienttests.RetrieveTest)
Time elapsed: 1.194 sec <<< FAILURE!
junit.framework.AssertionFailedError: Arrays are of different length
at junit.framework.Assert.fail(Assert.java:47)
at
org.apache.ftpserver.test.TestUtil.assertArraysEqual(TestUtil.java:164)
at
org.apache.ftpserver.clienttests.RetrieveTest.testRetrieveWithPath(RetrieveTest.java:105)
at
org.apache.ftpserver.clienttests.RetrieveTest.testRetrieveWithPath(RetrieveTest.java:105)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at junit.framework.TestCase.runTest(TestCase.java:154)
at junit.framework.TestCase.runBare(TestCase.java:127)
at junit.framework.TestResult$1.protect(TestResult.java:106)
at junit.framework.TestResult.runProtected(TestResult.java:124)
at junit.framework.TestResult.run(TestResult.java:109)
at junit.framework.TestCase.run(TestCase.java:118)
at junit.framework.TestSuite.runTest(TestSuite.java:208)
at junit.framework.TestSuite.run(TestSuite.java:203)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
org.apache.maven.surefire.junit.JUnitTestSet.execute(JUnitTestSet.java:213)
at
org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.executeTestSet(AbstractDirectoryTestSuite.java:138)
at
org.apache.maven.surefire.suite.AbstractDirectoryTestSuite.execute(AbstractDirectoryTestSuite.java:125)
at org.apache.maven.surefire.Surefire.run(Surefire.java:132)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at
org.apache.maven.surefire.booter.SurefireBooter.runSuitesInProcess(SurefireBooter.java:299)
at
org.apache.maven.surefire.booter.SurefireBooter.main(SurefireBooter.java:837)