Skip to main content

[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



Back to the top