|
I fixed the test failure reported by Dennis above. There are still failures in the Diff TCK test case. I can't figure out why they are breaking but I am running an old version of CVS (1.11.5).
Thanks for fixing that EOL problem Mike.
For me the Diff TCK test case works. I am using CVSNT 2.0.51 on Windows XP. I have another failure though. This is what 'mvn test' produces on my machine now: ------------------------------------------------------- Results : And the results of the failed test in the file [ stacktrace ] ----------------------------------------------------------- junit.framework.AssertionFailedError: The cvs command failed. cvs -z3 -f -d G:\svn\maven-scm\maven-scm-providers\maven-scm-provider-cvs\src\test\repository -q log "-d 2003-02-01<2004-02-01" testGetCommandWithoutEndDate(org.apache.maven.scm.provider.cvslib.command.changelog.CvsChangeLogCommandTest) Time elapsed: 5,898 sec <<< FAILURE! I tried to issue the cvs command on the command line and got back the same error as when it was run from maven.
To see is this is a Windows issue, I zipped my cvs-provider directory and put it on a Solaris machine. I then ran the same command line cvs command there, and it produced the exact same error message. The Solaris machine has "Concurrent Versions System (CVS) 1.11.20 (client/server)" from FSF. Is there someone who is able to run the tests for the cvs-provider? All tests runs fine for me. I use win XP and cygwin cvs (1.11.17) under windows.
diff command test always fail on my pc ( xp, java5, cygwin cvs), but passes on other machines ;(
------------------------------------------------------------------------------- testDiffCommand(org.apache.maven.scm.provider.cvslib.command.diff.CvsDiffCommandTckTest) Time elapsed: 3.609 sec <<< FAILURE! [ stdout ] --------------------------------------------------------------- [INFO] Executing: cvs -q -f diff -u -N [ stderr ] --------------------------------------------------------------- [ stacktrace ] ----------------------------------------------------------- junit.framework.ComparisonFailure: expected:<@@ -0,0 +1 @@ it's very strange, but i can't help on this error because i can't reproduce it.
Do you have always failures on cvs tests? Is it only for the diff command?
Can you run manually commands that run by maven-scm? tell me what is the result. For the diff result, is it really an empty string or a problem with carriage return? I get the exact same error that Dan posted on 16/Jan. I will attach my cvs binary.
Tests works fine with your cvs.exe
Weird. I wonder if it's a cygwin binary and your cygwin1.dll is different enough to not display the bad behavior we are seeing?
Info about my cygwin1.dll:
v ersion: 1005.19.0.0 Build date : 2006-01-20 13:28 I checked and it looks like that binary is static. So I have no idea why it's not working. I'm out of ideas.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Mike wrote about this error on the dev-list:
org.apache.maven.scm.provider.cvslib.command.checkout.CvsCheckoutCommandTest
junit.framework.AssertionFailedError: expected:<38403> but was:<39511>
at junit.framework.Assert.fail(Assert.java:47)
at junit.framework.Assert.failNotEquals(Assert.java:282)
at junit.framework.Assert.assertEquals(Assert.java:64)
at junit.framework.Assert.assertEquals(Assert.java:136)
at junit.framework.Assert.assertEquals(Assert.java:142)
at org.apache.maven.scm.provider.cvslib.command.checkout.CvsCheckoutCommandTest.testCheckOutWithTag(CvsCheckoutCommandTest.java:88)
After some investigation I have concluded that this happens in a Windows environment because the command-line cvs client checks out the file with windows line-endings (CR LF). This makes the total size of the file in bytes larger than it would in a unix environment. That is what the error above is telling us.
I googled and found the CVS-book at
http://cvsbook.red-bean.com/cvsbook.html#CVS%20is%20not%20doing%20line-end%20conversion%20correctly
They seem to imply that the only way of stopping a cvs client from converting line-endings to the native sort is to say that the file is binary. That would mean specifying -kb in the CVS/Entries file. So I tried this and created such a directory and file in the test repository, but the results were the same.
I am trying to make improvements to the cvs provider but I'm having all sorts of trouble just building maven-scm, being on Windows and not having a default locale of English. It's quite frustrating.
To move forward, SCM-10 talks about switching from command line cvs to cvslib. This would be a major improvement for compatibility. There is a gotcha that cvslib might not support the ext transport. If that is the case, do you think it would be possible to use command line cvs for ext transport and cvslib for the rest?