Package org.elasticsearch.test
Class ESTestCase
- java.lang.Object
-
- org.junit.Assert
-
- org.apache.lucene.util.LuceneTestCase
-
- org.elasticsearch.test.ESTestCase
-
- Direct Known Subclasses:
AbstractAsyncBulkByScrollActionTestCase,AbstractBootstrapCheckTestCase,AbstractBuilderTestCase,AbstractBytesReferenceTestCase,AbstractCoordinatorTestCase,AbstractSimpleTransportTestCase,AbstractWireTestCase,AbstractXContentTestCase,AggregatorTestCase,AnalysisFactoryTestCase,CommandTestCase,EngineTestCase,ESAllocationTestCase,ESBlobStoreContainerTestCase,ESBlobStoreTestCase,ESIntegTestCase,ESRestTestCase,ESSingleNodeTestCase,FieldTypeTestCase,IndexShardTestCase,ModuleTestCase,RestActionTestCase,RestClientBuilderTestCase
@Listeners({ReproduceInfoPrinter.class,LoggingListener.class}) @SuppressSysoutChecks(bugUrl="we log a lot on purpose") @SuppressCodecs({"SimpleText","Memory","CheapBastard","Direct","Compressing","FST50","FSTOrd50","TestBloomFilteredLucenePostings","MockRandom","BlockTreeOrds","LuceneFixedGap","LuceneVarGapFixedInterval","LuceneVarGapDocFreqInterval","Lucene50"}) @SuppressReproduceLine public abstract class ESTestCase extends LuceneTestCaseBase testcase for randomized unit testing with Elasticsearch
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classESTestCase.GeohashGeneratorstatic classESTestCase.TestAnalysisThis cute helper class just holds all analysis building blocks that are used to build IndexAnalyzers.-
Nested classes/interfaces inherited from class org.apache.lucene.util.LuceneTestCase
LuceneTestCase.AwaitsFix, LuceneTestCase.BadApple, LuceneTestCase.Monster, LuceneTestCase.Nightly, LuceneTestCase.Slow, LuceneTestCase.SuppressCodecs, LuceneTestCase.SuppressFileSystems, LuceneTestCase.SuppressFsync, LuceneTestCase.SuppressReproduceLine, LuceneTestCase.SuppressSysoutChecks, LuceneTestCase.SuppressTempFileChecks, LuceneTestCase.ThrowingRunnable, LuceneTestCase.Weekly
-
-
Field Summary
Fields Modifier and Type Field Description static booleancheckIndexFailedMockFSDirectoryService sets this:static java.lang.StringDEFAULT_TEST_WORKER_IDorg.junit.rules.RuleChainfailureAndSuccessEventsprotected static java.util.List<java.lang.String>JAVA_TIMEZONE_IDSprotected static java.util.List<java.lang.String>JAVA_ZONE_IDSprotected static java.util.List<java.lang.String>JODA_TIMEZONE_IDSprotected org.apache.logging.log4j.Loggerloggerstatic java.lang.StringTEST_WORKER_SYS_PROPERTYstatic java.lang.StringTEST_WORKER_VM_ID-
Fields inherited from class org.apache.lucene.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_SLOW, 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_SLOW, TEST_THROTTLING, TEST_WEEKLY, VERBOSE
-
-
Constructor Summary
Constructors Constructor Description ESTestCase()
-
Method Summary
Modifier and Type Method Description voidafter()protected voidafterIfFailed(java.util.List<java.lang.Throwable> errors)Called when a test fails, supplying the errors it generated.protected voidafterIfSuccessful()called after a test is finished, but only if successfulvoidassertAllIndicesRemovedAndDeletionCompleted(java.lang.Iterable<IndicesService> indicesServices)static voidassertArrayEquals(java.lang.StackTraceElement[] expected, java.lang.StackTraceElement[] actual)Compares two stack traces, ignoring module (which is not yet serialized)static voidassertBusy(CheckedRunnable<java.lang.Exception> codeBlock)Runs the code block for 10 seconds waiting for no assertion to trip.static voidassertBusy(CheckedRunnable<java.lang.Exception> codeBlock, long maxWaitTime, java.util.concurrent.TimeUnit unit)Runs the code block for the provided interval, waiting for no assertions to trip.static voidassertEquals(java.lang.StackTraceElement expected, java.lang.StackTraceElement actual)Compares two stack trace elements, ignoring module (which is not yet serialized)static <T extends ToXContent>
voidassertEqualsWithErrorMessageFromXContent(T expected, T actual)Assert that two objects are equals, callingToXContent.toXContent(XContentBuilder, ToXContent.Params)to print out their differences if they aren't equal.voidassertPathHasBeenCleared(java.nio.file.Path path)Asserts that there are no files in the specified pathprotected voidassertSettingDeprecationsAndWarnings(java.lang.String[] settings, java.lang.String... warnings)protected voidassertSettingDeprecationsAndWarnings(Setting<?>[] settings, java.lang.String... warnings)Convenience method to assert warnings for settings deprecations and general deprecation warnings.protected voidassertWarnings(java.lang.String... expectedWarnings)static booleanawaitBusy(java.util.function.BooleanSupplier breakSupplier)static booleanawaitBusy(java.util.function.BooleanSupplier breakSupplier, long maxWaitTime, java.util.concurrent.TimeUnit unit)voidbefore()static intbetween(int min, int max)An alias forrandomIntBetween(int, int).SettingsbuildEnvSettings(Settings settings)static TransportAddressbuildNewFakeTransportAddress()Generates a new transport address usingTransportAddress.META_ADDRESSwith an incrementing port number.protected static voidcheckStaticState(boolean afterClass)static voidclearPossibleRoles()protected static <T> TcopyInstance(T original, NamedWriteableRegistry namedWriteableRegistry, Writeable.Writer<T> writer, Writeable.Reader<T> reader, Version version)static <T extends Streamable>
TcopyStreamable(T original, NamedWriteableRegistry namedWriteableRegistry, java.util.function.Supplier<T> supplier, Version version)Create a copy of an originalStreamableobject by running it through aBytesStreamOutputand reading it in again using a providedWriteable.Reader.static <T extends Writeable>
TcopyWriteable(T original, NamedWriteableRegistry namedWriteableRegistry, Writeable.Reader<T> reader)Create a copy of an originalWriteableobject by running it through aBytesStreamOutputand reading it in again using a providedWriteable.Reader.static <T extends Writeable>
TcopyWriteable(T original, NamedWriteableRegistry namedWriteableRegistry, Writeable.Reader<T> reader, Version version)Same ascopyWriteable(Writeable, NamedWriteableRegistry, Writeable.Reader)but also allows to provide aVersionargument which will be used to write and read back the object.protected XContentParsercreateParser(XContentBuilder builder)Create a newXContentParser.protected XContentParsercreateParser(XContent xContent, byte[] data)Create a newXContentParser.protected XContentParsercreateParser(XContent xContent, java.io.InputStream data)Create a newXContentParser.protected XContentParsercreateParser(XContent xContent, java.lang.String data)Create a newXContentParser.protected XContentParsercreateParser(XContent xContent, BytesReference data)Create a newXContentParser.static ESTestCase.TestAnalysiscreateTestAnalysis(Index index, Settings nodeSettings, Settings settings, AnalysisPlugin... analysisPlugins)Creates an TestAnalysis with all the default analyzers configured.static ESTestCase.TestAnalysiscreateTestAnalysis(Index index, Settings settings, AnalysisPlugin... analysisPlugins)Creates an TestAnalysis with all the default analyzers configured.static ESTestCase.TestAnalysiscreateTestAnalysis(IndexSettings indexSettings, Settings nodeSettings, AnalysisPlugin... analysisPlugins)Creates an TestAnalysis with all the default analyzers configured.protected booleanenableJodaDeprecationWarningsCheck()protected booleanenableWarningsCheck()Whether or not we check after each test whether it has left warnings behind.voidensureAllSearchContextsReleased()voidensureCheckIndexPassed()static voidensureSupportedLocale()static booleanfrequently()The exact opposite ofLuceneTestCase.rarely().static java.lang.String[]generateRandomStringArray(int maxArraySize, int stringSize, boolean allowNull)static java.lang.String[]generateRandomStringArray(int maxArraySize, int stringSize, boolean allowNull, boolean allowEmpty)protected static intgetBasePort()java.nio.file.PathgetBwcIndicesPath()java.nio.file.PathgetDataPath(java.lang.String relativePath)Returns aPathpointing to the class path relative resource given as the first argument.static java.lang.StringgetPortRange()Returns a unique port range for this JVM starting from the computed base portstatic TestRuleMarkFailuregetSuiteFailureMarker()Returns the suite failure marker: internal use only!static java.lang.Class<? extends Plugin>getTestTransportPlugin()static java.lang.StringgetTestTransportType()static booleaninFipsJvm()static intiterations(int min, int max)Returns a "scaled" number of iterations for loops which can have a variable iteration count.static <T> voidmaybeSet(java.util.function.Consumer<T> consumer, T value)helper to randomly perform onconsumerwithvaluestatic ScriptmockScript(java.lang.String id)Create a "mock" script for use either withMockScriptEngineor anywhere where you need a script but don't really care about its contents.NodeEnvironmentnewNodeEnvironment()NodeEnvironmentnewNodeEnvironment(Settings settings)static IndicesModulenewTestIndicesModule(java.util.Map<java.lang.String,Mapper.TypeParser> extraMappers, java.util.Map<java.lang.String,MetadataFieldMapper.TypeParser> extraMetadataMappers)Creates an IndicesModule for testing with the given mappers and metadata mappers.static ScriptModulenewTestScriptModule()static java.lang.StringrandomAlphaOfLength(int codeUnits)static java.lang.StringrandomAlphaOfLengthBetween(int minCodeUnits, int maxCodeUnits)static <T> T[]randomArray(int minArraySize, int maxArraySize, java.util.function.IntFunction<T[]> arrayConstructor, java.util.function.Supplier<T> valueConstructor)static <T> T[]randomArray(int maxArraySize, java.util.function.IntFunction<T[]> arrayConstructor, java.util.function.Supplier<T> valueConstructor)static booleanrandomBoolean()static byterandomByte()static byte[]randomByteArrayOfLength(int size)Helper method to create a byte array of a given length populated with random byte valuesstatic org.joda.time.DateTimeZonerandomDateTimeZone()generate a random DateTimeZone from the ones available in joda librarystatic doublerandomDouble()static doublerandomDoubleBetween(double start, double end, boolean lowerInclusive)Returns a double value in the interval [start, end) if lowerInclusive is set to true, (start, end) otherwise.static floatrandomFloat()static <T> TrandomFrom(java.util.Collection<T> collection)Pick a random object from the given collection.static <T> TrandomFrom(java.util.List<T> list)Pick a random object from the given list.static <T> TrandomFrom(java.util.Random random, java.util.Collection<T> collection)Pick a random object from the given collection.static <T> TrandomFrom(java.util.Random random, T... array)Pick a random object from the given array.static <T> TrandomFrom(T... array)Pick a random object from the given array.static java.lang.StringrandomGeohash(int minPrecision, int maxPrecision)static intrandomInt()static intrandomInt(int max)A random integer from 0..max (inclusive).static intrandomIntBetween(int min, int max)A random integer frommintomax(inclusive).static longrandomLong()static longrandomLongBetween(long min, long max)A random long number between min (inclusive) and max (inclusive).static longrandomNonNegativeLong()static java.lang.StringrandomPositiveTimeValue()static java.lang.StringrandomRealisticUnicodeOfCodepointLength(int codePoints)static java.lang.StringrandomRealisticUnicodeOfCodepointLengthBetween(int minCodePoints, int maxCodePoints)static java.lang.StringrandomRealisticUnicodeOfLength(int codeUnits)static java.lang.StringrandomRealisticUnicodeOfLengthBetween(int minCodeUnits, int maxCodeUnits)static shortrandomShort()static <T> java.util.List<T>randomSubsetOf(int size, java.util.Collection<T> collection)Returns size random valuesstatic <T> java.util.List<T>randomSubsetOf(int size, T... values)Returns size random valuesstatic <T> java.util.List<T>randomSubsetOf(java.util.Collection<T> collection)Returns a random subset of values (including a potential empty list, or the full original list)static java.lang.StringrandomTimeValue()static java.lang.StringrandomTimeValue(int lower, int upper)static java.lang.StringrandomTimeValue(int lower, int upper, java.lang.String... suffixes)static java.util.TimeZonerandomTimeZone()generate a random TimeZone from the ones available in java.utilstatic java.lang.StringrandomUnicodeOfCodepointLength(int codePoints)static java.lang.StringrandomUnicodeOfCodepointLengthBetween(int minCodePoints, int maxCodePoints)static java.lang.StringrandomUnicodeOfLength(int codeUnits)static java.lang.StringrandomUnicodeOfLengthBetween(int minCodeUnits, int maxCodeUnits)static <T> java.util.Set<T>randomUnique(java.util.function.Supplier<T> supplier, int targetCount)Builds a set of unique items.static <T> TrandomValueOtherThan(T input, java.util.function.Supplier<T> randomSupplier)helper to get a random value in a certain range that's different from the inputstatic <T> TrandomValueOtherThanMany(java.util.function.Predicate<T> input, java.util.function.Supplier<T> randomSupplier)helper to get a random value in a certain range that's different from the inputstatic java.time.ZoneIdrandomZone()generate a random TimeZone from the ones available in java.timevoidresetCheckIndexStatus()static voidresetPortCounter()static voidrestoreContentType()static voidrestoreFileSystem()static intscaledRandomIntBetween(int min, int max)Returns a "scaled" random number between min and max (inclusive).static voidsetContentType()static voidsetFileSystem()static voidsetPossibleRoles()static Settings.Buildersettings(Version version)Return consistent index settings for the provided index version.static java.util.LinkedHashMap<java.lang.String,java.lang.Object>shuffleMap(java.util.LinkedHashMap<java.lang.String,java.lang.Object> map, java.util.Set<java.lang.String> exceptFields)protected XContentBuildershuffleXContent(XContentBuilder builder, java.lang.String... exceptFieldNames)Randomly shuffles the fields inside objects in theXContentBuilderpassed in.static XContentBuildershuffleXContent(XContentParser parser, boolean prettyPrint, java.lang.String... exceptFieldNames)Randomly shuffles the fields inside objects parsed using theXContentParserpassed in.protected static longspinForAtLeastNMilliseconds(long ms)protected static longspinForAtLeastOneMillisecond()static booleanterminate(java.util.concurrent.ExecutorService... services)static booleanterminate(ThreadPool threadPool)java.lang.String[]tmpPaths()Returns a random number of temporary paths.protected BytesReferencetoShuffledXContent(ToXContent toXContent, XContentType xContentType, ToXContent.Params params, boolean humanReadable, java.lang.String... exceptFieldNames)Returns the bytes that represent the XContent output of the providedToXContentobject, using the providedXContentType.protected static BytesReferencetoShuffledXContent(ToXContent toXContent, XContentType xContentType, ToXContent.Params params, boolean humanReadable, CheckedBiFunction<XContent,BytesReference,XContentParser,java.io.IOException> parserFunction, java.lang.String... exceptFieldNames)Returns the bytes that represent the XContent output of the providedToXContentobject, using the providedXContentType.protected NamedWriteableRegistrywritableRegistry()TheNamedWriteableRegistryto use for this test.protected NamedXContentRegistryxContentRegistry()TheNamedXContentRegistryto use for this test.-
Methods inherited from class org.apache.lucene.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, closeAfterSuite, closeAfterTest, collate, createTempDir, createTempDir, createTempFile, createTempFile, dumpArray, dumpIterator, expectThrows, expectThrows, expectThrows, expectThrowsAnyOf, expectThrowsAnyOf, getBaseTempDirForTestClass, getDataInputStream, getOnlyLeafReader, getTestClass, getTestName, hasWorkingMMapOnWindows, isTestThread, localeForLanguageTag, maybeChangeLiveIndexWriterConfig, maybeWrapReader, newAlcoholicMergePolicy, newAlcoholicMergePolicy, 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, newStringField, newStringField, newStringField, newStringField, newTextField, newTextField, newTieredMergePolicy, newTieredMergePolicy, overrideDefaultQueryCache, overrideTestDefaultQueryCache, random, randomLocale, randomTimeZone, rarely, rarely, replaceMaxFailureRule, resetDefaultQueryCache, restoreCPUCoreCount, restoreIndexWriterMaxDocs, restoreSpins, runWithRestrictedPermissions, setIndexWriterMaxDocs, setUp, setupCPUCoreCount, setupSpins, slowFileExists, tearDown, 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, assertThat, assertThat, assertTrue, assertTrue, fail, fail
-
-
-
-
Field Detail
-
JODA_TIMEZONE_IDS
protected static final java.util.List<java.lang.String> JODA_TIMEZONE_IDS
-
JAVA_TIMEZONE_IDS
protected static final java.util.List<java.lang.String> JAVA_TIMEZONE_IDS
-
JAVA_ZONE_IDS
protected static final java.util.List<java.lang.String> JAVA_ZONE_IDS
-
TEST_WORKER_VM_ID
public static final java.lang.String TEST_WORKER_VM_ID
-
TEST_WORKER_SYS_PROPERTY
public static final java.lang.String TEST_WORKER_SYS_PROPERTY
- See Also:
- Constant Field Values
-
DEFAULT_TEST_WORKER_ID
public static final java.lang.String DEFAULT_TEST_WORKER_ID
- See Also:
- Constant Field Values
-
logger
protected final org.apache.logging.log4j.Logger logger
-
failureAndSuccessEvents
public org.junit.rules.RuleChain failureAndSuccessEvents
-
checkIndexFailed
public static boolean checkIndexFailed
MockFSDirectoryService sets this:
-
-
Method Detail
-
resetPortCounter
public static void resetPortCounter()
-
buildNewFakeTransportAddress
public static TransportAddress buildNewFakeTransportAddress()
Generates a new transport address usingTransportAddress.META_ADDRESSwith an incrementing port number. The port number starts at 0 and is reset after each test suite run.
-
afterIfFailed
protected void afterIfFailed(java.util.List<java.lang.Throwable> errors)
Called when a test fails, supplying the errors it generated. Not called when the test fails because assumptions are violated.
-
afterIfSuccessful
protected void afterIfSuccessful() throws java.lang.Exceptioncalled after a test is finished, but only if successful- Throws:
java.lang.Exception
-
setFileSystem
public static void setFileSystem() throws java.lang.Exception- Throws:
java.lang.Exception
-
restoreFileSystem
public static void restoreFileSystem() throws java.lang.Exception- Throws:
java.lang.Exception
-
setContentType
public static void setContentType() throws java.lang.Exception- Throws:
java.lang.Exception
-
restoreContentType
public static void restoreContentType()
-
ensureSupportedLocale
public static void ensureSupportedLocale()
-
before
public final void before()
-
setPossibleRoles
public static void setPossibleRoles()
-
clearPossibleRoles
public static void clearPossibleRoles()
-
enableWarningsCheck
protected boolean enableWarningsCheck()
Whether or not we check after each test whether it has left warnings behind. That happens if any deprecated feature or syntax was used by the test and the test didn't assert on it usingassertWarnings(String...).
-
enableJodaDeprecationWarningsCheck
protected boolean enableJodaDeprecationWarningsCheck()
-
after
public final void after() throws java.lang.Exception- Throws:
java.lang.Exception
-
assertSettingDeprecationsAndWarnings
protected final void assertSettingDeprecationsAndWarnings(Setting<?>[] settings, java.lang.String... warnings)
Convenience method to assert warnings for settings deprecations and general deprecation warnings.- Parameters:
settings- the settings that are expected to be deprecatedwarnings- other expected general deprecation warnings
-
assertSettingDeprecationsAndWarnings
protected final void assertSettingDeprecationsAndWarnings(java.lang.String[] settings, java.lang.String... warnings)
-
assertWarnings
protected final void assertWarnings(java.lang.String... expectedWarnings)
-
checkStaticState
protected static void checkStaticState(boolean afterClass) throws java.lang.Exception- Throws:
java.lang.Exception
-
ensureAllSearchContextsReleased
public final void ensureAllSearchContextsReleased() throws java.lang.Exception- Throws:
java.lang.Exception
-
resetCheckIndexStatus
public final void resetCheckIndexStatus() throws java.lang.Exception- Throws:
java.lang.Exception
-
ensureCheckIndexPassed
public final void ensureCheckIndexPassed()
-
scaledRandomIntBetween
public static int scaledRandomIntBetween(int min, int max)Returns a "scaled" random number between min and max (inclusive).- See Also:
RandomizedTest.scaledRandomIntBetween(int, int)
-
randomIntBetween
public static int randomIntBetween(int min, int max)A random integer frommintomax(inclusive).- See Also:
scaledRandomIntBetween(int, int)
-
randomLongBetween
public static long randomLongBetween(long min, long max)A random long number between min (inclusive) and max (inclusive).
-
iterations
public static int iterations(int min, int max)Returns a "scaled" number of iterations for loops which can have a variable iteration count. This method is effectively an alias toscaledRandomIntBetween(int, int).
-
between
public static int between(int min, int max)An alias forrandomIntBetween(int, int).- See Also:
scaledRandomIntBetween(int, int)
-
frequently
public static boolean frequently()
The exact opposite ofLuceneTestCase.rarely().
-
randomBoolean
public static boolean randomBoolean()
-
randomByte
public static byte randomByte()
-
randomByteArrayOfLength
public static byte[] randomByteArrayOfLength(int size)
Helper method to create a byte array of a given length populated with random byte values- See Also:
randomByte()
-
randomShort
public static short randomShort()
-
randomInt
public static int randomInt()
-
randomNonNegativeLong
public static long randomNonNegativeLong()
- Returns:
- a
longbetween0andLong.MAX_VALUE(inclusive) chosen uniformly at random.
-
randomFloat
public static float randomFloat()
-
randomDouble
public static double randomDouble()
-
randomDoubleBetween
public static double randomDoubleBetween(double start, double end, boolean lowerInclusive)Returns a double value in the interval [start, end) if lowerInclusive is set to true, (start, end) otherwise.- Parameters:
start- lower bound of interval to draw uniformly distributed random numbers fromend- upper boundlowerInclusive- whether or not to include lower end of the interval
-
randomLong
public static long randomLong()
-
randomInt
public static int randomInt(int max)
A random integer from 0..max (inclusive).
-
randomFrom
public static <T> T randomFrom(T... array)
Pick a random object from the given array. The array must not be empty.
-
randomFrom
public static <T> T randomFrom(java.util.Random random, T... array)Pick a random object from the given array. The array must not be empty.
-
randomFrom
public static <T> T randomFrom(java.util.List<T> list)
Pick a random object from the given list.
-
randomFrom
public static <T> T randomFrom(java.util.Collection<T> collection)
Pick a random object from the given collection.
-
randomFrom
public static <T> T randomFrom(java.util.Random random, java.util.Collection<T> collection)Pick a random object from the given collection.
-
randomAlphaOfLengthBetween
public static java.lang.String randomAlphaOfLengthBetween(int minCodeUnits, int maxCodeUnits)
-
randomAlphaOfLength
public static java.lang.String randomAlphaOfLength(int codeUnits)
-
randomUnicodeOfLengthBetween
public static java.lang.String randomUnicodeOfLengthBetween(int minCodeUnits, int maxCodeUnits)
-
randomUnicodeOfLength
public static java.lang.String randomUnicodeOfLength(int codeUnits)
-
randomUnicodeOfCodepointLengthBetween
public static java.lang.String randomUnicodeOfCodepointLengthBetween(int minCodePoints, int maxCodePoints)
-
randomUnicodeOfCodepointLength
public static java.lang.String randomUnicodeOfCodepointLength(int codePoints)
-
randomRealisticUnicodeOfLengthBetween
public static java.lang.String randomRealisticUnicodeOfLengthBetween(int minCodeUnits, int maxCodeUnits)
-
randomRealisticUnicodeOfLength
public static java.lang.String randomRealisticUnicodeOfLength(int codeUnits)
-
randomRealisticUnicodeOfCodepointLengthBetween
public static java.lang.String randomRealisticUnicodeOfCodepointLengthBetween(int minCodePoints, int maxCodePoints)
-
randomRealisticUnicodeOfCodepointLength
public static java.lang.String randomRealisticUnicodeOfCodepointLength(int codePoints)
-
generateRandomStringArray
public static java.lang.String[] generateRandomStringArray(int maxArraySize, int stringSize, boolean allowNull, boolean allowEmpty)
-
generateRandomStringArray
public static java.lang.String[] generateRandomStringArray(int maxArraySize, int stringSize, boolean allowNull)
-
randomArray
public static <T> T[] randomArray(int maxArraySize, java.util.function.IntFunction<T[]> arrayConstructor, java.util.function.Supplier<T> valueConstructor)
-
randomArray
public static <T> T[] randomArray(int minArraySize, int maxArraySize, java.util.function.IntFunction<T[]> arrayConstructor, java.util.function.Supplier<T> valueConstructor)
-
randomTimeValue
public static java.lang.String randomTimeValue(int lower, int upper, java.lang.String... suffixes)
-
randomTimeValue
public static java.lang.String randomTimeValue(int lower, int upper)
-
randomTimeValue
public static java.lang.String randomTimeValue()
-
randomPositiveTimeValue
public static java.lang.String randomPositiveTimeValue()
-
randomDateTimeZone
public static org.joda.time.DateTimeZone randomDateTimeZone()
generate a random DateTimeZone from the ones available in joda library
-
randomTimeZone
public static java.util.TimeZone randomTimeZone()
generate a random TimeZone from the ones available in java.util
-
randomZone
public static java.time.ZoneId randomZone()
generate a random TimeZone from the ones available in java.time
-
maybeSet
public static <T> void maybeSet(java.util.function.Consumer<T> consumer, T value)helper to randomly perform onconsumerwithvalue
-
randomValueOtherThan
public static <T> T randomValueOtherThan(T input, java.util.function.Supplier<T> randomSupplier)helper to get a random value in a certain range that's different from the input
-
randomValueOtherThanMany
public static <T> T randomValueOtherThanMany(java.util.function.Predicate<T> input, java.util.function.Supplier<T> randomSupplier)helper to get a random value in a certain range that's different from the input
-
assertBusy
public static void assertBusy(CheckedRunnable<java.lang.Exception> codeBlock) throws java.lang.Exception
Runs the code block for 10 seconds waiting for no assertion to trip.- Throws:
java.lang.Exception
-
assertBusy
public static void assertBusy(CheckedRunnable<java.lang.Exception> codeBlock, long maxWaitTime, java.util.concurrent.TimeUnit unit) throws java.lang.Exception
Runs the code block for the provided interval, waiting for no assertions to trip.- Throws:
java.lang.Exception
-
awaitBusy
public static boolean awaitBusy(java.util.function.BooleanSupplier breakSupplier) throws java.lang.InterruptedException- Throws:
java.lang.InterruptedException
-
awaitBusy
public static boolean awaitBusy(java.util.function.BooleanSupplier breakSupplier, long maxWaitTime, java.util.concurrent.TimeUnit unit) throws java.lang.InterruptedException- Throws:
java.lang.InterruptedException
-
terminate
public static boolean terminate(java.util.concurrent.ExecutorService... services)
-
terminate
public static boolean terminate(ThreadPool threadPool)
-
getDataPath
public java.nio.file.Path getDataPath(java.lang.String relativePath)
Returns aPathpointing to the class path relative resource given as the first argument. In contrast togetClass().getResource(...).getFile()this method will not return URL encoded paths if the parent path contains spaces or other non-standard characters.- Overrides:
getDataPathin classLuceneTestCase
-
getBwcIndicesPath
public java.nio.file.Path getBwcIndicesPath()
-
tmpPaths
public java.lang.String[] tmpPaths()
Returns a random number of temporary paths.
-
newNodeEnvironment
public NodeEnvironment newNodeEnvironment() throws java.io.IOException
- Throws:
java.io.IOException
-
newNodeEnvironment
public NodeEnvironment newNodeEnvironment(Settings settings) throws java.io.IOException
- Throws:
java.io.IOException
-
settings
public static Settings.Builder settings(Version version)
Return consistent index settings for the provided index version.
-
randomSubsetOf
public static <T> java.util.List<T> randomSubsetOf(int size, T... values)Returns size random values
-
randomSubsetOf
public static <T> java.util.List<T> randomSubsetOf(java.util.Collection<T> collection)
Returns a random subset of values (including a potential empty list, or the full original list)
-
randomSubsetOf
public static <T> java.util.List<T> randomSubsetOf(int size, java.util.Collection<T> collection)Returns size random values
-
randomUnique
public static <T> java.util.Set<T> randomUnique(java.util.function.Supplier<T> supplier, int targetCount)Builds a set of unique items. Usually you'll get the requested count but you might get less than that number if the supplier returns lots of repeats. Make sure that the items properly implement equals and hashcode.
-
randomGeohash
public static java.lang.String randomGeohash(int minPrecision, int maxPrecision)
-
getTestTransportType
public static java.lang.String getTestTransportType()
-
getTestTransportPlugin
public static java.lang.Class<? extends Plugin> getTestTransportPlugin()
-
toShuffledXContent
protected final BytesReference toShuffledXContent(ToXContent toXContent, XContentType xContentType, ToXContent.Params params, boolean humanReadable, java.lang.String... exceptFieldNames) throws java.io.IOException
Returns the bytes that represent the XContent output of the providedToXContentobject, using the providedXContentType. Wraps the output into a new anonymous object according to the value returned by theToXContent.isFragment()method returns. Shuffles the keys to make sure that parsing never relies on keys ordering.- Throws:
java.io.IOException
-
toShuffledXContent
protected static BytesReference toShuffledXContent(ToXContent toXContent, XContentType xContentType, ToXContent.Params params, boolean humanReadable, CheckedBiFunction<XContent,BytesReference,XContentParser,java.io.IOException> parserFunction, java.lang.String... exceptFieldNames) throws java.io.IOException
Returns the bytes that represent the XContent output of the providedToXContentobject, using the providedXContentType. Wraps the output into a new anonymous object according to the value returned by theToXContent.isFragment()method returns. Shuffles the keys to make sure that parsing never relies on keys ordering.- Throws:
java.io.IOException
-
shuffleXContent
protected final XContentBuilder shuffleXContent(XContentBuilder builder, java.lang.String... exceptFieldNames) throws java.io.IOException
Randomly shuffles the fields inside objects in theXContentBuilderpassed in. Recursively goes through inner objects and also shuffles them. Exceptions for this recursive shuffling behavior can be made by passing in the names of fields which internally should stay untouched.- Throws:
java.io.IOException
-
shuffleXContent
public static XContentBuilder shuffleXContent(XContentParser parser, boolean prettyPrint, java.lang.String... exceptFieldNames) throws java.io.IOException
Randomly shuffles the fields inside objects parsed using theXContentParserpassed in. Recursively goes through inner objects and also shuffles them. Exceptions for this recursive shuffling behavior can be made by passing in the names of fields which internally should stay untouched.- Throws:
java.io.IOException
-
shuffleMap
public static java.util.LinkedHashMap<java.lang.String,java.lang.Object> shuffleMap(java.util.LinkedHashMap<java.lang.String,java.lang.Object> map, java.util.Set<java.lang.String> exceptFields)
-
copyWriteable
public static <T extends Writeable> T copyWriteable(T original, NamedWriteableRegistry namedWriteableRegistry, Writeable.Reader<T> reader) throws java.io.IOException
Create a copy of an originalWriteableobject by running it through aBytesStreamOutputand reading it in again using a providedWriteable.Reader. The stream that is wrapped around theStreamInputpotentially need to use aNamedWriteableRegistry, so this needs to be provided too (although it can be empty if the object that is streamed doesn't contain anyNamedWriteableobjects itself.- Throws:
java.io.IOException
-
copyWriteable
public static <T extends Writeable> T copyWriteable(T original, NamedWriteableRegistry namedWriteableRegistry, Writeable.Reader<T> reader, Version version) throws java.io.IOException
Same ascopyWriteable(Writeable, NamedWriteableRegistry, Writeable.Reader)but also allows to provide aVersionargument which will be used to write and read back the object.- Throws:
java.io.IOException
-
copyStreamable
public static <T extends Streamable> T copyStreamable(T original, NamedWriteableRegistry namedWriteableRegistry, java.util.function.Supplier<T> supplier, Version version) throws java.io.IOException
Create a copy of an originalStreamableobject by running it through aBytesStreamOutputand reading it in again using a providedWriteable.Reader. The stream that is wrapped around theStreamInputpotentially need to use aNamedWriteableRegistry, so this needs to be provided too (although it can be empty if the object that is streamed doesn't contain anyNamedWriteableobjects itself.- Throws:
java.io.IOException
-
copyInstance
protected static <T> T copyInstance(T original, NamedWriteableRegistry namedWriteableRegistry, Writeable.Writer<T> writer, Writeable.Reader<T> reader, Version version) throws java.io.IOException- Throws:
java.io.IOException
-
assertAllIndicesRemovedAndDeletionCompleted
public void assertAllIndicesRemovedAndDeletionCompleted(java.lang.Iterable<IndicesService> indicesServices) throws java.lang.Exception
- Throws:
java.lang.Exception
-
assertPathHasBeenCleared
public void assertPathHasBeenCleared(java.nio.file.Path path)
Asserts that there are no files in the specified path
-
assertEqualsWithErrorMessageFromXContent
public static <T extends ToXContent> void assertEqualsWithErrorMessageFromXContent(T expected, T actual)
Assert that two objects are equals, callingToXContent.toXContent(XContentBuilder, ToXContent.Params)to print out their differences if they aren't equal.
-
createParser
protected final XContentParser createParser(XContentBuilder builder) throws java.io.IOException
Create a newXContentParser.- Throws:
java.io.IOException
-
createParser
protected final XContentParser createParser(XContent xContent, java.lang.String data) throws java.io.IOException
Create a newXContentParser.- Throws:
java.io.IOException
-
createParser
protected final XContentParser createParser(XContent xContent, java.io.InputStream data) throws java.io.IOException
Create a newXContentParser.- Throws:
java.io.IOException
-
createParser
protected final XContentParser createParser(XContent xContent, byte[] data) throws java.io.IOException
Create a newXContentParser.- Throws:
java.io.IOException
-
createParser
protected final XContentParser createParser(XContent xContent, BytesReference data) throws java.io.IOException
Create a newXContentParser.- Throws:
java.io.IOException
-
xContentRegistry
protected NamedXContentRegistry xContentRegistry()
TheNamedXContentRegistryto use for this test. Subclasses should override and use liberally.
-
writableRegistry
protected NamedWriteableRegistry writableRegistry()
TheNamedWriteableRegistryto use for this test. Subclasses should override and use liberally.
-
mockScript
public static final Script mockScript(java.lang.String id)
Create a "mock" script for use either withMockScriptEngineor anywhere where you need a script but don't really care about its contents.
-
getSuiteFailureMarker
public static TestRuleMarkFailure getSuiteFailureMarker()
Returns the suite failure marker: internal use only!
-
assertArrayEquals
public static void assertArrayEquals(java.lang.StackTraceElement[] expected, java.lang.StackTraceElement[] actual)Compares two stack traces, ignoring module (which is not yet serialized)
-
assertEquals
public static void assertEquals(java.lang.StackTraceElement expected, java.lang.StackTraceElement actual)Compares two stack trace elements, ignoring module (which is not yet serialized)
-
spinForAtLeastOneMillisecond
protected static long spinForAtLeastOneMillisecond()
-
spinForAtLeastNMilliseconds
protected static long spinForAtLeastNMilliseconds(long ms)
-
createTestAnalysis
public static ESTestCase.TestAnalysis createTestAnalysis(Index index, Settings settings, AnalysisPlugin... analysisPlugins) throws java.io.IOException
Creates an TestAnalysis with all the default analyzers configured.- Throws:
java.io.IOException
-
createTestAnalysis
public static ESTestCase.TestAnalysis createTestAnalysis(Index index, Settings nodeSettings, Settings settings, AnalysisPlugin... analysisPlugins) throws java.io.IOException
Creates an TestAnalysis with all the default analyzers configured.- Throws:
java.io.IOException
-
createTestAnalysis
public static ESTestCase.TestAnalysis createTestAnalysis(IndexSettings indexSettings, Settings nodeSettings, AnalysisPlugin... analysisPlugins) throws java.io.IOException
Creates an TestAnalysis with all the default analyzers configured.- Throws:
java.io.IOException
-
newTestScriptModule
public static ScriptModule newTestScriptModule()
-
newTestIndicesModule
public static IndicesModule newTestIndicesModule(java.util.Map<java.lang.String,Mapper.TypeParser> extraMappers, java.util.Map<java.lang.String,MetadataFieldMapper.TypeParser> extraMetadataMappers)
Creates an IndicesModule for testing with the given mappers and metadata mappers.
-
inFipsJvm
public static boolean inFipsJvm()
-
getPortRange
public static java.lang.String getPortRange()
Returns a unique port range for this JVM starting from the computed base port
-
getBasePort
protected static int getBasePort()
-
-