You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by rm...@apache.org on 2010/08/25 13:55:52 UTC
svn commit: r989030 - in /lucene/dev/trunk/lucene/src/test/org/apache/lucene:
index/TestIndexWriter.java index/TestTermVectorsReader.java
index/TestTransactionRollback.java util/LuceneTestCase.java
util/LuceneTestCaseJ4.java
Author: rmuir
Date: Wed Aug 25 11:55:51 2010
New Revision: 989030
URL: http://svn.apache.org/viewvc?rev=989030&view=rev
Log:
LUCENE-2598: fixes for tests with NIOFS/MMap, add random option (but RAMDirectory is still the default)
Modified:
lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriter.java
lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestTermVectorsReader.java
lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestTransactionRollback.java
lucene/dev/trunk/lucene/src/test/org/apache/lucene/util/LuceneTestCase.java
lucene/dev/trunk/lucene/src/test/org/apache/lucene/util/LuceneTestCaseJ4.java
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriter.java?rev=989030&r1=989029&r2=989030&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriter.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestIndexWriter.java Wed Aug 25 11:55:51 2010
@@ -4377,10 +4377,8 @@ public class TestIndexWriter extends Luc
@Override
public void run() {
- Directory dir;
- try {
- dir = newDirectory(random);
- } catch (IOException e) { throw new RuntimeException(e); }
+ // LUCENE-2239: won't work with NIOFS/MMAP
+ Directory dir = new MockDirectoryWrapper(new RAMDirectory());
IndexWriter w = null;
while(!finish) {
try {
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestTermVectorsReader.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestTermVectorsReader.java?rev=989030&r1=989029&r2=989030&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestTermVectorsReader.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestTermVectorsReader.java Wed Aug 25 11:55:51 2010
@@ -394,6 +394,8 @@ public class TestTermVectorsReader exten
fail();
} catch (IOException e) {
// expected exception
+ } catch (IllegalArgumentException e) {
+ // mmapdir will give us this from java.nio.Buffer.position()
} finally {
reader.close();
}
@@ -404,6 +406,8 @@ public class TestTermVectorsReader exten
fail();
} catch (IOException e) {
// expected exception
+ } catch (IllegalArgumentException e) {
+ // mmapdir will give us this from java.nio.Buffer.position()
} finally {
reader.close();
}
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestTransactionRollback.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestTransactionRollback.java?rev=989030&r1=989029&r2=989030&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestTransactionRollback.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/index/TestTransactionRollback.java Wed Aug 25 11:55:51 2010
@@ -126,8 +126,8 @@ public class TestTransactionRollback ext
@Override
protected void setUp() throws Exception {
super.setUp();
+ random = newRandom();
dir = newDirectory(random);
- random = newRandom();
//Build index, of records 1 to 100, committing after each batch of 10
IndexDeletionPolicy sdp=new KeepAllDeletionPolicy();
IndexWriter w=new IndexWriter(dir, newIndexWriterConfig(random, TEST_VERSION_CURRENT, new MockAnalyzer()).setIndexDeletionPolicy(sdp));
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/util/LuceneTestCase.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/util/LuceneTestCase.java?rev=989030&r1=989029&r2=989030&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/util/LuceneTestCase.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/util/LuceneTestCase.java Wed Aug 25 11:55:51 2010
@@ -335,7 +335,7 @@ public abstract class LuceneTestCase ext
public MockDirectoryWrapper newDirectory(Random r) throws IOException {
StackTraceElement[] stack = new Exception().getStackTrace();
- Directory impl = LuceneTestCaseJ4.newDirectoryImpl(TEST_DIRECTORY);
+ Directory impl = LuceneTestCaseJ4.newDirectoryImpl(r, TEST_DIRECTORY);
MockDirectoryWrapper dir = new MockDirectoryWrapper(impl);
stores.put(dir, stack);
return dir;
@@ -343,7 +343,7 @@ public abstract class LuceneTestCase ext
public MockDirectoryWrapper newDirectory(Random r, Directory d) throws IOException {
StackTraceElement[] stack = new Exception().getStackTrace();
- Directory impl = LuceneTestCaseJ4.newDirectoryImpl(TEST_DIRECTORY);
+ Directory impl = LuceneTestCaseJ4.newDirectoryImpl(r, TEST_DIRECTORY);
for (String file : d.listAll()) {
d.copy(impl, file, file);
}
Modified: lucene/dev/trunk/lucene/src/test/org/apache/lucene/util/LuceneTestCaseJ4.java
URL: http://svn.apache.org/viewvc/lucene/dev/trunk/lucene/src/test/org/apache/lucene/util/LuceneTestCaseJ4.java?rev=989030&r1=989029&r2=989030&view=diff
==============================================================================
--- lucene/dev/trunk/lucene/src/test/org/apache/lucene/util/LuceneTestCaseJ4.java (original)
+++ lucene/dev/trunk/lucene/src/test/org/apache/lucene/util/LuceneTestCaseJ4.java Wed Aug 25 11:55:51 2010
@@ -27,6 +27,7 @@ import org.apache.lucene.search.BooleanQ
import org.apache.lucene.search.FieldCache;
import org.apache.lucene.search.FieldCache.CacheEntry;
import org.apache.lucene.store.Directory;
+import org.apache.lucene.store.MMapDirectory;
import org.apache.lucene.store.MockDirectoryWrapper;
import org.apache.lucene.store.RAMDirectory;
import org.apache.lucene.util.FieldCacheSanityChecker.Insanity;
@@ -72,6 +73,7 @@ import java.util.Collections;
import java.util.regex.Pattern;
import java.util.regex.Matcher;
import java.lang.reflect.Constructor;
+import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import static org.junit.Assert.assertEquals;
@@ -588,7 +590,7 @@ public class LuceneTestCaseJ4 {
public static MockDirectoryWrapper newDirectory(Random r) throws IOException {
StackTraceElement[] stack = new Exception().getStackTrace();
- Directory impl = newDirectoryImpl(TEST_DIRECTORY);
+ Directory impl = newDirectoryImpl(r, TEST_DIRECTORY);
MockDirectoryWrapper dir = new MockDirectoryWrapper(impl);
stores.put(dir, stack);
return dir;
@@ -596,7 +598,7 @@ public class LuceneTestCaseJ4 {
public static MockDirectoryWrapper newDirectory(Random r, Directory d) throws IOException {
StackTraceElement[] stack = new Exception().getStackTrace();
- Directory impl = newDirectoryImpl(TEST_DIRECTORY);
+ Directory impl = newDirectoryImpl(r, TEST_DIRECTORY);
for (String file : d.listAll()) {
d.copy(impl, file, file);
}
@@ -628,7 +630,24 @@ public class LuceneTestCaseJ4 {
}
}
- static Directory newDirectoryImpl(String clazzName) {
+ private static String CORE_DIRECTORIES[] = {
+ "RAMDirectory",
+ "SimpleFSDirectory",
+ "NIOFSDirectory",
+ "MMapDirectory"
+ };
+
+ public static String randomDirectory(Random random) {
+ if (random.nextInt(10) == 0) {
+ return CORE_DIRECTORIES[random.nextInt(CORE_DIRECTORIES.length)];
+ } else {
+ return "RAMDirectory";
+ }
+ }
+
+ static Directory newDirectoryImpl(Random random, String clazzName) {
+ if (clazzName.equals("random"))
+ clazzName = randomDirectory(random);
if (clazzName.indexOf(".") == -1) // if not fully qualified, assume .store
clazzName = "org.apache.lucene.store." + clazzName;
try {
@@ -642,7 +661,11 @@ public class LuceneTestCaseJ4 {
tmpFile.mkdir();
try {
Constructor<? extends Directory> ctor = clazz.getConstructor(File.class);
- return ctor.newInstance(tmpFile);
+ Directory d = ctor.newInstance(tmpFile);
+ // try not to enable this hack unless we must.
+ if (d instanceof MMapDirectory && Constants.WINDOWS && MMapDirectory.UNMAP_SUPPORTED)
+ ((MMapDirectory)d).setUseUnmap(true);
+ return d;
} catch (Exception e2) {
// try .open(File)
Method method = clazz.getMethod("open", new Class[] { File.class });