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)


--

Regards

Peter

As always the organisation disavows knowledge of this email

Reply via email to