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 2014/11/13 16:12:49 UTC
svn commit: r1639359 -
/uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/cas/impl/SerDesTest6.java
Author: schor
Date: Thu Nov 13 15:12:48 2014
New Revision: 1639359
URL: http://svn.apache.org/r1639359
Log:
[UIMA-4102] fix tests to retry if randomly missing needed feature or array length was randomly assigned to be 0.
Modified:
uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/cas/impl/SerDesTest6.java
Modified: uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/cas/impl/SerDesTest6.java
URL: http://svn.apache.org/viewvc/uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/cas/impl/SerDesTest6.java?rev=1639359&r1=1639358&r2=1639359&view=diff
==============================================================================
--- uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/cas/impl/SerDesTest6.java (original)
+++ uima/uimaj/trunk/uimaj-core/src/test/java/org/apache/uima/cas/impl/SerDesTest6.java Thu Nov 13 15:12:48 2014
@@ -89,7 +89,8 @@ public class SerDesTest6 extends TestCas
private CASImpl casSrc;
private TTypeSystem[] alternateTTypeSystems;
- private final Random random;
+ private Random random;
+ private long seed;
public class CASTestSetup implements AnnotatorInitializer {
@@ -223,12 +224,20 @@ public class SerDesTest6 extends TestCas
// Constructor
public SerDesTest6() {
+ setRandom();
+ System.out.format("SerDesTest6 RandomSeed: %,d%n", seed);
+ }
+
+ private void setRandom() {
Random sg = new Random();
- long seed = sg.nextLong();
+ seed = sg.nextLong();
// seed = 2934127305128325787L;
random = new Random(seed);
- System.out.format("RandomSeed: %,d%n", seed);
- }
+ }
+
+ private void setRandom(long seed) {
+ random = new Random(seed);
+ }
public TTypeSystem setupTTypeSystem(TypeSystems kind) {
if (kind == EqTwoTypes) {
@@ -412,32 +421,55 @@ public class SerDesTest6 extends TestCas
}
public void testDeltaWithDblArrayMod() throws IOException {
- TTypeSystem m = getTT(EqTwoTypes);
- remoteCas = setupCas(m);
- loadCas(casSrc, mSrc);
- ReuseInfo[] ri = serializeDeserialize(casSrc, remoteCas, null, null);
- MarkerImpl marker = (MarkerImpl) remoteCas.createMarker();
- lfs = getIndexedFSs(remoteCas, m);
- FeatureStructure fs = lfs.get(10); /* has double array length 2 */
- DoubleArrayFS d = (DoubleArrayFS) maybeGetFeatureKind(fs, m, "Adouble");
- d.set(0, 12.34D);
- verifyDelta(marker, ri);
+ for (int i = 0; i < 100; i++) {
+ TTypeSystem m = getTT(EqTwoTypes);
+ remoteCas = setupCas(m);
+ loadCas(casSrc, mSrc);
+ ReuseInfo[] ri = serializeDeserialize(casSrc, remoteCas, null, null);
+ MarkerImpl marker = (MarkerImpl) remoteCas.createMarker();
+ lfs = getIndexedFSs(remoteCas, m);
+ FeatureStructure fs = lfs.get(10); /* has double array length 2 */
+ DoubleArrayFS d = (DoubleArrayFS) maybeGetFeatureKind(fs, m, "Adouble");
+ if (d == null) { // could happen because features are randomly omitted
+ System.out.println(" Adouble feature omitted, retrying");
+ } else if (d.size() == 0) {
+ System.out.println(" Adouble feature array has 0 length, retrying");
+ } else {
+ d.set(0, 12.34D);
+ verifyDelta(marker, ri);
+ break;
+ }
+ setRandom();
+ setUp();
+ System.out.println(" testDelta w/ dbl array mod random = " + seed + ", i = " + i);
+ }
}
public void testDeltaWithByteArrayMod() throws IOException {
- TTypeSystem m = getTT(EqTwoTypes);
- remoteCas = setupCas(m);
- loadCas(casSrc, mSrc);
- ReuseInfo[] ri = serializeDeserialize(casSrc, remoteCas, null, null);
- MarkerImpl marker = (MarkerImpl) remoteCas.createMarker();
-
- lfs = getIndexedFSs(remoteCas, m); // gets FSs below the line
-
- FeatureStructure fs = lfs.get(10);
- ByteArrayFS sfs = (ByteArrayFS) maybeGetFeatureKind(fs, m, "Abyte");
- sfs.set(0, (byte)21);
-
- verifyDelta(marker, ri);
+ for (int i = 0; i < 10; i++) {
+ TTypeSystem m = getTT(EqTwoTypes);
+ remoteCas = setupCas(m);
+ loadCas(casSrc, mSrc);
+ ReuseInfo[] ri = serializeDeserialize(casSrc, remoteCas, null, null);
+ MarkerImpl marker = (MarkerImpl) remoteCas.createMarker();
+
+ lfs = getIndexedFSs(remoteCas, m); // gets FSs below the line
+
+ FeatureStructure fs = lfs.get(10);
+ ByteArrayFS sfs = (ByteArrayFS) maybeGetFeatureKind(fs, m, "Abyte");
+ if (sfs == null) { // could happen because features are randomly omitted
+ System.out.println(" Abyte feature omitted, retrying");
+ } else if (sfs.size() == 0) {
+ System.out.println(" Abyte feature array has 0 length, retrying");
+ } else {
+ sfs.set(0, (byte)21);
+ verifyDelta(marker, ri);
+ break;
+ }
+ setRandom(); // retry with different random number
+ setUp();
+ System.out.println(" testDelta w byte array mod retrying, i = " + i);
+ }
}
public void testDeltaWithStrArrayMod() throws IOException {