You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@uima.apache.org by sc...@apache.org on 2017/01/13 22:39:34 UTC
svn commit: r1778678 -
/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/test/IteratorTest.java
Author: schor
Date: Fri Jan 13 22:39:34 2017
New Revision: 1778678
URL: http://svn.apache.org/viewvc?rev=1778678&view=rev
Log:
[UIMA-5250] fix iterator testing to account for copy on write. Change fs.hashCode() to _id.
Modified:
uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/test/IteratorTest.java
Modified: uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/test/IteratorTest.java
URL: http://svn.apache.org/viewvc/uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/test/IteratorTest.java?rev=1778678&r1=1778677&r2=1778678&view=diff
==============================================================================
--- uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/test/IteratorTest.java (original)
+++ uima/uimaj/branches/experiment-v3-jcas/uimaj-core/src/test/java/org/apache/uima/cas/test/IteratorTest.java Fri Jan 13 22:39:34 2017
@@ -598,7 +598,7 @@ public class IteratorTest extends TestCa
// types must be different
assertFalse(a.getType().getName().equals(b.getType().getName()));
}
- if (a.hashCode() == b.hashCode()) {
+ if (a._id() == b._id()) {
System.err.format("set Iterator: should not have 2 identical elements%n%s%n", it);
assertTrue(false);
}
@@ -611,11 +611,11 @@ public class IteratorTest extends TestCa
// sb.append(String.format("%d %d debug: n=%d, type=%s, start=%d, end-%d%n",
// threadNumber,
// ii++,
-// a.hashCode(),
+// a._id(),
// a.getType().getName(),
// a.getBegin(),
// a.getEnd()));
- v.add(it.get().hashCode());
+ v.add(it.get()._id());
it.moveToNext();
}
// System.out.println("Number of annotations: " + v.size());
@@ -636,7 +636,7 @@ public class IteratorTest extends TestCa
// System.out.println(
// a.getType().getName() + " - " + a.getStart() + " - " +
// a.getEnd());
- assertTrue(it.get().hashCode() == v.get(current));
+ assertTrue(it.get()._id() == v.get(current));
it.moveToPrevious();
--current;
}
@@ -654,13 +654,13 @@ public class IteratorTest extends TestCa
while (current < (v.size() - 1)) {
it.moveToNext();
assertTrue(it.isValid());
- assertTrue(it.get().hashCode() == v.get(current));
+ assertTrue(it.get()._id() == v.get(current));
it.moveToNext();
assertTrue(it.isValid());
- assertTrue(it.get().hashCode() == v.get(current + 1));
+ assertTrue(it.get()._id() == v.get(current + 1));
it.moveToPrevious();
assertTrue(it.isValid());
- assertTrue(it.get().hashCode() == v.get(current));
+ assertTrue(it.get()._id() == v.get(current));
++current;
}
@@ -668,7 +668,7 @@ public class IteratorTest extends TestCa
Iterator<FeatureStructure> javaIt = setIndex.iterator();
current = 0;
while (javaIt.hasNext()) {
- assertEquals(javaIt.next().hashCode(), v.get(current++));
+ assertEquals(javaIt.next()._id(), v.get(current++));
}
}
@@ -814,7 +814,7 @@ public class IteratorTest extends TestCa
assertTrue(sortedIndex.compare(b, a) <= 0);
}
b = a;
- int hc = a.hashCode();
+ int hc = a._id();
v.add(hc);
// if ((hc % 2) == 1) {
Thread.yield();
@@ -847,7 +847,7 @@ public class IteratorTest extends TestCa
// System.out.println(it.get());
// for (int i = v.size() - 1; i >= 0; i--) {
// assertTrue(it.isValid());
- // assertTrue(it.get().hashCode() == v.get(i));
+ // assertTrue(it.get()._id() == v.get(i));
// it.moveToPrevious();
// }
@@ -862,13 +862,13 @@ public class IteratorTest extends TestCa
while (current < (v.size() - 1)) {
it.moveToNext();
assertTrue(it.isValid());
- assertTrue(it.get().hashCode() == v.get(current));
+ assertTrue(it.get()._id() == v.get(current));
it.moveToNext();
assertTrue(it.isValid());
- assertTrue(it.get().hashCode() == v.get(current + 1));
+ assertTrue(it.get()._id() == v.get(current + 1));
it.moveToPrevious();
assertTrue(it.isValid());
- assertTrue(it.get().hashCode() == v.get(current));
+ assertTrue(it.get()._id() == v.get(current));
++current;
}
@@ -876,7 +876,7 @@ public class IteratorTest extends TestCa
Iterator<FeatureStructure> javaIt = sortedIndex.iterator();
current = 0;
while (javaIt.hasNext()) {
- assertEquals(javaIt.next().hashCode(), v.get(current++));
+ assertEquals(javaIt.next()._id(), v.get(current++));
}
}
@@ -905,7 +905,7 @@ public class IteratorTest extends TestCa
// assertTrue(bagIndex.compare(b, a) <= 0);
// }
b = a;
- v.add(a.hashCode());
+ v.add(a._id());
it.moveToNext();
}
assertTrue(bagIndex.size() == v.size());
@@ -917,7 +917,7 @@ public class IteratorTest extends TestCa
// System.out.println("debug");
// }
assertTrue(it.isValid());
- assertTrue(it.get().hashCode() == v.get(i));
+ assertTrue(it.get()._id() == v.get(i));
it.moveToPrevious();
}
@@ -932,16 +932,16 @@ public class IteratorTest extends TestCa
while (current < (v.size() - 1)) {
it.moveToNext();
assertTrue(it.isValid());
- assertTrue(it.get().hashCode() == v.get(current));
+ assertTrue(it.get()._id() == v.get(current));
it.moveToNext();
assertTrue(it.isValid());
- assertTrue(it.get().hashCode() == v.get(current + 1));
+ assertTrue(it.get()._id() == v.get(current + 1));
// if (current == 19) {
// System.out.println("debug");
// }
it.moveToPrevious();
assertTrue(it.isValid());
- assertTrue(it.get().hashCode() == v.get(current));
+ assertTrue(it.get()._id() == v.get(current));
++current;
}
@@ -949,7 +949,7 @@ public class IteratorTest extends TestCa
Iterator<FeatureStructure> javaIt = bagIndex.iterator();
current = 0;
while (javaIt.hasNext()) {
- assertEquals(javaIt.next().hashCode(), v.get(current++));
+ assertEquals(javaIt.next()._id(), v.get(current++));
}
// Test iterator copy.
@@ -1128,7 +1128,23 @@ public class IteratorTest extends TestCa
verifyMoveToFirst(subbagIt, true);
verifyMoveToFirst(subsortedIt, true);
+ // copy on write should prevent any change
+ assertEquals(182, ((LowLevelIterator<FeatureStructure>)setIt).ll_indexSize());
+ assertEquals(200, ((LowLevelIterator<FeatureStructure>)bagIt).ll_indexSize());
+ assertEquals(200, ((LowLevelIterator<AnnotationFS>)sortedIt).ll_indexSize());
+ assertEquals(91, ((LowLevelIterator<FeatureStructure>)subsetIt).ll_indexSize());
+ assertEquals(100, ((LowLevelIterator<FeatureStructure>)subbagIt).ll_indexSize());
+ assertEquals(100, ((LowLevelIterator<AnnotationFS>)subsortedIt).ll_indexSize());
+
ir.removeAllIncludingSubtypes(sentenceType);
+
+ assertEquals(182, ((LowLevelIterator<FeatureStructure>)setIt).ll_indexSize());
+ assertEquals(200, ((LowLevelIterator<FeatureStructure>)bagIt).ll_indexSize());
+ assertEquals(200, ((LowLevelIterator<AnnotationFS>)sortedIt).ll_indexSize());
+ assertEquals(91, ((LowLevelIterator<FeatureStructure>)subsetIt).ll_indexSize());
+ assertEquals(100, ((LowLevelIterator<FeatureStructure>)subbagIt).ll_indexSize());
+ assertEquals(100, ((LowLevelIterator<AnnotationFS>)subsortedIt).ll_indexSize());
+
verifyConcurrantModificationDetected(setIt);
verifyConcurrantModificationDetected(bagIt);
verifyConcurrantModificationDetected(sortedIt);
@@ -1188,10 +1204,13 @@ public class IteratorTest extends TestCa
} catch (Exception e) {
caught = true;
}
- if (it.isValid()) {
- it.isValid(); // debug
- assertTrue(caught); // v3: it becomes invalid
- }
+
+ assertFalse(caught); // because of copy-on-write
+
+// if (it.isValid()) {
+// it.isValid(); // debug
+// assertTrue(caught); // v3: it becomes invalid
+// }
// if (caught != true) {
// System.out.println("Debug");
// }