X-Git-Url: https://git.mdrn.pl/pylucene.git/blobdiff_plain/a2e61f0c04805cfcb8706176758d1283c7e3a55c..aaeed5504b982cf3545252ab528713250aa33eed:/lucene-java-3.4.0/lucene/backwards/src/test/org/apache/lucene/index/TestPersistentSnapshotDeletionPolicy.java diff --git a/lucene-java-3.4.0/lucene/backwards/src/test/org/apache/lucene/index/TestPersistentSnapshotDeletionPolicy.java b/lucene-java-3.4.0/lucene/backwards/src/test/org/apache/lucene/index/TestPersistentSnapshotDeletionPolicy.java deleted file mode 100644 index b18acf2..0000000 --- a/lucene-java-3.4.0/lucene/backwards/src/test/org/apache/lucene/index/TestPersistentSnapshotDeletionPolicy.java +++ /dev/null @@ -1,191 +0,0 @@ -package org.apache.lucene.index; - -/** - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with this - * work for additional information regarding copyright ownership. The ASF - * licenses this file to You under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations under - * the License. - */ - -import java.io.IOException; -import java.util.Map; -import java.util.Map.Entry; - -import org.apache.lucene.document.Document; -import org.apache.lucene.index.IndexWriterConfig.OpenMode; -import org.apache.lucene.store.Directory; -import org.apache.lucene.store.LockObtainFailedException; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; - -public class TestPersistentSnapshotDeletionPolicy extends TestSnapshotDeletionPolicy { - - // Keep it a class member so that getDeletionPolicy can use it - private Directory snapshotDir; - - // so we can close it if called by SDP tests - private PersistentSnapshotDeletionPolicy psdp; - - @Before - @Override - public void setUp() throws Exception { - super.setUp(); - snapshotDir = newDirectory(); - } - - @After - @Override - public void tearDown() throws Exception { - if (psdp != null) psdp.close(); - snapshotDir.close(); - super.tearDown(); - } - - @Override - protected SnapshotDeletionPolicy getDeletionPolicy() throws IOException { - if (psdp != null) psdp.close(); - snapshotDir.close(); - snapshotDir = newDirectory(); - return psdp = new PersistentSnapshotDeletionPolicy( - new KeepOnlyLastCommitDeletionPolicy(), snapshotDir, OpenMode.CREATE, - TEST_VERSION_CURRENT); - } - - @Override - protected SnapshotDeletionPolicy getDeletionPolicy(Map snapshots) throws IOException { - SnapshotDeletionPolicy sdp = getDeletionPolicy(); - if (snapshots != null) { - for (Entry e: snapshots.entrySet()) { - sdp.registerSnapshotInfo(e.getKey(), e.getValue(), null); - } - } - return sdp; - } - - @Override - @Test - public void testExistingSnapshots() throws Exception { - int numSnapshots = 3; - Directory dir = newDirectory(); - PersistentSnapshotDeletionPolicy psdp = (PersistentSnapshotDeletionPolicy) getDeletionPolicy(); - IndexWriter writer = new IndexWriter(dir, getConfig(random, psdp)); - prepareIndexAndSnapshots(psdp, writer, numSnapshots, "snapshot"); - writer.close(); - psdp.close(); - - // Re-initialize and verify snapshots were persisted - psdp = new PersistentSnapshotDeletionPolicy( - new KeepOnlyLastCommitDeletionPolicy(), snapshotDir, OpenMode.APPEND, - TEST_VERSION_CURRENT); - new IndexWriter(dir, getConfig(random, psdp)).close(); - - assertSnapshotExists(dir, psdp, numSnapshots); - assertEquals(numSnapshots, psdp.getSnapshots().size()); - psdp.close(); - dir.close(); - } - - @Test(expected=IllegalArgumentException.class) - public void testIllegalSnapshotId() throws Exception { - getDeletionPolicy().snapshot("$SNAPSHOTS_DOC$"); - } - - @Test - public void testInvalidSnapshotInfos() throws Exception { - // Add the correct number of documents (1), but without snapshot information - IndexWriter writer = new IndexWriter(snapshotDir, getConfig(random, null)); - writer.addDocument(new Document()); - writer.close(); - try { - new PersistentSnapshotDeletionPolicy( - new KeepOnlyLastCommitDeletionPolicy(), snapshotDir, OpenMode.APPEND, - TEST_VERSION_CURRENT); - fail("should not have succeeded to read from an invalid Directory"); - } catch (IllegalStateException e) { - } - } - - @Test - public void testNoSnapshotInfos() throws Exception { - // Initialize an empty index in snapshotDir - PSDP should initialize successfully. - new IndexWriter(snapshotDir, getConfig(random, null)).close(); - new PersistentSnapshotDeletionPolicy( - new KeepOnlyLastCommitDeletionPolicy(), snapshotDir, OpenMode.APPEND, - TEST_VERSION_CURRENT).close(); - } - - @Test(expected=IllegalStateException.class) - public void testTooManySnapshotInfos() throws Exception { - // Write two documents to the snapshots directory - illegal. - IndexWriter writer = new IndexWriter(snapshotDir, getConfig(random, null)); - writer.addDocument(new Document()); - writer.addDocument(new Document()); - writer.close(); - - new PersistentSnapshotDeletionPolicy( - new KeepOnlyLastCommitDeletionPolicy(), snapshotDir, OpenMode.APPEND, - TEST_VERSION_CURRENT).close(); - fail("should not have succeeded to open an invalid directory"); - } - - @Test - public void testSnapshotRelease() throws Exception { - Directory dir = newDirectory(); - PersistentSnapshotDeletionPolicy psdp = (PersistentSnapshotDeletionPolicy) getDeletionPolicy(); - IndexWriter writer = new IndexWriter(dir, getConfig(random, psdp)); - prepareIndexAndSnapshots(psdp, writer, 1, "snapshot"); - writer.close(); - - psdp.release("snapshot0"); - psdp.close(); - - psdp = new PersistentSnapshotDeletionPolicy( - new KeepOnlyLastCommitDeletionPolicy(), snapshotDir, OpenMode.APPEND, - TEST_VERSION_CURRENT); - assertEquals("Should have no snapshots !", 0, psdp.getSnapshots().size()); - psdp.close(); - dir.close(); - } - - @Test - public void testStaticRead() throws Exception { - // While PSDP is open, it keeps a lock on the snapshots directory and thus - // prevents reading the snapshots information. This test checks that the - // static read method works. - int numSnapshots = 1; - Directory dir = newDirectory(); - PersistentSnapshotDeletionPolicy psdp = (PersistentSnapshotDeletionPolicy) getDeletionPolicy(); - IndexWriter writer = new IndexWriter(dir, getConfig(random, psdp)); - prepareIndexAndSnapshots(psdp, writer, numSnapshots, "snapshot"); - writer.close(); - dir.close(); - - try { - // This should fail, since the snapshots directory is locked - we didn't close it ! - new PersistentSnapshotDeletionPolicy( - new KeepOnlyLastCommitDeletionPolicy(), snapshotDir, OpenMode.APPEND, - TEST_VERSION_CURRENT); - fail("should not have reached here - the snapshots directory should be locked!"); - } catch (LockObtainFailedException e) { - // expected - } finally { - psdp.close(); - } - - // Reading the snapshots info should succeed though - Map snapshots = PersistentSnapshotDeletionPolicy.readSnapshotsInfo(snapshotDir); - assertEquals("expected " + numSnapshots + " snapshots, got " + snapshots.size(), numSnapshots, snapshots.size()); - } - -}