Class SolrTestCaseJ4
- java.lang.Object
-
- org.junit.Assert
-
- org.apache.lucene.tests.util.LuceneTestCase
-
- org.apache.solr.SolrTestCase
-
- org.apache.solr.SolrTestCaseJ4
-
- Direct Known Subclasses:
AbstractBackupRepositoryTest,AbstractBadConfigTestBase,AbstractDigestZkACLAndCredentialsProvidersTestBase,AbstractZkTestCase,BaseDistributedSearchTestCase,MultiSolrCloudTestCase,SolrCloudTestCase,SolrJettyTestBase,SolrTestCaseHS,UpdateProcessorTestBase
@SuppressFileSystems("ExtrasFS") @RandomizeSSL public abstract class SolrTestCaseJ4 extends SolrTestCaseA junit4 Solr test harness that extends SolrTestCase and, by extension, LuceneTestCase. To change which core is used when loading the schema and solrconfig.xml, simply invoke theinitCore(String, String, String, String)method.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classSolrTestCaseJ4.BValstatic classSolrTestCaseJ4.Docstatic classSolrTestCaseJ4.Fldprotected static classSolrTestCaseJ4.FldTypestatic classSolrTestCaseJ4.FValstatic classSolrTestCaseJ4.IRangestatic classSolrTestCaseJ4.IValsstatic classSolrTestCaseJ4.IValsPercentstatic classSolrTestCaseJ4.RandomizingCloudHttp2SolrClientBuilderA variant ofCloudHttp2SolrClient.Builderthat will randomize some internal settings.static classSolrTestCaseJ4.RandomizingCloudSolrClientBuilderDeprecated.static interfaceSolrTestCaseJ4.SuppressPointFieldsAnnotation for test classes that want to disable PointFields.static interfaceSolrTestCaseJ4.SuppressSSLAnnotation for test classes that want to disable SSLstatic classSolrTestCaseJ4.SValstatic classSolrTestCaseJ4.Valsstatic classSolrTestCaseJ4.XmlDocNecessary to make method signatures un-ambiguous-
Nested classes/interfaces inherited from class org.apache.lucene.tests.util.LuceneTestCase
org.apache.lucene.tests.util.LuceneTestCase.AwaitsFix, org.apache.lucene.tests.util.LuceneTestCase.BadApple, org.apache.lucene.tests.util.LuceneTestCase.Monster, org.apache.lucene.tests.util.LuceneTestCase.Nightly, org.apache.lucene.tests.util.LuceneTestCase.SuppressCodecs, org.apache.lucene.tests.util.LuceneTestCase.SuppressFileSystems, org.apache.lucene.tests.util.LuceneTestCase.SuppressFsync, org.apache.lucene.tests.util.LuceneTestCase.SuppressReproduceLine, org.apache.lucene.tests.util.LuceneTestCase.SuppressSysoutChecks, org.apache.lucene.tests.util.LuceneTestCase.SuppressTempFileChecks, org.apache.lucene.tests.util.LuceneTestCase.ThrowingConsumer<T extends Object>, org.apache.lucene.tests.util.LuceneTestCase.ThrowingRunnable, org.apache.lucene.tests.util.LuceneTestCase.Weekly
-
-
Field Summary
Fields Modifier and Type Field Description protected static StringconfigStringprotected static StringCORE_PROPERTIES_FILENAMEprotected static StringcoreNamestatic StringDEAD_HOST_1a "dead" host, if you try to connect to it, it will likely fail fast please consider using mocks and not real networking to simulate failurestatic StringDEAD_HOST_2a "dead" host, if you try to connect to it, it will likely fail fast please consider using mocks and not real networking to simulate failurestatic StringDEAD_HOST_3a "dead" host, if you try to connect to it, it will likely fail fast please consider using mocks and not real networking to simulate failurestatic intDEFAULT_CONNECTION_TIMEOUTstatic StringDEFAULT_TEST_COLLECTION_NAMEstatic StringDEFAULT_TEST_CORENAMEprotected static TestHarnesshHarness initialized by create[Default]Core[Container].protected static StringhdfsDataDirprotected static FileinitCoreDataDirDeprecated.use initAndGetDataDir instead of directly accessing this variableprotected static TestHarness.LocalRequestFactorylrfLocalRequestFactory initialized by create[Default]Core[Container] using sensible defaults.static StringNUMERIC_DOCVALUES_SYSPROPThe name of a sysprop that will be eithertrueorfalseindicating if docValues should be used on a numeric field.static StringNUMERIC_POINTS_SYSPROPThe name of a sysprop that will eithertrueorfalseindicating if numeric points fields are currently in use, depending on the user specified value ofUSE_NUMERIC_POINTS_SYSPROPand/or theSolrTestCaseJ4.SuppressPointFieldsannotation and/or randomization.static SolrTestCaseJ4.IRangeONE_ONEprotected static Map<Class<?>,String>RANDOMIZED_NUMERIC_FIELDTYPESA Map of "primitive" java "numeric" types and the string name of theclassused in the corresponding schema fieldType declaration.protected static StringschemaStringprotected static org.apache.solr.core.SolrConfigsolrConfigorg.junit.rules.TestRulesolrTestRulesstatic SSLTestConfigsslConfigstatic StringSYSTEM_PROPERTY_SOLR_TESTS_MERGEPOLICYFACTORYstatic StringTEST_URL_ALLOW_LISTprotected static ExecutorServicetestExecutorprotected static PathtestSolrHomestatic StringUPDATELOG_SYSPROPstatic StringUSE_NUMERIC_POINTS_SYSPROPThe name of a sysprop that can be set by users when running tests to force the types of numerics used for test classes that do not have theSolrTestCaseJ4.SuppressPointFieldsannotation: If unset, then a random variable will be used to decide the type of numerics.static SolrTestCaseJ4.IRangeZERO_ONEstatic SolrTestCaseJ4.IRangeZERO_TWO-
Fields inherited from class org.apache.solr.SolrTestCase
solrClassRules
-
Fields inherited from class org.apache.lucene.tests.util.LuceneTestCase
assertsAreEnabled, classRules, DEFAULT_LINE_DOCS_FILE, INFOSTREAM, JENKINS_LARGE_LINE_DOCS_FILE, LEAVE_TEMPORARY, MAYBE_CACHE_POLICY, RANDOM_MULTIPLIER, ruleChain, suiteFailureMarker, SYSPROP_AWAITSFIX, SYSPROP_BADAPPLES, SYSPROP_FAILFAST, SYSPROP_MAXFAILURES, SYSPROP_MONSTER, SYSPROP_NIGHTLY, SYSPROP_WEEKLY, TEST_ASSERTS_ENABLED, TEST_AWAITSFIX, TEST_BADAPPLES, TEST_CODEC, TEST_DIRECTORY, TEST_DOCVALUESFORMAT, TEST_LINE_DOCS_FILE, TEST_MONSTER, TEST_NIGHTLY, TEST_POSTINGSFORMAT, TEST_THROTTLING, TEST_WEEKLY, VERBOSE
-
-
Constructor Summary
Constructors Constructor Description SolrTestCaseJ4()
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Deprecated Methods Modifier and Type Method Description static Stringadd(SolrTestCaseJ4.XmlDoc doc, String... args)Generates an <add><doc>...static LongaddAndGetVersion(org.apache.solr.common.SolrInputDocument sdoc, org.apache.solr.common.params.SolrParams params)static voidaddDoc(String doc, String updateRequestProcessorChain)static Stringadoc(String... fieldsAndValues)Generates a simple <add><doc>...static Stringadoc(org.apache.solr.common.SolrInputDocument sdoc)Generates a simple <add><doc>...protected voidassertExceptionThrownWithMessageContaining(Class<? extends Throwable> expectedType, List<String> expectedStrings, org.apache.lucene.tests.util.LuceneTestCase.ThrowingRunnable runnable)static voidassertFailedU(String update)Validates an update XML String failedstatic voidassertFailedU(String message, String update)Validates an update XML String failedstatic voidassertFieldValues(org.apache.solr.common.SolrDocumentList documents, String fieldName, Object... expectedValues)Fails if the number of documents in the given SolrDocumentList differs from the given number of expected values, or if any of the values in the given field don't match the expected values in the same order.static StringassertJQ(org.apache.solr.request.SolrQueryRequest req, double delta, String... tests)Validates a query matches some JSON test expressions and closes the query.static StringassertJQ(org.apache.solr.request.SolrQueryRequest req, String... tests)Validates a query matches some JSON test expressions using the default double delta tolerance.static voidassertNonBlockingRandomGeneratorAvailable()static voidassertQ(String message, org.apache.solr.request.SolrQueryRequest req, String... tests)Validates a query matches some XPath test expressions and closes the querystatic voidassertQ(org.apache.solr.request.SolrQueryRequest req, String... tests)Validates a query matches some XPath test expressions and closes the querystatic voidassertQEx(String failMessage, String exceptionMessage, org.apache.solr.request.SolrQueryRequest req, org.apache.solr.common.SolrException.ErrorCode code)Makes sure a query throws a SolrException with the listed response code and expected messagestatic voidassertQEx(String message, org.apache.solr.request.SolrQueryRequest req, int code)Makes sure a query throws a SolrException with the listed response codestatic voidassertQEx(String message, org.apache.solr.request.SolrQueryRequest req, org.apache.solr.common.SolrException.ErrorCode code)static voidassertResponseValues(org.apache.solr.client.solrj.response.SolrResponseBase rsp, Object... assertions)booleanassertSolrInputFieldEquals(Object expected, Object actual)static voidassertU(String update)Validates an update XML String is successfulstatic voidassertU(String message, String update)Validates an update XML String is successfulstatic voidassertXmlFile(File file, String... xpath)static voidassumeWorkingMockito()Assumes that Mockito/Bytebuddy is available and can be used to mock classes (e.g., fails if Java version is too new).protected static StringbuildUrl(int port)protected static StringbuildUrl(int port, String context)Deprecated.voidclearIndex()Does a low level delete of all docs in the index.static Stringcommit(String... args)booleancompareSolrDocument(Object expected, Object actual)booleancompareSolrDocumentList(Object expected, Object actual)booleancompareSolrInputDocument(Object expected, Object actual)static Pathconfigset(String name)static voidcopyMinConf(File dstRoot)static voidcopyMinConf(File dstRoot, String propertiesContent)static voidcopyMinConf(File dstRoot, String propertiesContent, String solrconfigXmlName)static voidcopyMinFullSetup(File dstRoot)static voidcopySolrHomeToTemp(File dstRoot, String collection)Deprecated.static voidcopyXmlToHome(File dstRoot, String fromFile)static Comparator<SolrTestCaseJ4.Doc>createComparator(String field, boolean asc, boolean sortMissingLast, boolean sortMissingFirst, boolean sortMissingAsZero)static Comparator<SolrTestCaseJ4.Doc>createComparator(List<Comparator<SolrTestCaseJ4.Doc>> comparators)static voidcreateCore()static org.apache.solr.core.CoreContainercreateCoreContainer(String coreName, String dataDir, String solrConfig, String schema)static org.apache.solr.core.CoreContainercreateCoreContainer(Path solrHome, String solrXML)static org.apache.solr.core.CoreContainercreateCoreContainer(org.apache.solr.core.NodeConfig config, org.apache.solr.core.CoresLocator locator)static org.apache.solr.core.CoreContainercreateDefaultCoreContainer(Path solrHome)static org.apache.solr.update.processor.DistributedUpdateProcessorcreateDistributedUpdateProcessor(org.apache.solr.request.SolrQueryRequest req, org.apache.solr.response.SolrQueryResponse rsp, org.apache.solr.update.processor.UpdateRequestProcessor next)static SolrTestCaseJ4.DoccreateDoc(List<SolrTestCaseJ4.FldType> descriptor)static Comparator<SolrTestCaseJ4.Doc>createSort(org.apache.solr.schema.IndexSchema schema, List<SolrTestCaseJ4.FldType> fieldTypes, String[] out)static LongdeleteAndGetVersion(String id, org.apache.solr.common.params.SolrParams params)static LongdeleteByQueryAndGetVersion(String q, org.apache.solr.common.params.SolrParams params)static voiddeleteCore()Shuts down the test harness and nulls out the values setup byinitCore(java.lang.String, java.lang.String)static StringdelI(String id)Generates a <delete>...static StringdelQ(String q)Generates a <delete>...static SolrTestCaseJ4.XmlDocdoc(String... fieldsAndValues)Generates a simple <doc>...protected static StringgetClassName()static FilegetFile(String name)Gets a resource from the context classloader asFile.static org.apache.http.client.HttpClientgetHttpClient(String url)Deprecated.static org.apache.solr.client.solrj.impl.HttpSolrClientgetHttpSolrClient(String url)This method creates a basic HttpSolrClient.static org.apache.solr.client.solrj.impl.HttpSolrClientgetHttpSolrClient(String url, String defaultCoreName)This method creates a basic HttpSolrClient.static org.apache.solr.client.solrj.impl.HttpSolrClientgetHttpSolrClient(org.apache.solr.common.cloud.Replica replica)Create a basic HttpSolrClient pointed at the specified replicastatic ThrowablegetRootCause(Throwable t)protected StringgetSaferTestName()static StringgetSchemaFile()Subclasses must define this method to return the name of the schema.xml they wish to use.protected static StringgetSimpleClassName()static StringgetSolrConfigFile()Subclasses must define this method to return the name of the solrconfig.xml they wish to use.static ThrowablegetWrappedException(Throwable e)static booleanhasInitException(Class<? extends Exception> exceptionType)static booleanhasInitException(String message)static voidignoreException(String pattern)Deprecated.use aErrorLogMuterinsteadMap<Comparable,SolrTestCaseJ4.Doc>indexDocs(List<SolrTestCaseJ4.FldType> descriptor, Map<Comparable,SolrTestCaseJ4.Doc> model, int nDocs)protected static FileinitAndGetDataDir()Subclasses may call this method to access the "dataDir" that will be used byinitCore(java.lang.String, java.lang.String)(either prior to or after the core is created).static voidinitClassLogLevels()static voidinitCore()static voidinitCore(String config, String schema)Call initCore in @BeforeClass to instantiate a solr core in your test class.static voidinitCore(String config, String schema, String solrHome)Call initCore in @BeforeClass to instantiate a solr core in your test class.static voidinitCore(String config, String schema, String solrHome, String pCoreName)Call initCore in @BeforeClass to instantiate a solr core in your test class.voidinitMethodLogLevels()Map<Comparable,List<Comparable>>invertField(Map<Comparable,SolrTestCaseJ4.Doc> model, String field)Return a Map from field value to a list of document idsprotected static booleanisSSLMode()static StringJQ(org.apache.solr.request.SolrQueryRequest req)Makes a query request and returns the JSON string responsestatic Stringjson(String testJSON)Converts "test JSON" strings into JSON parseable by our JSON parser.static Stringjson(org.apache.solr.common.SolrInputDocument doc)Creates JSON from a SolrInputDocument.static voidjson(org.apache.solr.common.SolrInputDocument doc, org.noggit.CharArr out)Appends to theoutarray with JSON from thedoc.static StringjsonAdd(org.apache.solr.common.SolrInputDocument... docs)Creates a JSON add command from a SolrInputDocument list.static StringjsonDelId(Object... ids)Creates a JSON delete command from an id liststatic StringjsonDelQ(String... queries)Creates a JSON deleteByQuery commandstatic StringlegacyExampleCollection1SolrHome()Deprecated.static Map<String,Object>map(Object... params)static Map<String,String>map(String... params)static voidnewRandomConfig()Sets system properties to allow generation of random configurations of solrconfig.xml and schema.xml.static Stringoptimize(String... args)static org.apache.solr.common.params.ModifiableSolrParamsparams(String... params)Generates the correct SolrParams from an even list of strings.protected static <T> TpickRandom(T... options)voidpostSetUp()Subclasses that override setUp can optionally call this method to log the fact that their setUp process has ended.voidpreTearDown()Subclasses that override tearDown can optionally call this method to log the fact that the tearDown process has started.static StringrandomDate()Returns a randomly generated Date in the appropriate Solr external (input) formatstatic StringrandomSkewedDate()Returns a Date such that all results from this method always have the same values for year+month+day+hour+minute but the seconds are randomized.static StringrandomXmlUsableUnicodeString()We want "realistic" unicode strings beyond simple ascii, but because our updates use XML we need to ensure we don't get "special" code block.static org.apache.solr.request.SolrQueryRequestreq(String... q)Generates a SolrQueryRequest using the LocalRequestFactorystatic org.apache.solr.request.SolrQueryRequestreq(String[] params, String... moreParams)Generates a SolrQueryRequest using the LocalRequestFactorystatic org.apache.solr.request.SolrQueryRequestreq(org.apache.solr.common.params.SolrParams params, String... moreParams)Generates a SolrQueryRequeststatic voidresetExceptionIgnores()Deprecated.use aErrorLogMuterinsteadstatic voidresetFactory()static voidresetGlobalTracer()GlobalTracer is initialized by org.apache.solr.core.TracerConfigurator by org.apache.solr.core.CoreContainer.voidrestoreMethodLogLevels()static org.apache.solr.common.SolrInputDocumentsdoc(Object... fieldsAndValues)static List<org.apache.solr.common.SolrInputDocument>sdocs(org.apache.solr.common.SolrInputDocument... docs)org.apache.solr.common.SolrInputDocumentsdocWithChildren(Integer id, String version, int childCount)org.apache.solr.common.SolrInputDocumentsdocWithChildren(String id, String version)org.apache.solr.common.SolrInputDocumentsdocWithChildren(String id, String version, int childCount)voidsetUp()static voidsetupNoCoreTest(Path solrHome, String xmlStr)Call this from @BeforeClass to set up the test harness and update handler with no cores.static voidsetupTestCases()static Objectskewed(Object likely, Object unlikely)Returnslikelymost (1/10) of the time, otherwiseunlikelystatic voidstartTrackingSearchers()protected static voidsystemClearPropertySolrDisableUrlAllowList()Deprecated.protected static voidsystemClearPropertySolrTestsMergePolicyFactory()protected static voidsystemSetPropertySolrDisableUrlAllowList(String value)Deprecated.protected static voidsystemSetPropertySolrTestsMergePolicyFactory(String value)voidtearDown()static voidteardownTestCases()static PathTEST_COLL1_CONF()static StringTEST_HOME()static PathTEST_PATH()static StringtoJSON(SolrTestCaseJ4.Doc doc)static voidunIgnoreException(String pattern)Deprecated.use aErrorLogMuterinsteadstatic StringupdateJ(String json, org.apache.solr.common.params.SolrParams args)Send JSON update commandsstatic voiduseFactory(String factory)Use a different directory factory.protected voidwaitForWarming()protected static voidwaitForWarming(org.apache.solr.core.SolrCore core)protected static org.apache.lucene.tests.analysis.MockTokenizerwhitespaceMockTokenizer(Reader input)protected static org.apache.lucene.tests.analysis.MockTokenizerwhitespaceMockTokenizer(String input)protected voidwriteCoreProperties(Path coreDirectory, String coreName)static voidwriteCoreProperties(Path coreDirectory, Properties properties, String testname)-
Methods inherited from class org.apache.solr.SolrTestCase
assertJSONEquals, assertThat, assertThat, beforeSolrTestCase, checkSyspropForceBeforeAssumptionFailure, checkSyspropForceBeforeClassAssumptionFailure
-
Methods inherited from class org.apache.lucene.tests.util.LuceneTestCase
addVirusChecker, assertDeletedDocsEquals, assertDocsAndPositionsEnumEquals, assertDocsEnumEquals, assertDocsSkippingEquals, assertDocValuesEquals, assertDocValuesEquals, assertFieldInfosEquals, assertNormsEquals, assertPointsEquals, assertPositionsSkippingEquals, assertReaderEquals, assertReaderStatisticsEquals, assertStoredFieldEquals, assertStoredFieldsEquals, assertTermsEnumEquals, assertTermsEquals, assertTermsEquals, assertTermsStatisticsEquals, assertTermStatsEquals, assertTermVectorsEquals, asSet, assumeFalse, assumeNoException, assumeTrue, assumeWorkingMMapOnWindows, atLeast, atLeast, callStackContains, callStackContains, callStackContainsAnyOf, closeAfterSuite, closeAfterTest, collate, createTempDir, createTempDir, createTempFile, createTempFile, dumpArray, dumpIterator, ensureSaneIWCOnNightly, expectThrows, expectThrows, expectThrows, expectThrowsAnyOf, expectThrowsAnyOf, getDataInputStream, getDataPath, getJvmForkArguments, getOnlyLeafReader, getTestClass, getTestName, hasWorkingMMapOnWindows, isTestThread, localeForLanguageTag, maybeChangeLiveIndexWriterConfig, maybeWrapReader, newAlcoholicMergePolicy, newAlcoholicMergePolicy, newBytesRef, newBytesRef, newBytesRef, newBytesRef, newBytesRef, newBytesRef, newDirectory, newDirectory, newDirectory, newDirectory, newDirectory, newField, newField, newFSDirectory, newFSDirectory, newIndexWriterConfig, newIndexWriterConfig, newIndexWriterConfig, newIOContext, newIOContext, newLogMergePolicy, newLogMergePolicy, newLogMergePolicy, newLogMergePolicy, newLogMergePolicy, newMaybeVirusCheckingDirectory, newMaybeVirusCheckingFSDirectory, newMergePolicy, newMergePolicy, newMergePolicy, newMockDirectory, newMockDirectory, newMockDirectory, newMockFSDirectory, newMockFSDirectory, newSearcher, newSearcher, newSearcher, newSearcher, newSnapshotIndexWriterConfig, newStringField, newStringField, newStringField, newStringField, newTextField, newTextField, newTieredMergePolicy, newTieredMergePolicy, overrideDefaultQueryCache, overrideTestDefaultQueryCache, random, randomLocale, randomTimeZone, randomVectorFormat, rarely, rarely, replaceMaxFailureRule, resetDefaultQueryCache, restoreCPUCoreCount, restoreIndexWriterMaxDocs, runWithRestrictedPermissions, setIndexWriterMaxDocs, setupCPUCoreCount, setUpExecutorService, shutdownExecutorService, slowFileExists, usually, usually, wrapReader
-
Methods inherited from class org.junit.Assert
assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertArrayEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertEquals, assertFalse, assertFalse, assertNotEquals, assertNotEquals, assertNotEquals, assertNotEquals, assertNotEquals, assertNotEquals, assertNotEquals, assertNotEquals, assertNotNull, assertNotNull, assertNotSame, assertNotSame, assertNull, assertNull, assertSame, assertSame, assertThrows, assertThrows, assertTrue, assertTrue, fail, fail
-
-
-
-
Field Detail
-
DEFAULT_TEST_COLLECTION_NAME
public static final String DEFAULT_TEST_COLLECTION_NAME
- See Also:
- Constant Field Values
-
DEFAULT_TEST_CORENAME
public static final String DEFAULT_TEST_CORENAME
- See Also:
- Constant Field Values
-
CORE_PROPERTIES_FILENAME
protected static final String CORE_PROPERTIES_FILENAME
- See Also:
- Constant Field Values
-
SYSTEM_PROPERTY_SOLR_TESTS_MERGEPOLICYFACTORY
public static final String SYSTEM_PROPERTY_SOLR_TESTS_MERGEPOLICYFACTORY
- See Also:
- Constant Field Values
-
TEST_URL_ALLOW_LIST
public static final String TEST_URL_ALLOW_LIST
- See Also:
- Constant Field Values
-
coreName
protected static String coreName
-
DEFAULT_CONNECTION_TIMEOUT
public static int DEFAULT_CONNECTION_TIMEOUT
-
testExecutor
protected static volatile ExecutorService testExecutor
-
sslConfig
public static volatile SSLTestConfig sslConfig
-
solrTestRules
public org.junit.rules.TestRule solrTestRules
-
DEAD_HOST_1
public static final String DEAD_HOST_1
a "dead" host, if you try to connect to it, it will likely fail fast please consider using mocks and not real networking to simulate failure- See Also:
- Constant Field Values
-
DEAD_HOST_2
public static final String DEAD_HOST_2
a "dead" host, if you try to connect to it, it will likely fail fast please consider using mocks and not real networking to simulate failure- See Also:
- Constant Field Values
-
DEAD_HOST_3
public static final String DEAD_HOST_3
a "dead" host, if you try to connect to it, it will likely fail fast please consider using mocks and not real networking to simulate failure- See Also:
- Constant Field Values
-
configString
protected static String configString
-
schemaString
protected static String schemaString
-
testSolrHome
protected static Path testSolrHome
-
solrConfig
protected static org.apache.solr.core.SolrConfig solrConfig
-
h
protected static TestHarness h
Harness initialized by create[Default]Core[Container].For use in test methods as needed.
-
lrf
protected static TestHarness.LocalRequestFactory lrf
LocalRequestFactory initialized by create[Default]Core[Container] using sensible defaults.For use in test methods as needed.
-
initCoreDataDir
@Deprecated protected static volatile File initCoreDataDir
Deprecated.use initAndGetDataDir instead of directly accessing this variableThe directory used as thedataDirfor the TestHarness unlesshdfsDataDiris non null.Will be set to null by
deleteCore()and re-initialized as needed bycreateCore(). In the event of a test failure, the contents will be left on disk.- See Also:
LuceneTestCase.createTempDir(String),initAndGetDataDir()
-
hdfsDataDir
protected static String hdfsDataDir
-
ZERO_ONE
public static final SolrTestCaseJ4.IRange ZERO_ONE
-
ZERO_TWO
public static final SolrTestCaseJ4.IRange ZERO_TWO
-
ONE_ONE
public static final SolrTestCaseJ4.IRange ONE_ONE
-
USE_NUMERIC_POINTS_SYSPROP
public static final String USE_NUMERIC_POINTS_SYSPROP
The name of a sysprop that can be set by users when running tests to force the types of numerics used for test classes that do not have theSolrTestCaseJ4.SuppressPointFieldsannotation:- If unset, then a random variable will be used to decide the type of numerics.
- If set to
truethen Points based numerics will be used. - If set to
false(or any other string) then Trie based numerics will be used.
- See Also:
NUMERIC_POINTS_SYSPROP, Constant Field Values
-
NUMERIC_POINTS_SYSPROP
public static final String NUMERIC_POINTS_SYSPROP
The name of a sysprop that will eithertrueorfalseindicating if numeric points fields are currently in use, depending on the user specified value ofUSE_NUMERIC_POINTS_SYSPROPand/or theSolrTestCaseJ4.SuppressPointFieldsannotation and/or randomization. Tests can useBoolean.getBoolean(NUMERIC_POINTS_SYSPROP).- See Also:
randomizeNumericTypesProperties(), Constant Field Values
-
NUMERIC_DOCVALUES_SYSPROP
public static final String NUMERIC_DOCVALUES_SYSPROP
The name of a sysprop that will be eithertrueorfalseindicating if docValues should be used on a numeric field. This property string should be used in thedocValuesattribute of (most) numeric fieldTypes in schemas, and by default will be randomized by this class in a@BeforeClass. Subclasses that need to force specific behavior can useSystem.setProperty(NUMERIC_DOCVALUES_SYSPROP,"true")to override the default randomization.- See Also:
randomizeNumericTypesProperties(), Constant Field Values
-
UPDATELOG_SYSPROP
public static final String UPDATELOG_SYSPROP
- See Also:
- Constant Field Values
-
RANDOMIZED_NUMERIC_FIELDTYPES
protected static final Map<Class<?>,String> RANDOMIZED_NUMERIC_FIELDTYPES
A Map of "primitive" java "numeric" types and the string name of theclassused in the corresponding schema fieldType declaration.Example:
java.util.Date => "solr.DatePointField"- See Also:
randomizeNumericTypesProperties()
-
-
Method Detail
-
writeCoreProperties
protected void writeCoreProperties(Path coreDirectory, String coreName) throws IOException
- Throws:
IOException
-
writeCoreProperties
public static void writeCoreProperties(Path coreDirectory, Properties properties, String testname) throws IOException
- Throws:
IOException
-
assertExceptionThrownWithMessageContaining
protected void assertExceptionThrownWithMessageContaining(Class<? extends Throwable> expectedType, List<String> expectedStrings, org.apache.lucene.tests.util.LuceneTestCase.ThrowingRunnable runnable)
-
setupTestCases
public static void setupTestCases()
-
resetGlobalTracer
public static void resetGlobalTracer()
GlobalTracer is initialized by org.apache.solr.core.TracerConfigurator by org.apache.solr.core.CoreContainer. Tests may need to reset it in the beginning of a test if it might have differing configuration from other tests in the same suite. It's also important to callExecutorUtil.resetThreadLocalProviders().
-
assumeWorkingMockito
public static void assumeWorkingMockito()
Assumes that Mockito/Bytebuddy is available and can be used to mock classes (e.g., fails if Java version is too new).
-
initClassLogLevels
public static void initClassLogLevels()
-
initMethodLogLevels
public void initMethodLogLevels()
-
restoreMethodLogLevels
public void restoreMethodLogLevels()
-
isSSLMode
protected static boolean isSSLMode()
-
useFactory
public static void useFactory(String factory) throws Exception
Use a different directory factory. Passing "null" sets to an FS-based factory- Throws:
Exception
-
buildUrl
protected static String buildUrl(int port)
-
buildUrl
@Deprecated protected static String buildUrl(int port, String context)
Deprecated.
-
whitespaceMockTokenizer
protected static org.apache.lucene.tests.analysis.MockTokenizer whitespaceMockTokenizer(Reader input) throws IOException
- Throws:
IOException
-
whitespaceMockTokenizer
protected static org.apache.lucene.tests.analysis.MockTokenizer whitespaceMockTokenizer(String input) throws IOException
- Throws:
IOException
-
setupNoCoreTest
public static void setupNoCoreTest(Path solrHome, String xmlStr) throws Exception
Call this from @BeforeClass to set up the test harness and update handler with no cores.- Parameters:
solrHome- The solr home directory.xmlStr- - the text of an XML file to use. If null, use the what's the absolute minimal file.- Throws:
Exception- Lost of file-type things can go wrong.
-
newRandomConfig
public static void newRandomConfig()
Sets system properties to allow generation of random configurations of solrconfig.xml and schema.xml. Sets properties used onLuceneTestCase.newIndexWriterConfig(org.apache.lucene.analysis.Analyzer)and base schema.xml (Point Fields)
-
setUp
public void setUp() throws Exception- Overrides:
setUpin classorg.apache.lucene.tests.util.LuceneTestCase- Throws:
Exception
-
tearDown
public void tearDown() throws Exception- Overrides:
tearDownin classorg.apache.lucene.tests.util.LuceneTestCase- Throws:
Exception
-
initAndGetDataDir
protected static File initAndGetDataDir()
Subclasses may call this method to access the "dataDir" that will be used byinitCore(java.lang.String, java.lang.String)(either prior to or after the core is created).If the dataDir has not yet been initialized when this method is called, this method will do so. Calling
deleteCore()will "reset" the value, such that subsequent calls will re-initialize a new value. All directories returned by any calls to this method will automatically be cleaned up perLuceneTestCase.createTempDir()NOTE: calling this method is not requried, it will be implicitly called as needed when initializing cores. Callers that don't care about using
initCore(java.lang.String, java.lang.String)and just want a temporary directory to put data in sould instead be usingLuceneTestCase.createTempDir()directly.- See Also:
initCoreDataDir
-
initCore
public static void initCore(String config, String schema) throws Exception
Call initCore in @BeforeClass to instantiate a solr core in your test class. deleteCore will be called for you via SolrTestCaseJ4 @AfterClass- Throws:
Exception
-
initCore
public static void initCore(String config, String schema, String solrHome) throws Exception
Call initCore in @BeforeClass to instantiate a solr core in your test class. deleteCore will be called for you via SolrTestCaseJ4 @AfterClass- Throws:
Exception
-
initCore
public static void initCore(String config, String schema, String solrHome, String pCoreName) throws Exception
Call initCore in @BeforeClass to instantiate a solr core in your test class. deleteCore will be called for you via SolrTestCaseJ4 @AfterClass- Throws:
Exception
-
startTrackingSearchers
public static void startTrackingSearchers()
-
ignoreException
@Deprecated public static void ignoreException(String pattern)
Deprecated.use aErrorLogMuterinsteadCauses any ERROR log messages matching with a substring matching the regex pattern to be filtered out by the ROOT logger- See Also:
resetExceptionIgnores()
-
unIgnoreException
@Deprecated public static void unIgnoreException(String pattern)
Deprecated.use aErrorLogMuterinstead- See Also:
ignoreException(java.lang.String)
-
resetExceptionIgnores
@Deprecated public static void resetExceptionIgnores()
Deprecated.use aErrorLogMuterinsteadClears all exception patterns, immediately re-registering"ignore_exception".SolrTestCaseJ4calls this in bothBeforeClassAfterClassso usually tests don't need to call this.- See Also:
ignoreException(java.lang.String)
-
getClassName
protected static String getClassName()
-
getSimpleClassName
protected static String getSimpleClassName()
-
getSchemaFile
public static String getSchemaFile()
Subclasses must define this method to return the name of the schema.xml they wish to use.
-
getSolrConfigFile
public static String getSolrConfigFile()
Subclasses must define this method to return the name of the solrconfig.xml they wish to use.
-
createCore
public static void createCore()
-
createCoreContainer
public static org.apache.solr.core.CoreContainer createCoreContainer(Path solrHome, String solrXML)
-
createCoreContainer
public static org.apache.solr.core.CoreContainer createCoreContainer(org.apache.solr.core.NodeConfig config, org.apache.solr.core.CoresLocator locator)
-
createCoreContainer
public static org.apache.solr.core.CoreContainer createCoreContainer(String coreName, String dataDir, String solrConfig, String schema)
-
createDefaultCoreContainer
public static org.apache.solr.core.CoreContainer createDefaultCoreContainer(Path solrHome)
-
hasInitException
public static boolean hasInitException(String message)
-
postSetUp
public void postSetUp()
Subclasses that override setUp can optionally call this method to log the fact that their setUp process has ended.
-
preTearDown
public void preTearDown()
Subclasses that override tearDown can optionally call this method to log the fact that the tearDown process has started. This is necessary since subclasses will want to call super.tearDown() at the *end* of their tearDown method.
-
deleteCore
public static void deleteCore()
Shuts down the test harness and nulls out the values setup byinitCore(java.lang.String, java.lang.String)
-
assertU
public static void assertU(String update)
Validates an update XML String is successful
-
assertU
public static void assertU(String message, String update)
Validates an update XML String is successful
-
assertFailedU
public static void assertFailedU(String update)
Validates an update XML String failed
-
assertFailedU
public static void assertFailedU(String message, String update)
Validates an update XML String failed
-
assertQ
public static void assertQ(org.apache.solr.request.SolrQueryRequest req, String... tests)Validates a query matches some XPath test expressions and closes the query
-
assertQ
public static void assertQ(String message, org.apache.solr.request.SolrQueryRequest req, String... tests)
Validates a query matches some XPath test expressions and closes the query
-
JQ
public static String JQ(org.apache.solr.request.SolrQueryRequest req) throws Exception
Makes a query request and returns the JSON string response- Throws:
Exception
-
assertJQ
public static String assertJQ(org.apache.solr.request.SolrQueryRequest req, String... tests) throws Exception
Validates a query matches some JSON test expressions using the default double delta tolerance.- Returns:
- The request response as a JSON String if all test patterns pass
- Throws:
Exception- See Also:
JSONTestUtil.DEFAULT_DELTA,assertJQ(SolrQueryRequest,double,String...)
-
assertJQ
public static String assertJQ(org.apache.solr.request.SolrQueryRequest req, double delta, String... tests) throws Exception
Validates a query matches some JSON test expressions and closes the query. The text expression is of the form path:JSON. The Noggit JSON parser used accepts single quoted strings and bare strings to allow easy embedding in Java Strings.Please use this with care: this makes it easy to match complete structures, but doing so can result in fragile tests if you are matching more than what you want to test.
- Parameters:
req- Solr request to executedelta- tolerance allowed in comparing float/double valuestests- JSON path expression + '==' + expected value- Returns:
- The request response as a JSON String if all test patterns pass
- Throws:
Exception
-
assertQEx
public static void assertQEx(String message, org.apache.solr.request.SolrQueryRequest req, int code)
Makes sure a query throws a SolrException with the listed response code
-
assertQEx
public static void assertQEx(String message, org.apache.solr.request.SolrQueryRequest req, org.apache.solr.common.SolrException.ErrorCode code)
-
assertQEx
public static void assertQEx(String failMessage, String exceptionMessage, org.apache.solr.request.SolrQueryRequest req, org.apache.solr.common.SolrException.ErrorCode code)
Makes sure a query throws a SolrException with the listed response code and expected message- Parameters:
failMessage- The assert message to show when the query doesn't throw the expected exceptionexceptionMessage- A substring of the message expected in the exceptionreq- Solr requestcode- expected error code for the query
-
adoc
public static String adoc(String... fieldsAndValues)
Generates a simple <add><doc>... XML String with no options- Parameters:
fieldsAndValues- 0th and Even numbered args are fields names odds are field values.- See Also:
add(org.apache.solr.SolrTestCaseJ4.XmlDoc, java.lang.String...),doc(java.lang.String...)
-
adoc
public static String adoc(org.apache.solr.common.SolrInputDocument sdoc)
Generates a simple <add><doc>... XML String with no options
-
addDoc
public static void addDoc(String doc, String updateRequestProcessorChain) throws Exception
- Throws:
Exception
-
add
public static String add(SolrTestCaseJ4.XmlDoc doc, String... args)
Generates an <add><doc>... XML String with options on the add.- Parameters:
doc- the Document to addargs- 0th and Even numbered args are param names, Odds are param values.- See Also:
add(org.apache.solr.SolrTestCaseJ4.XmlDoc, java.lang.String...),doc(java.lang.String...)
-
doc
public static SolrTestCaseJ4.XmlDoc doc(String... fieldsAndValues)
Generates a simple <doc>... XML String with no options- Parameters:
fieldsAndValues- 0th and Even numbered args are fields names, Odds are field values.- See Also:
BaseTestHarness.makeSimpleDoc(java.lang.String...)
-
params
public static org.apache.solr.common.params.ModifiableSolrParams params(String... params)
Generates the correct SolrParams from an even list of strings. A string in an even position will represent the name of a parameter, while the following string at position (i+1) will be the assigned value.- Parameters:
params- an even list of strings- Returns:
- the ModifiableSolrParams generated from the given list of strings.
-
req
public static org.apache.solr.request.SolrQueryRequest req(String... q)
Generates a SolrQueryRequest using the LocalRequestFactory- See Also:
lrf
-
req
public static org.apache.solr.request.SolrQueryRequest req(String[] params, String... moreParams)
Generates a SolrQueryRequest using the LocalRequestFactory- See Also:
lrf
-
req
public static org.apache.solr.request.SolrQueryRequest req(org.apache.solr.common.params.SolrParams params, String... moreParams)Generates a SolrQueryRequest
-
clearIndex
public void clearIndex()
Does a low level delete of all docs in the index.The behavior of this method is slightly different then doing a normal
*:*DBQ because it takes advantage of internal methods to ensure all index data is wiped, regardless of optimistic concurrency version constraints -- making it suitable for tests that create synthetic versions, and/or require a completely pristine index w/o any field metdata.
-
updateJ
public static String updateJ(String json, org.apache.solr.common.params.SolrParams args) throws Exception
Send JSON update commands- Throws:
Exception
-
sdoc
public static org.apache.solr.common.SolrInputDocument sdoc(Object... fieldsAndValues)
-
sdocWithChildren
public org.apache.solr.common.SolrInputDocument sdocWithChildren(String id, String version)
-
sdocWithChildren
public org.apache.solr.common.SolrInputDocument sdocWithChildren(String id, String version, int childCount)
-
sdocWithChildren
public org.apache.solr.common.SolrInputDocument sdocWithChildren(Integer id, String version, int childCount)
-
sdocs
public static List<org.apache.solr.common.SolrInputDocument> sdocs(org.apache.solr.common.SolrInputDocument... docs)
-
json
public static String json(String testJSON)
Converts "test JSON" strings into JSON parseable by our JSON parser. For example, this method changed single quoted strings into double quoted strings before the parser could natively handle them.This transformation is automatically applied to JSON test strings (like assertJQ).
-
json
public static String json(org.apache.solr.common.SolrInputDocument doc)
Creates JSON from a SolrInputDocument. Doesn't currently handle boosts.- See Also:
json(SolrInputDocument,CharArr)
-
json
public static void json(org.apache.solr.common.SolrInputDocument doc, org.noggit.CharArr out)Appends to theoutarray with JSON from thedoc. Doesn't currently handle boosts, but does recursively handle child documents
-
jsonAdd
public static String jsonAdd(org.apache.solr.common.SolrInputDocument... docs)
Creates a JSON add command from a SolrInputDocument list. Doesn't currently handle boosts.
-
jsonDelId
public static String jsonDelId(Object... ids)
Creates a JSON delete command from an id list
-
addAndGetVersion
public static Long addAndGetVersion(org.apache.solr.common.SolrInputDocument sdoc, org.apache.solr.common.params.SolrParams params) throws Exception
- Throws:
Exception
-
deleteAndGetVersion
public static Long deleteAndGetVersion(String id, org.apache.solr.common.params.SolrParams params) throws Exception
- Throws:
Exception
-
deleteByQueryAndGetVersion
public static Long deleteByQueryAndGetVersion(String q, org.apache.solr.common.params.SolrParams params) throws Exception
- Throws:
Exception
-
assertResponseValues
public static void assertResponseValues(org.apache.solr.client.solrj.response.SolrResponseBase rsp, Object... assertions)
-
indexDocs
public Map<Comparable,SolrTestCaseJ4.Doc> indexDocs(List<SolrTestCaseJ4.FldType> descriptor, Map<Comparable,SolrTestCaseJ4.Doc> model, int nDocs) throws Exception
- Throws:
Exception
-
createDoc
public static SolrTestCaseJ4.Doc createDoc(List<SolrTestCaseJ4.FldType> descriptor)
-
createSort
public static Comparator<SolrTestCaseJ4.Doc> createSort(org.apache.solr.schema.IndexSchema schema, List<SolrTestCaseJ4.FldType> fieldTypes, String[] out)
-
createComparator
public static Comparator<SolrTestCaseJ4.Doc> createComparator(String field, boolean asc, boolean sortMissingLast, boolean sortMissingFirst, boolean sortMissingAsZero)
-
createComparator
public static Comparator<SolrTestCaseJ4.Doc> createComparator(List<Comparator<SolrTestCaseJ4.Doc>> comparators)
-
toJSON
public static String toJSON(SolrTestCaseJ4.Doc doc)
-
invertField
public Map<Comparable,List<Comparable>> invertField(Map<Comparable,SolrTestCaseJ4.Doc> model, String field)
Return a Map from field value to a list of document ids
-
getFile
public static File getFile(String name)
Gets a resource from the context classloader asFile. This method should only be used, if a real file is needed. To get a stream, code should preferClass.getResourceAsStream(java.lang.String)usingthis.getClass().
-
TEST_HOME
public static String TEST_HOME()
-
TEST_PATH
public static Path TEST_PATH()
-
TEST_COLL1_CONF
public static Path TEST_COLL1_CONF()
-
assertXmlFile
public static void assertXmlFile(File file, String... xpath) throws IOException, SAXException
- Throws:
IOExceptionSAXException
-
assertFieldValues
public static void assertFieldValues(org.apache.solr.common.SolrDocumentList documents, String fieldName, Object... expectedValues)Fails if the number of documents in the given SolrDocumentList differs from the given number of expected values, or if any of the values in the given field don't match the expected values in the same order.
-
copyMinConf
public static void copyMinConf(File dstRoot) throws IOException
- Throws:
IOException
-
copyMinConf
public static void copyMinConf(File dstRoot, String propertiesContent) throws IOException
- Throws:
IOException
-
copyMinConf
public static void copyMinConf(File dstRoot, String propertiesContent, String solrconfigXmlName) throws IOException
- Throws:
IOException
-
copyMinFullSetup
public static void copyMinFullSetup(File dstRoot) throws IOException
- Throws:
IOException
-
copyXmlToHome
public static void copyXmlToHome(File dstRoot, String fromFile) throws IOException
- Throws:
IOException
-
copySolrHomeToTemp
@Deprecated public static void copySolrHomeToTemp(File dstRoot, String collection) throws IOException
Deprecated.Copies the test collection1 config intodstRoot/collection/conf- Throws:
IOException
-
legacyExampleCollection1SolrHome
@Deprecated public static String legacyExampleCollection1SolrHome()
Deprecated.Creates a temp solr home using sample_techproducts_configs. Returns the home path.
-
assertSolrInputFieldEquals
public boolean assertSolrInputFieldEquals(Object expected, Object actual)
-
skewed
public static Object skewed(Object likely, Object unlikely)
Returnslikelymost (1/10) of the time, otherwiseunlikely
-
getHttpClient
@Deprecated public static org.apache.http.client.HttpClient getHttpClient(String url)
Deprecated.This method creates a HttpClient from a URL.WARNING: if you use this method, the
HttpClientreturned is tracked byObjectReleaseTracker. Your test will fail if you do not pass theHttpClienttoHttpClientUtil.close(HttpClient)when you are done with it.
-
getHttpSolrClient
public static org.apache.solr.client.solrj.impl.HttpSolrClient getHttpSolrClient(String url)
This method creates a basic HttpSolrClient. Tests that want to control the creation process should use theHttp2SolrClient.Builderclass directly- Parameters:
url- the base URL for a Solr node. Should not contain a core or collection name.
-
getHttpSolrClient
public static org.apache.solr.client.solrj.impl.HttpSolrClient getHttpSolrClient(org.apache.solr.common.cloud.Replica replica)
Create a basic HttpSolrClient pointed at the specified replica
-
getHttpSolrClient
public static org.apache.solr.client.solrj.impl.HttpSolrClient getHttpSolrClient(String url, String defaultCoreName)
This method creates a basic HttpSolrClient. Tests that want to control the creation process should use theHttp2SolrClient.Builderclass directly- Parameters:
url- the base URL of a Solr node. Should not include a collection or core name.defaultCoreName- the name of a core that the created client should default to when making core-aware requests
-
randomDate
public static String randomDate()
Returns a randomly generated Date in the appropriate Solr external (input) format- See Also:
randomSkewedDate()
-
randomSkewedDate
public static String randomSkewedDate()
Returns a Date such that all results from this method always have the same values for year+month+day+hour+minute but the seconds are randomized. This can be helpful for indexing documents with random date values that are biased for a narrow window (one day) to test collisions/overlaps- See Also:
randomDate()
-
randomXmlUsableUnicodeString
public static String randomXmlUsableUnicodeString()
We want "realistic" unicode strings beyond simple ascii, but because our updates use XML we need to ensure we don't get "special" code block.
-
waitForWarming
protected static void waitForWarming(org.apache.solr.core.SolrCore core) throws InterruptedException- Throws:
InterruptedException
-
waitForWarming
protected void waitForWarming() throws InterruptedException- Throws:
InterruptedException
-
getSaferTestName
protected String getSaferTestName()
-
assertNonBlockingRandomGeneratorAvailable
public static void assertNonBlockingRandomGeneratorAvailable() throws InterruptedException- Throws:
InterruptedException
-
systemSetPropertySolrTestsMergePolicyFactory
protected static void systemSetPropertySolrTestsMergePolicyFactory(String value)
-
systemClearPropertySolrTestsMergePolicyFactory
protected static void systemClearPropertySolrTestsMergePolicyFactory()
-
systemSetPropertySolrDisableUrlAllowList
@Deprecated protected static void systemSetPropertySolrDisableUrlAllowList(String value)
Deprecated.
-
systemClearPropertySolrDisableUrlAllowList
@Deprecated protected static void systemClearPropertySolrDisableUrlAllowList()
Deprecated.
-
pickRandom
@SafeVarargs protected static <T> T pickRandom(T... options)
-
createDistributedUpdateProcessor
public static org.apache.solr.update.processor.DistributedUpdateProcessor createDistributedUpdateProcessor(org.apache.solr.request.SolrQueryRequest req, org.apache.solr.response.SolrQueryResponse rsp, org.apache.solr.update.processor.UpdateRequestProcessor next)
-
-