You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by mi...@apache.org on 2014/11/26 20:47:57 UTC

svn commit: r1641903 - in /lucene/dev/branches/branch_5x: ./ lucene/ lucene/core/ lucene/core/src/test/org/apache/lucene/index/ lucene/test-framework/ lucene/test-framework/src/java/org/apache/lucene/mockfile/ lucene/test-framework/src/java/org/apache/...

Author: mikemccand
Date: Wed Nov 26 19:47:56 2014
New Revision: 1641903

URL: http://svn.apache.org/r1641903
Log:
LUCENE-6078: disable this test if get WindowsFS

Modified:
    lucene/dev/branches/branch_5x/   (props changed)
    lucene/dev/branches/branch_5x/lucene/   (props changed)
    lucene/dev/branches/branch_5x/lucene/core/   (props changed)
    lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/index/TestIndexWriter.java
    lucene/dev/branches/branch_5x/lucene/test-framework/   (props changed)
    lucene/dev/branches/branch_5x/lucene/test-framework/src/java/org/apache/lucene/mockfile/FilterFileSystem.java
    lucene/dev/branches/branch_5x/lucene/test-framework/src/java/org/apache/lucene/util/TestUtil.java

Modified: lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/index/TestIndexWriter.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/index/TestIndexWriter.java?rev=1641903&r1=1641902&r2=1641903&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/index/TestIndexWriter.java (original)
+++ lucene/dev/branches/branch_5x/lucene/core/src/test/org/apache/lucene/index/TestIndexWriter.java Wed Nov 26 19:47:56 2014
@@ -2542,6 +2542,10 @@ public class TestIndexWriter extends Luc
     assumeFalse("this test can't run on Windows", Constants.WINDOWS);
 
     MockDirectoryWrapper dir = newMockDirectory();
+    if (TestUtil.isWindowsFS(dir)) {
+      dir.close();
+      assumeFalse("this test can't run on Windows", true);
+    }
     
     // don't act like windows either, or the test won't simulate the condition
     dir.setEnableVirusScanner(false);

Modified: lucene/dev/branches/branch_5x/lucene/test-framework/src/java/org/apache/lucene/mockfile/FilterFileSystem.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/test-framework/src/java/org/apache/lucene/mockfile/FilterFileSystem.java?rev=1641903&r1=1641902&r2=1641903&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/test-framework/src/java/org/apache/lucene/mockfile/FilterFileSystem.java (original)
+++ lucene/dev/branches/branch_5x/lucene/test-framework/src/java/org/apache/lucene/mockfile/FilterFileSystem.java Wed Nov 26 19:47:56 2014
@@ -181,4 +181,14 @@ public class FilterFileSystem extends Fi
   public WatchService newWatchService() throws IOException {
     return delegate.newWatchService();
   }
+
+  /** Returns the {@code FileSystem} we wrap. */
+  public FileSystem getDelegate() {
+    return delegate;
+  }
+
+  /** Returns the {@code FilterFileSystemProvider} sent to this on init. */
+  public FileSystemProvider getParent() {
+    return parent;
+  }
 }

Modified: lucene/dev/branches/branch_5x/lucene/test-framework/src/java/org/apache/lucene/util/TestUtil.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/branch_5x/lucene/test-framework/src/java/org/apache/lucene/util/TestUtil.java?rev=1641903&r1=1641902&r2=1641903&view=diff
==============================================================================
--- lucene/dev/branches/branch_5x/lucene/test-framework/src/java/org/apache/lucene/util/TestUtil.java (original)
+++ lucene/dev/branches/branch_5x/lucene/test-framework/src/java/org/apache/lucene/util/TestUtil.java Wed Nov 26 19:47:56 2014
@@ -25,6 +25,7 @@ import java.io.PrintStream;
 import java.math.BigDecimal;
 import java.math.BigInteger;
 import java.nio.CharBuffer;
+import java.nio.file.FileSystem;
 import java.nio.file.Files;
 import java.nio.file.Path;
 import java.util.Arrays;
@@ -81,12 +82,16 @@ import org.apache.lucene.index.SegmentRe
 import org.apache.lucene.index.Terms;
 import org.apache.lucene.index.TermsEnum;
 import org.apache.lucene.index.TieredMergePolicy;
+import org.apache.lucene.mockfile.FilterFileSystem;
+import org.apache.lucene.mockfile.WindowsFS;
 import org.apache.lucene.search.FieldDoc;
 import org.apache.lucene.search.FilteredQuery.FilterStrategy;
 import org.apache.lucene.search.FilteredQuery;
 import org.apache.lucene.search.ScoreDoc;
 import org.apache.lucene.search.TopDocs;
 import org.apache.lucene.store.Directory;
+import org.apache.lucene.store.FSDirectory;
+import org.apache.lucene.store.FilterDirectory;
 import org.apache.lucene.store.NoLockFactory;
 import org.junit.Assert;
 import com.carrotsearch.randomizedtesting.generators.RandomInts;
@@ -1142,6 +1147,35 @@ public final class TestUtil {
       return sb.toString();
     }
   }
+
+  /** Returns true if this is an FSDirectory backed by {@link WindowsFS}. */
+  public static boolean isWindowsFS(Directory dir) {
+    // First unwrap directory to see if there is an FSDir:
+    while (true) {
+      if (dir instanceof FSDirectory) {
+        return isWindowsFS(((FSDirectory) dir).getDirectory());
+      } else if (dir instanceof FilterDirectory) {
+        dir = ((FilterDirectory) dir).getDelegate();
+      } else {
+        return false;
+      }
+    }
+  }
+
+  /** Returns true if this Path is backed by {@link WindowsFS}. */
+  public static boolean isWindowsFS(Path path) {
+    FileSystem fs = path.getFileSystem();
+    while (true) {
+      if (fs instanceof FilterFileSystem) {
+        if (((FilterFileSystem) fs).getParent() instanceof WindowsFS) {
+          return true;
+        }
+        fs = ((FilterFileSystem) fs).getDelegate();
+      } else {
+        return false;
+      }
+    }
+  }
   
   /** List of characters that match {@link Character#isWhitespace} */
   public static final char[] WHITESPACE_CHARACTERS = new char[] {