From 5e70c629a464254994a7122899cd8791e4bab228 Mon Sep 17 00:00:00 2001 From: "Chris M. Hostetter" Date: Wed, 28 Aug 2013 20:18:51 +0000 Subject: [PATCH] SOLR-5118: more testing of edge case and some error conditions git-svn-id: https://svn.apache.org/repos/asf/lucene/dev/trunk@1518352 13f79535-47bb-0310-9956-ffa450edef68 --- .../conf/bad-solrconfig-warmer-no-reopen.xml | 27 ++++++++++++++ .../conf/solrconfig-logmergepolicy.xml | 37 +++++++++++++++++++ ...y.xml => solrconfig-tieredmergepolicy.xml} | 0 .../org/apache/solr/core/TestBadConfig.java | 4 ++ .../solr/core/TestMergePolicyConfig.java | 36 +++++++++++++++++- .../solr/update/SolrIndexConfigTest.java | 2 +- 6 files changed, 104 insertions(+), 2 deletions(-) create mode 100644 solr/core/src/test-files/solr/collection1/conf/bad-solrconfig-warmer-no-reopen.xml create mode 100644 solr/core/src/test-files/solr/collection1/conf/solrconfig-logmergepolicy.xml rename solr/core/src/test-files/solr/collection1/conf/{solrconfig-mergepolicy.xml => solrconfig-tieredmergepolicy.xml} (100%) diff --git a/solr/core/src/test-files/solr/collection1/conf/bad-solrconfig-warmer-no-reopen.xml b/solr/core/src/test-files/solr/collection1/conf/bad-solrconfig-warmer-no-reopen.xml new file mode 100644 index 00000000000..cba30ecf745 --- /dev/null +++ b/solr/core/src/test-files/solr/collection1/conf/bad-solrconfig-warmer-no-reopen.xml @@ -0,0 +1,27 @@ + + + + + + + ${tests.luceneMatchVersion:LUCENE_CURRENT} + + + false + + diff --git a/solr/core/src/test-files/solr/collection1/conf/solrconfig-logmergepolicy.xml b/solr/core/src/test-files/solr/collection1/conf/solrconfig-logmergepolicy.xml new file mode 100644 index 00000000000..371bfb5638d --- /dev/null +++ b/solr/core/src/test-files/solr/collection1/conf/solrconfig-logmergepolicy.xml @@ -0,0 +1,37 @@ + + + + + + ${tests.luceneMatchVersion:LUCENE_CURRENT} + + + + + -1 + -1 + -1 + + 11 + 456 + + + + + + diff --git a/solr/core/src/test-files/solr/collection1/conf/solrconfig-mergepolicy.xml b/solr/core/src/test-files/solr/collection1/conf/solrconfig-tieredmergepolicy.xml similarity index 100% rename from solr/core/src/test-files/solr/collection1/conf/solrconfig-mergepolicy.xml rename to solr/core/src/test-files/solr/collection1/conf/solrconfig-tieredmergepolicy.xml diff --git a/solr/core/src/test/org/apache/solr/core/TestBadConfig.java b/solr/core/src/test/org/apache/solr/core/TestBadConfig.java index 621dba6e49a..42f7d629251 100644 --- a/solr/core/src/test/org/apache/solr/core/TestBadConfig.java +++ b/solr/core/src/test/org/apache/solr/core/TestBadConfig.java @@ -27,6 +27,10 @@ public class TestBadConfig extends AbstractBadConfigTestBase { assertConfigs("bad_solrconfig.xml","schema.xml","unset.sys.property"); } + public void testSegmentMergerWithoutReopen() throws Exception { + assertConfigs("bad-solrconfig-warmer-no-reopen.xml", "schema12.xml", + "mergedSegmentWarmer"); + } public void testMultipleDirectoryFactories() throws Exception { assertConfigs("bad-solrconfig-multiple-dirfactory.xml", "schema12.xml", "directoryFactory"); diff --git a/solr/core/src/test/org/apache/solr/core/TestMergePolicyConfig.java b/solr/core/src/test/org/apache/solr/core/TestMergePolicyConfig.java index bb6525f83f4..85c93ff872f 100644 --- a/solr/core/src/test/org/apache/solr/core/TestMergePolicyConfig.java +++ b/solr/core/src/test/org/apache/solr/core/TestMergePolicyConfig.java @@ -27,6 +27,9 @@ import org.apache.lucene.index.SegmentInfo; import org.apache.lucene.index.IndexWriterConfig; import org.apache.lucene.index.MergePolicy; import org.apache.lucene.index.TieredMergePolicy; +import org.apache.lucene.index.LogMergePolicy; +import org.apache.lucene.index.LogByteSizeMergePolicy; +import org.apache.lucene.index.LogDocMergePolicy; import org.apache.lucene.index.ConcurrentMergeScheduler; import org.apache.solr.core.SolrCore; import org.apache.solr.util.RefCounted; @@ -82,7 +85,7 @@ public class TestMergePolicyConfig extends SolrTestCaseJ4 { final boolean expectCFS = Boolean.parseBoolean(System.getProperty("useCompoundFile")); - initCore("solrconfig-mergepolicy.xml","schema-minimal.xml"); + initCore("solrconfig-tieredmergepolicy.xml","schema-minimal.xml"); IndexWriterConfig iwc = solrConfig.indexConfig.toIndexWriterConfig(h.getCore().getLatestSchema()); assertEquals(expectCFS, iwc.getUseCompoundFile()); @@ -116,6 +119,37 @@ public class TestMergePolicyConfig extends SolrTestCaseJ4 { assertCompoundSegments(h.getCore(), false); } + public void testLogMergePolicyConfig() throws Exception { + + final Class mpClass = random().nextBoolean() + ? LogByteSizeMergePolicy.class : LogDocMergePolicy.class; + + System.setProperty("solr.test.log.merge.policy", mpClass.getName()); + + initCore("solrconfig-logmergepolicy.xml","schema-minimal.xml"); + IndexWriterConfig iwc = solrConfig.indexConfig.toIndexWriterConfig(h.getCore().getLatestSchema()); + + // verify some props set to -1 get lucene internal defaults + assertEquals(-1, solrConfig.indexConfig.maxBufferedDocs); + assertEquals(IndexWriterConfig.DISABLE_AUTO_FLUSH, + iwc.getMaxBufferedDocs()); + assertEquals(-1, solrConfig.indexConfig.maxIndexingThreads); + assertEquals(IndexWriterConfig.DEFAULT_MAX_THREAD_STATES, + iwc.getMaxThreadStates()); + assertEquals(-1, solrConfig.indexConfig.ramBufferSizeMB, 0.0D); + assertEquals(IndexWriterConfig.DEFAULT_RAM_BUFFER_SIZE_MB, + iwc.getRAMBufferSizeMB(), 0.0D); + + + LogMergePolicy logMP = assertAndCast(mpClass, iwc.getMergePolicy()); + + // set by legacy setting + assertEquals(11, logMP.getMergeFactor()); + // set by legacy setting + assertEquals(456, logMP.getMaxMergeDocs()); + + } + /** * Given a Type and an object asserts that the object is non-null and an * instance of the specified Type. The object is then cast to that type and diff --git a/solr/core/src/test/org/apache/solr/update/SolrIndexConfigTest.java b/solr/core/src/test/org/apache/solr/update/SolrIndexConfigTest.java index c1729bd301d..fef45302726 100644 --- a/solr/core/src/test/org/apache/solr/update/SolrIndexConfigTest.java +++ b/solr/core/src/test/org/apache/solr/update/SolrIndexConfigTest.java @@ -54,7 +54,7 @@ public class SolrIndexConfigTest extends SolrTestCaseJ4 { @Test public void testTieredMPSolrIndexConfigCreation() throws Exception { SolrConfig solrConfig = new SolrConfig("solr" + File.separator - + "collection1", "solrconfig-mergepolicy.xml", null); + + "collection1", "solrconfig-tieredmergepolicy.xml", null); SolrIndexConfig solrIndexConfig = new SolrIndexConfig(solrConfig, null, null); assertNotNull(solrIndexConfig);