[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
[
List Home]
RE: [stellation-res] Text merge test case: an analysis update
|
> >-----Original Message-----
> >From: stellation-res-admin@xxxxxxxxxxxxxxx
> >[mailto:stellation-res-admin@xxxxxxxxxxxxxxx]On Behalf Of Mark C.
> >Chu-Carroll
> >Sent: October 27, 2002 11:54 AM
> >To: stellation-res@xxxxxxxxxxxxxxx
> >Subject: RE: [stellation-res] Text merge test case: an analysis update
> >
> >
> >I'm doing detailed analysis of the tests... I'll send mail
> >as I'm connected to the network and I have data.
> >
> >First: there were a couple of tests in the current checkin
> >that come up as failures because the test labels
> >say that they don't conflict, but they actually do...
> >That's trivial, but the results are correct. Eliminating
> >that, with my current code, I continue to see failures in:
> >13, 14, 16, 18, 19, and 21.
> >
> >13 and 14 are NoSuchElement exceptions, which I have not
> >yet had time to track. I'm not sure what's going on there;
> >I'm doing analysis of the other cases first, and then I'll
> >try and go take care of the code changes after I understand
> >some more of what's going on. (Jonathan, are these tests
> >generate NSEs for you, or are they running to completion?
> >If they run for you, it means the error is in my latest
> >changes.)
Test 13 is throwing this exception.
The stack trace is
Thread [main] (Suspended (exception java.util.NoSuchElementException))
java.util.AbstractList$Itr.next() line: 422 [local variables unavailable]
org.eclipse.stellation.repos.util.IntervalPairIterator.next() line: 51
org.eclipse.stellation.repos.util.TextUtils.intersectIPLs(org.eclipse.stella
tion.repos.util.IntervalPairList,
org.eclipse.stellation.repos.util.IntervalPairList) line: 856
org.eclipse.stellation.repos.util.TextUtils.mergeChanges(java.lang.Integer,
org.eclipse.stellation.util.StringList,
org.eclipse.stellation.util.StringList,
org.eclipse.stellation.util.StringList, java.lang.String, java.lang.String,
java.util.List) line: 727
org.eclipse.stellation.unittest.TextMergeEntryFixture.runTest(int) line:
100
org.eclipse.stellation.unittest.TextMergeFixture.runTest() line: 129
org.eclipse.stellation.unittest.TextMergeTest.testMerge() line: 53
sun.reflect.NativeMethodAccessorImpl.invoke0(java.lang.reflect.Method,
java.lang.Object, java.lang.Object[]) line: not available [native method]
sun.reflect.NativeMethodAccessorImpl.invoke(java.lang.Object,
java.lang.Object[]) line: 39 [local variables unavailable]
sun.reflect.DelegatingMethodAccessorImpl.invoke(java.lang.Object,
java.lang.Object[]) line: 25 [local variables unavailable]
java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[]) line:
324 [local variables unavailable]
org.eclipse.stellation.unittest.TextMergeTest(junit.framework.TestCase).runT
est() line: 166
org.eclipse.stellation.unittest.TextMergeTest(junit.framework.TestCase).runB
are() line: 140
junit.framework.TestResult$1.protect() line: 106
junit.framework.TestResult.runProtected(junit.framework.Test,
junit.framework.Protectable) line: 124
junit.framework.TestResult.run(junit.framework.TestCase) line: 109
org.eclipse.stellation.unittest.TextMergeTest(junit.framework.TestCase).run(
junit.framework.TestResult) line: 131
junit.framework.TestSuite.runTest(junit.framework.Test,
junit.framework.TestResult) line: 173
junit.framework.TestSuite.run(junit.framework.TestResult) line: 168
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(java.lang.St
ring[]) line: 358
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run() line: 244
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(java.lang.String
[]) line: 150
Test 14 also fails with this stack trace.
Thread [main] (Suspended (exception java.util.NoSuchElementException))
java.util.AbstractList$Itr.next() line: 422 [local variables unavailable]
org.eclipse.stellation.repos.util.IntervalPairIterator.next() line: 51
org.eclipse.stellation.repos.util.TextUtils.intersectIPLs(org.eclipse.stella
tion.repos.util.IntervalPairList,
org.eclipse.stellation.repos.util.IntervalPairList) line: 856
org.eclipse.stellation.repos.util.TextUtils.mergeChanges(java.lang.Integer,
org.eclipse.stellation.util.StringList,
org.eclipse.stellation.util.StringList,
org.eclipse.stellation.util.StringList, java.lang.String, java.lang.String,
java.util.List) line: 727
org.eclipse.stellation.unittest.TextMergeEntryFixture.runTest(int) line:
100
org.eclipse.stellation.unittest.TextMergeFixture.runTest() line: 129
org.eclipse.stellation.unittest.TextMergeTest.testMerge() line: 53
sun.reflect.NativeMethodAccessorImpl.invoke0(java.lang.reflect.Method,
java.lang.Object, java.lang.Object[]) line: not available [native method]
sun.reflect.NativeMethodAccessorImpl.invoke(java.lang.Object,
java.lang.Object[]) line: 39
sun.reflect.DelegatingMethodAccessorImpl.invoke(java.lang.Object,
java.lang.Object[]) line: 25
java.lang.reflect.Method.invoke(java.lang.Object, java.lang.Object[]) line:
324
org.eclipse.stellation.unittest.TextMergeTest(junit.framework.TestCase).runT
est() line: 166
org.eclipse.stellation.unittest.TextMergeTest(junit.framework.TestCase).runB
are() line: 140
junit.framework.TestResult$1.protect() line: 106
junit.framework.TestResult.runProtected(junit.framework.Test,
junit.framework.Protectable) line: 124
junit.framework.TestResult.run(junit.framework.TestCase) line: 109
org.eclipse.stellation.unittest.TextMergeTest(junit.framework.TestCase).run(
junit.framework.TestResult) line: 131
junit.framework.TestSuite.runTest(junit.framework.Test,
junit.framework.TestResult) line: 173
junit.framework.TestSuite.run(junit.framework.TestResult) line: 168
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(java.lang.St
ring[]) line: 358
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run() line: 244
org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(java.lang.String
[]) line: 150
> >
> >I've done a detailed analysis of test16, and concluded
> >that it's doing the right thing, but the predicted results
> >in the test file are wrong. Here's what the test
> >file has for 16:
> >
> >:test16
> ># Tests for conflicts in first and last lines
> ># Base sequence Delta Sequence Target Sequence Expected
> >Sequence
> > abc xyz abc abc
> > abc abc abc abc
> > abc abc abc abc
> > xyz abc abc abc
> > abc abc abc abc
> > abc abc abc abc
> > abc abc xyz xyz
> >
> >To the stellation merge algorithm, what's going on here is:
> >both delta and target deleted the xyz in the fourth line of
> >base; delta inserted xyz in the first position, and target
> >inserted xyz in the last. The correct result is thus:
> >xyz
> >abc
> >abc
> >abc
> >abc
> >abc
> >xyz
> >
> >This is what my current code generates. So test 16 works
> >in the version of the system that I'm running.
I agree that this is the correct output from the algorithm. However the
intent here was almost certainly to move xyz from one place to another
rather than to create two copies of it. With this perspective, a move
conflict would be a more appropriate response.
> >
> >We're about to leave to take my daughter to see her
> >grandparents; I'll be working from there, but will have
> >no network access. Expect more updates this evening.
> >
> > -Mark
Regards
Jonathan
Personal Email
jgossage@xxxxxxxx
Business Email
jonathan@xxxxxxxxxxxxxx