Yonik, thanks for hammering away at these tests! Curious, were you planning on merging all your test improvements to 3.x? If you dont have the time, let me know and I could help.
On Fri, Oct 15, 2010 at 12:08 PM, <[email protected]> wrote: > Author: yonik > Date: Fri Oct 15 16:08:01 2010 > New Revision: 1022989 > > URL: http://svn.apache.org/viewvc?rev=1022989&view=rev > Log: > tests: simplify test, use minimal config > > Modified: > > lucene/dev/trunk/solr/src/test/org/apache/solr/core/AlternateDirectoryTest.java > > lucene/dev/trunk/solr/src/test/test-files/solr/conf/solrconfig-altdirectory.xml > > Modified: > lucene/dev/trunk/solr/src/test/org/apache/solr/core/AlternateDirectoryTest.java > URL: > http://svn.apache.org/viewvc/lucene/dev/trunk/solr/src/test/org/apache/solr/core/AlternateDirectoryTest.java?rev=1022989&r1=1022988&r2=1022989&view=diff > ============================================================================== > --- > lucene/dev/trunk/solr/src/test/org/apache/solr/core/AlternateDirectoryTest.java > (original) > +++ > lucene/dev/trunk/solr/src/test/org/apache/solr/core/AlternateDirectoryTest.java > Fri Oct 15 16:08:01 2010 > @@ -19,16 +19,14 @@ package org.apache.solr.core; > import java.io.File; > import java.io.IOException; > import org.apache.lucene.store.FSDirectory; > -import org.apache.solr.util.AbstractSolrTestCase; > - > -public class AlternateDirectoryTest extends AbstractSolrTestCase { > - > - public String getSchemaFile() { > - return "schema.xml"; > - } > - > - public String getSolrConfigFile() { > - return "solrconfig-altdirectory.xml"; > +import org.apache.solr.SolrTestCaseJ4; > +import org.junit.BeforeClass; > +import org.junit.Test; > + > +public class AlternateDirectoryTest extends SolrTestCaseJ4 { > + �...@beforeclass > + public static void beforeClass() throws Exception { > + initCore("solrconfig-altdirectory.xml", "schema.xml"); > } > > /** > @@ -36,12 +34,14 @@ public class AlternateDirectoryTest exte > * > * @throws Exception > */ > + �...@test > public void testAltDirectoryUsed() throws Exception { > + assertQ(req("q","*:*","qt","standard")); > assertTrue(TestFSDirectoryFactory.openCalled); > } > > static public class TestFSDirectoryFactory extends DirectoryFactory { > - public static boolean openCalled = false; > + public static volatile boolean openCalled = false; > > public FSDirectory open(String path) throws IOException { > openCalled = true; > > Modified: > lucene/dev/trunk/solr/src/test/test-files/solr/conf/solrconfig-altdirectory.xml > URL: > http://svn.apache.org/viewvc/lucene/dev/trunk/solr/src/test/test-files/solr/conf/solrconfig-altdirectory.xml?rev=1022989&r1=1022988&r2=1022989&view=diff > ============================================================================== > --- > lucene/dev/trunk/solr/src/test/test-files/solr/conf/solrconfig-altdirectory.xml > (original) > +++ > lucene/dev/trunk/solr/src/test/test-files/solr/conf/solrconfig-altdirectory.xml > Fri Oct 15 16:08:01 2010 > @@ -23,382 +23,6 @@ > --> > > <config> > - > - <jmx /> > - > - <!-- Used to specify an alternate directory to hold all index data. > - It defaults to "index" if not present, and should probably > - not be changed if replication is in use. --> > - <dataDir>${solr.data.dir:./solr/data}</dataDir> > - > - <indexDefaults> > - <!-- Values here affect all index writers and act as a default > - unless overridden. --> > - <!-- Values here affect all index writers and act as a default unless > overridden. --> > - <useCompoundFile>false</useCompoundFile> > - <mergeFactor>10</mergeFactor> > - <!-- If both ramBufferSizeMB and maxBufferedDocs is set, then Lucene > will flush based on whichever limit is hit first. > - --> > - <!--<maxBufferedDocs>1000</maxBufferedDocs>--> > - <!-- Tell Lucene when to flush documents to disk. > - Giving Lucene more memory for indexing means faster indexing at the cost > of more RAM > - > - If both ramBufferSizeMB and maxBufferedDocs is set, then Lucene will > flush based on whichever limit is hit first. > - > - --> > - <ramBufferSizeMB>32</ramBufferSizeMB> > - <maxMergeDocs>2147483647</maxMergeDocs> > - <maxFieldLength>10000</maxFieldLength> > - <writeLockTimeout>1000</writeLockTimeout> > - <commitLockTimeout>10000</commitLockTimeout> > - > - <!-- > - Expert: > - The Merge Policy in Lucene controls how merging is handled by Lucene. > The default in 2.3 is the LogByteSizeMergePolicy, previous > - versions used LogDocMergePolicy. > - > - LogByteSizeMergePolicy chooses segments to merge based on their size. > The Lucene 2.2 default, LogDocMergePolicy chose when > - to merge based on number of documents > - > - Other implementations of MergePolicy must have a no-argument constructor > - --> > - <mergePolicy class="org.apache.lucene.index.LogByteSizeMergePolicy"/> > - > - <!-- > - Expert: > - The Merge Scheduler in Lucene controls how merges are performed. The > ConcurrentMergeScheduler (Lucene 2.3 default) > - can perform merges in the background using separate threads. The > SerialMergeScheduler (Lucene 2.2 default) does not. > - --> > - <mergeScheduler > class="org.apache.lucene.index.ConcurrentMergeScheduler"/> > - <!-- these are global... can't currently override per index --> > - <writeLockTimeout>1000</writeLockTimeout> > - <commitLockTimeout>10000</commitLockTimeout> > - > - <lockType>single</lockType> > - </indexDefaults> > - > - <mainIndex> > - <!-- lucene options specific to the main on-disk lucene index --> > - <useCompoundFile>false</useCompoundFile> > - <mergeFactor>10</mergeFactor> > - <ramBufferSizeMB>32</ramBufferSizeMB> > - <maxMergeDocs>2147483647</maxMergeDocs> > - <maxFieldLength>10000</maxFieldLength> > - > - <unlockOnStartup>true</unlockOnStartup> > - </mainIndex> > - > - <updateHandler class="solr.DirectUpdateHandler2"> > - > - <!-- autocommit pending docs if certain criteria are met > - <autoCommit> > - <maxDocs>10000</maxDocs> > - <maxTime>3600000</maxTime> > - </autoCommit> > - --> > - <!-- represents a lower bound on the frequency that commits may > - occur (in seconds). NOTE: not yet implemented > - > - <commitIntervalLowerBound>0</commitIntervalLowerBound> > - --> > - > - <!-- The RunExecutableListener executes an external command. > - exe - the name of the executable to run > - dir - dir to use as the current working directory. default="." > - wait - the calling thread waits until the executable returns. > default="true" > - args - the arguments to pass to the program. default=nothing > - env - environment variables to set. default=nothing > - --> > - <!-- A postCommit event is fired after every commit > - <listener event="postCommit" class="solr.RunExecutableListener"> > - <str name="exe">/var/opt/resin3/__PORT__/scripts/solr/snapshooter</str> > - <str name="dir">/var/opt/resin3/__PORT__</str> > - <bool name="wait">true</bool> > - <arr name="args"> <str>arg1</str> <str>arg2</str> </arr> > - <arr name="env"> <str>MYVAR=val1</str> </arr> > - </listener> > - --> > - > - > - </updateHandler> > - > - <directoryFactory name="DirectoryFactory" > class="org.apache.solr.core.AlternateDirectoryTest$TestFSDirectoryFactory"> > - <!-- Parameters as required by the implementation --> > - </directoryFactory> > - > - > - <indexReaderFactory name="IndexReaderFactory" > class="org.apache.solr.core.AlternateIndexReaderTest$TestIndexReaderFactory"> > - <!-- Parameters as required by the implementation --> > - </indexReaderFactory > > - > - <query> > - <!-- Maximum number of clauses in a boolean query... can affect > - range or wildcard queries that expand to big boolean > - queries. An exception is thrown if exceeded. > - --> > - <maxBooleanClauses>1024</maxBooleanClauses> > - > - > - <!-- Cache specification for Filters or DocSets - unordered set of *all* > documents > - that match a particular query. > - --> > - <filterCache > - class="solr.search.LRUCache" > - size="512" > - initialSize="512" > - autowarmCount="256"/> > - > - <queryResultCache > - class="solr.search.LRUCache" > - size="512" > - initialSize="512" > - autowarmCount="1024"/> > - > - <documentCache > - class="solr.search.LRUCache" > - size="512" > - initialSize="512" > - autowarmCount="0"/> > - > - <!-- If true, stored fields that are not requested will be loaded lazily. > - --> > - <enableLazyFieldLoading>true</enableLazyFieldLoading> > - > - <!-- > - > - <cache name="myUserCache" > - class="solr.search.LRUCache" > - size="4096" > - initialSize="1024" > - autowarmCount="1024" > - regenerator="MyRegenerator" > - /> > - --> > - > - > - <useFilterForSortedQuery>true</useFilterForSortedQuery> > - > - <queryResultWindowSize>10</queryResultWindowSize> > - > - <!-- set maxSize artificially low to exercise both types of sets --> > - <HashDocSet maxSize="3" loadFactor="0.75"/> > - > - > - <!-- boolToFilterOptimizer converts boolean clauses with zero boost > - into cached filters if the number of docs selected by the clause > exceeds > - the threshold (represented as a fraction of the total index) > - --> > - <boolTofilterOptimizer enabled="false" cacheSize="32" threshold=".05"/> > - > - > - <!-- a newSearcher event is fired whenever a new searcher is being > prepared > - and there is a current searcher handling requests (aka registered). > --> > - <!-- QuerySenderListener takes an array of NamedList and executes a > - local query request for each NamedList in sequence. --> > - <!-- > - <listener event="newSearcher" class="solr.QuerySenderListener"> > - <arr name="queries"> > - <lst> <str name="q">solr</str> <str name="start">0</str> <str > name="rows">10</str> </lst> > - <lst> <str name="q">rocks</str> <str name="start">0</str> <str > name="rows">10</str> </lst> > - </arr> > - </listener> > - --> > - > - <!-- a firstSearcher event is fired whenever a new searcher is being > - prepared but there is no current registered searcher to handle > - requests or to gain prewarming data from. --> > - <!-- > - <listener event="firstSearcher" class="solr.QuerySenderListener"> > - <arr name="queries"> > - <lst> <str name="q">fast_warm</str> <str name="start">0</str> <str > name="rows">10</str> </lst> > - </arr> > - </listener> > - --> > - > - > - </query> > - > - > - <!-- An alternate set representation that uses an integer hash to store > filters (sets of docids). > - If the set cardinality <= maxSize elements, then HashDocSet will be > used instead of the bitset > - based HashBitset. --> > - > - <!-- requestHandler plugins... incoming queries will be dispatched to the > - correct handler based on the qt (query type) param matching the > - name of registered handlers. > - The "standard" request handler is the default and will be used if qt > - is not specified in the request. > - --> > - <requestHandler name="standard" class="solr.StandardRequestHandler"> > - <bool name="httpCaching">true</bool> > - </requestHandler> > - <requestHandler name="dismaxOldStyleDefaults" > - class="solr.DisMaxRequestHandler" > > - <!-- for historic reasons, DisMaxRequestHandler will use all of > - it's init params as "defaults" if there is no "defaults" list > - specified > - --> > - <float name="tie">0.01</float> > - <str name="qf"> > - text^0.5 features_t^1.0 subject^1.4 title_stemmed^2.0 > - </str> > - <str name="pf"> > - text^0.2 features_t^1.1 subject^1.4 title_stemmed^2.0 title^1.5 > - </str> > - <str name="bf"> > - ord(weight)^0.5 recip(rord(iind),1,1000,1000)^0.3 > - </str> > - <str name="mm"> > - 3<-1 5<-2 6<90% > - </str> > - <int name="ps">100</int> > - </requestHandler> > - <requestHandler name="dismax" class="solr.DisMaxRequestHandler" > > - <lst name="defaults"> > - <str name="q.alt">*:*</str> > - <float name="tie">0.01</float> > - <str name="qf"> > - text^0.5 features_t^1.0 subject^1.4 title_stemmed^2.0 > - </str> > - <str name="pf"> > - text^0.2 features_t^1.1 subject^1.4 title_stemmed^2.0 title^1.5 > - </str> > - <str name="bf"> > - ord(weight)^0.5 recip(rord(iind),1,1000,1000)^0.3 > - </str> > - <str name="mm"> > - 3<-1 5<-2 6<90% > - </str> > - <int name="ps">100</int> > - </lst> > - </requestHandler> > - <requestHandler name="old" class="solr.tst.OldRequestHandler" > > - <int name="myparam">1000</int> > - <float name="ratio">1.4142135</float> > - <arr name="myarr"><int>1</int><int>2</int></arr> > - <str>foo</str> > - </requestHandler> > - <requestHandler name="oldagain" class="solr.tst.OldRequestHandler" > > - <lst name="lst1"> <str name="op">sqrt</str> <int name="val">2</int> > </lst> > - <lst name="lst2"> <str name="op">log</str> <float name="val">10</float> > </lst> > - </requestHandler> > - > - <requestHandler name="test" class="solr.tst.TestRequestHandler" /> > - > - <!-- test query parameter defaults --> > - <requestHandler name="defaults" class="solr.StandardRequestHandler"> > - <lst name="defaults"> > - <int name="rows">4</int> > - <bool name="hl">true</bool> > - <str name="hl.fl">text,name,subject,title,whitetok</str> > - </lst> > - </requestHandler> > - > - <!-- test query parameter defaults --> > - <requestHandler name="lazy" class="solr.StandardRequestHandler" > startup="lazy"> > - <lst name="defaults"> > - <int name="rows">4</int> > - <bool name="hl">true</bool> > - <str name="hl.fl">text,name,subject,title,whitetok</str> > - </lst> > - </requestHandler> > - > - <requestHandler name="/update" class="solr.XmlUpdateRequestHandler" > /> > - <requestHandler name="/update/csv" class="solr.CSVRequestHandler" > startup="lazy"> > - <bool name="httpCaching">false</bool> > - </requestHandler> > - > - <searchComponent name="spellcheck" > class="org.apache.solr.handler.component.SpellCheckComponent"> > - <str name="queryAnalyzerFieldType">lowerfilt</str> > - > - <lst name="spellchecker"> > - <str name="name">default</str> > - <str name="field">lowerfilt</str> > - <str name="spellcheckIndexDir">spellchecker1</str> > - <str name="buildOnCommit">true</str> > - </lst> > - <!-- Example of using different distance measure --> > - <lst name="spellchecker"> > - <str name="name">jarowinkler</str> > - <str name="field">lowerfilt</str> > - <!-- Use a different Distance Measure --> > - <str > name="distanceMeasure">org.apache.lucene.search.spell.JaroWinklerDistance</str> > - <str name="spellcheckIndexDir">spellchecker2</str> > - > - </lst> > - <lst name="spellchecker"> > - <str name="classname">solr.FileBasedSpellChecker</str> > - <str name="name">external</str> > - <str name="sourceLocation">spellings.txt</str> > - <str name="characterEncoding">UTF-8</str> > - <str name="spellcheckIndexDir">spellchecker3</str> > - </lst> > - </searchComponent> > - <!-- > - The SpellingQueryConverter to convert raw (CommonParams.Q) queries into > tokens. Uses a simple regular expression > - to strip off field markup, boosts, ranges, etc. but it is not guaranteed > to match an exact parse from the query parser. > - --> > - <queryConverter name="queryConverter" > class="org.apache.solr.spelling.SpellingQueryConverter"/> > - > - <requestHandler name="spellCheckCompRH" > class="org.apache.solr.handler.component.SearchHandler"> > - <lst name="defaults"> > - <!-- omp = Only More Popular --> > - <str name="spellcheck.onlyMorePopular">false</str> > - <!-- exr = Extended Results --> > - <str name="spellcheck.extendedResults">false</str> > - <!-- The number of suggestions to return --> > - <str name="spellcheck.count">1</str> > - </lst> > - <arr name="last-components"> > - <str>spellcheck</str> > - </arr> > - </requestHandler> > - > - <searchComponent class="solr.HighlightComponent" name="highlight"> > - <highlighting> > - <!-- Configure the standard fragmenter --> > - <fragmenter name="gap" class="org.apache.solr.highlight.GapFragmenter" > default="true"> > - <lst name="defaults"> > - <int name="hl.fragsize">100</int> > - </lst> > - </fragmenter> > - > - <fragmenter name="regex" > class="org.apache.solr.highlight.RegexFragmenter"> > - <lst name="defaults"> > - <int name="hl.fragsize">70</int> > - </lst> > - </fragmenter> > - > - <!-- Configure the standard formatter --> > - <formatter name="html" class="org.apache.solr.highlight.HtmlFormatter" > default="true"> > - <lst name="defaults"> > - <str name="hl.simple.pre"><![CDATA[<em>]]></str> > - <str name="hl.simple.post"><![CDATA[</em>]]></str> > - </lst> > - </formatter> > - </highlighting> > - </searchComponent> > - > - > - <!-- enable streaming for testing... --> > - <requestDispatcher handleSelect="true" > > - <requestParsers enableRemoteStreaming="true" > multipartUploadLimitInKB="2048" /> > - <httpCaching lastModifiedFrom="openTime" etagSeed="Solr" > never304="false"> > - <cacheControl>max-age=30, public</cacheControl> > - </httpCaching> > - </requestDispatcher> > - > - <admin> > - <defaultQuery>solr</defaultQuery> > - <gettableFiles>solrconfig.xml scheam.xml admin-extra.html</gettableFiles> > - </admin> > - > - <!-- test getting system property --> > - <propTest attr1="${solr.test.sys.prop1}-$${literal}" > - > attr2="${non.existent.sys.prop:default-from-config}">prefix-${solr.test.sys.prop2}-suffix</propTest> > - > - <queryParser name="foo" class="FooQParserPlugin"/> > - > - > - > + <requestHandler name="standard" > class="solr.StandardRequestHandler"></requestHandler> > + <directoryFactory name="DirectoryFactory" > class="org.apache.solr.core.AlternateDirectoryTest$TestFSDirectoryFactory"></directoryFactory> > </config> > > > --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
