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,AbstractBlobContainerRetriesTestCase,AbstractBootstrapCheckTestCase,AbstractBuilderTestCase,AbstractBytesReferenceTestCase,AbstractCoordinatorTestCase,AbstractHttpServerTransportTestCase,AbstractMultiClustersTestCase,AbstractSchemaValidationTestCase,AbstractSimpleTransportTestCase,AbstractWireTestCase,AbstractXContentTestCase,AggregatorTestCase,AnalysisFactoryTestCase,BasePipelineAggregationTestCase,CommandTestCase,EngineTestCase,ESAllocationTestCase,ESIndexInputTestCase,ESIntegTestCase,ESRestTestCase,ESSingleNodeTestCase,FieldTypeTestCase,IndexShardTestCase,MapperServiceTestCase,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 org.apache.lucene.util.LuceneTestCase
Base testcase for randomized unit testing with Elasticsearch
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classstatic classThis 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
org.apache.lucene.util.LuceneTestCase.AwaitsFix, org.apache.lucene.util.LuceneTestCase.BadApple, org.apache.lucene.util.LuceneTestCase.Monster, org.apache.lucene.util.LuceneTestCase.Nightly, org.apache.lucene.util.LuceneTestCase.Slow, org.apache.lucene.util.LuceneTestCase.SuppressCodecs, org.apache.lucene.util.LuceneTestCase.SuppressFileSystems, org.apache.lucene.util.LuceneTestCase.SuppressFsync, org.apache.lucene.util.LuceneTestCase.SuppressReproduceLine, org.apache.lucene.util.LuceneTestCase.SuppressSysoutChecks, org.apache.lucene.util.LuceneTestCase.SuppressTempFileChecks, org.apache.lucene.util.LuceneTestCase.ThrowingRunnable, org.apache.lucene.util.LuceneTestCase.Weekly -
Field Summary
FieldsModifier and TypeFieldDescriptionMockFSDirectoryService sets this:protected static org.elasticsearch.common.io.stream.NamedWriteableRegistrystatic Stringorg.junit.rules.RuleChainstatic Stringprotected org.apache.logging.log4j.Loggerstatic intstatic Stringstatic StringFields 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 -
Method Summary
Modifier and TypeMethodDescriptionvoidafter()protected voidafterIfFailed(List<Throwable> errors)Called when a test fails, supplying the errors it generated.protected voidcalled after a test is finished, but only if successfulprotected voidallowedWarnings(String... allowedWarnings)Allow the given warnings, but don't require their presence.static voidassertArrayEquals(StackTraceElement[] expected, StackTraceElement[] actual)Compares two stack traces, ignoring module (which is not yet serialized)static voidassertBusy(org.elasticsearch.core.CheckedRunnable<Exception> codeBlock)Runs the code block for 10 seconds waiting for no assertion to trip.static voidassertBusy(org.elasticsearch.core.CheckedRunnable<Exception> codeBlock, long maxWaitTime, TimeUnit unit)Runs the code block for the provided interval, waiting for no assertions to trip.static voidassertEquals(StackTraceElement expected, StackTraceElement actual)Compares two stack trace elements, ignoring module (which is not yet serialized)protected voidassertSettingDeprecationsAndWarnings(String[] settings, String... warnings)protected voidassertSettingDeprecationsAndWarnings(org.elasticsearch.common.settings.Setting<?>[] settings, String... warnings)Convenience method to assert warnings for settings deprecations and general deprecation warnings.protected voidassertWarnings(boolean stripXContentPosition, String... expectedWarnings)protected voidassertWarnings(String... expectedWarnings)voidbefore()static intbetween(int min, int max)An alias forrandomIntBetween(int, int).org.elasticsearch.common.settings.SettingsbuildEnvSettings(org.elasticsearch.common.settings.Settings settings)static org.elasticsearch.common.transport.TransportAddressGenerates a new transport address usingTransportAddress.META_ADDRESSwith an incrementing port number.protected static voidstatic voidprotected static <T> TcopyInstance(T original, org.elasticsearch.common.io.stream.NamedWriteableRegistry namedWriteableRegistry, org.elasticsearch.common.io.stream.Writeable.Writer<T> writer, org.elasticsearch.common.io.stream.Writeable.Reader<T> reader, org.elasticsearch.Version version)static <T extends org.elasticsearch.common.io.stream.NamedWriteable>
TcopyNamedWriteable(T original, org.elasticsearch.common.io.stream.NamedWriteableRegistry namedWriteableRegistry, Class<T> categoryClass)Create a copy of an originalNamedWriteableobject by running it through aBytesStreamOutputand reading it in again using a providedWriteable.Reader.static <T extends org.elasticsearch.common.io.stream.NamedWriteable>
TcopyNamedWriteable(T original, org.elasticsearch.common.io.stream.NamedWriteableRegistry namedWriteableRegistry, Class<T> categoryClass, org.elasticsearch.Version version)Same ascopyNamedWriteable(NamedWriteable, NamedWriteableRegistry, Class)but also allows to provide aVersionargument which will be used to write and read back the object.static <T extends org.elasticsearch.common.io.stream.Writeable>
TcopyWriteable(T original, org.elasticsearch.common.io.stream.NamedWriteableRegistry namedWriteableRegistry, org.elasticsearch.common.io.stream.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 org.elasticsearch.common.io.stream.Writeable>
TcopyWriteable(T original, org.elasticsearch.common.io.stream.NamedWriteableRegistry namedWriteableRegistry, org.elasticsearch.common.io.stream.Writeable.Reader<T> reader, org.elasticsearch.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 org.elasticsearch.index.analysis.IndexAnalyzersCreates an IndexAnalyzers with a single default analyzerprotected org.elasticsearch.common.xcontent.XContentParsercreateParser(org.elasticsearch.common.xcontent.NamedXContentRegistry namedXContentRegistry, org.elasticsearch.common.xcontent.XContent xContent, org.elasticsearch.common.bytes.BytesReference data)Create a newXContentParser.protected org.elasticsearch.common.xcontent.XContentParsercreateParser(org.elasticsearch.common.xcontent.XContentBuilder builder)Create a newXContentParser.protected org.elasticsearch.common.xcontent.XContentParsercreateParser(org.elasticsearch.common.xcontent.XContent xContent, byte[] data)Create a newXContentParser.protected org.elasticsearch.common.xcontent.XContentParsercreateParser(org.elasticsearch.common.xcontent.XContent xContent, InputStream data)Create a newXContentParser.protected org.elasticsearch.common.xcontent.XContentParsercreateParser(org.elasticsearch.common.xcontent.XContent xContent, String data)Create a newXContentParser.protected org.elasticsearch.common.xcontent.XContentParsercreateParser(org.elasticsearch.common.xcontent.XContent xContent, org.elasticsearch.common.bytes.BytesReference data)Create a newXContentParser.static ESTestCase.TestAnalysiscreateTestAnalysis(org.elasticsearch.index.Index index, org.elasticsearch.common.settings.Settings nodeSettings, org.elasticsearch.common.settings.Settings settings, org.elasticsearch.plugins.AnalysisPlugin... analysisPlugins)Creates an TestAnalysis with all the default analyzers configured.static ESTestCase.TestAnalysiscreateTestAnalysis(org.elasticsearch.index.Index index, org.elasticsearch.common.settings.Settings settings, org.elasticsearch.plugins.AnalysisPlugin... analysisPlugins)Creates an TestAnalysis with all the default analyzers configured.static ESTestCase.TestAnalysiscreateTestAnalysis(org.elasticsearch.index.IndexSettings indexSettings, org.elasticsearch.common.settings.Settings nodeSettings, org.elasticsearch.plugins.AnalysisPlugin... analysisPlugins)Creates an TestAnalysis with all the default analyzers configured.protected booleanprotected booleanWhether or not we check after each test whether it has left warnings behind.voidvoidstatic voidstatic booleanThe exact opposite ofLuceneTestCase.rarely().static String[]generateRandomStringArray(int maxArraySize, int stringSize, boolean allowNull)static String[]generateRandomStringArray(int maxArraySize, int stringSize, boolean allowNull, boolean allowEmpty)protected static intgetDataPath(String relativePath)Returns aPathpointing to the class path relative resource given as the first argument.static StringReturns a unique port range for this JVM starting from the computed base portstatic org.apache.lucene.util.TestRuleMarkFailureReturns the suite failure marker: internal use only!static Class<? extends org.elasticsearch.plugins.Plugin>static Stringstatic booleanstatic intiterations(int min, int max)Returns a "scaled" number of iterations for loops which can have a variable iteration count.static <T> voidhelper to randomly perform onconsumerwithvaluestatic org.elasticsearch.script.ScriptmockScript(String id)Create a "mock" script for use either withMockScriptEngineor anywhere where you need a script but don't really care about its contents.org.elasticsearch.env.Environmentorg.elasticsearch.env.EnvironmentnewEnvironment(org.elasticsearch.common.settings.Settings settings)org.elasticsearch.env.NodeEnvironmentorg.elasticsearch.env.NodeEnvironmentnewNodeEnvironment(org.elasticsearch.common.settings.Settings settings)static StringrandomAlphaOfLength(int codeUnits)static StringrandomAlphaOfLengthBetween(int minCodeUnits, int maxCodeUnits)static <T> T[]randomArray(int minArraySize, int maxArraySize, IntFunction<T[]> arrayConstructor, Supplier<T> valueConstructor)static <T> T[]randomArray(int maxArraySize, IntFunction<T[]> arrayConstructor, Supplier<T> valueConstructor)static BigIntegerReturns a random BigInteger uniformly distributed over the range 0 to (2^64 - 1) inclusive Currently BigIntegers are only used for unsigned_long field type, where the max value is 2^64 - 1.static booleanstatic bytestatic byte[]randomByteArrayOfLength(int size)Helper method to create a byte array of a given length populated with random byte valuesstatic StringGenerate a random valid date formatter pattern.static org.joda.time.DateTimeZonegenerate a random DateTimeZone from the ones available in joda librarystatic doublestatic 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 floatstatic <T> TrandomFrom(Collection<T> collection)Pick a random object from the given collection.static <T> TrandomFrom(List<T> list)Pick a random object from the given list.static <T> TrandomFrom(Random random, Collection<T> collection)Pick a random object from the given collection.static <T> TrandomFrom(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 StringrandomGeohash(int minPrecision, int maxPrecision)static intstatic intrandomInt(int max)A random integer from 0..max (inclusive).static intrandomIntBetween(int min, int max)A random integer frommintomax(inclusive).protected static InetAddressrandomIp(boolean v4)static <T> List<T>randomList(int minListSize, int maxListSize, Supplier<T> valueConstructor)static <T> List<T>randomList(int maxListSize, Supplier<T> valueConstructor)static longstatic longrandomLongBetween(long min, long max)A random long number between min (inclusive) and max (inclusive).static <K, V> Map<K,V>randomMap(int minMapSize, int maxMapSize, Supplier<org.elasticsearch.core.Tuple<K,V>> entryConstructor)longgenerate a random epoch millis in a range 1 to 9999-12-31T23:59:59.999static bytestatic longstatic Stringstatic StringrandomRealisticUnicodeOfCodepointLength(int codePoints)static StringrandomRealisticUnicodeOfCodepointLengthBetween(int minCodePoints, int maxCodePoints)static StringrandomRealisticUnicodeOfLength(int codeUnits)static StringrandomRealisticUnicodeOfLengthBetween(int minCodeUnits, int maxCodeUnits)static shortstatic <T> List<T>randomSubsetOf(int size, Collection<T> collection)Returns size random valuesstatic <T> List<T>randomSubsetOf(int size, T... values)Returns size random valuesstatic <T> List<T>randomSubsetOf(Collection<T> collection)Returns a random subset of values (including a potential empty list, or the full original list)static Stringstatic StringrandomTimeValue(int lower, int upper)static StringrandomTimeValue(int lower, int upper, String... suffixes)static TimeZonegenerate a random TimeZone from the ones available in java.utilstatic StringrandomUnicodeOfCodepointLength(int codePoints)static StringrandomUnicodeOfCodepointLengthBetween(int minCodePoints, int maxCodePoints)static StringrandomUnicodeOfLength(int codeUnits)static StringrandomUnicodeOfLengthBetween(int minCodeUnits, int maxCodeUnits)static <T> Set<T>randomUnique(Supplier<T> supplier, int targetCount)Builds a set of unique items.static <T> TrandomValueOtherThan(T input, Supplier<T> randomSupplier)helper to get a random value in a certain range that's different from the inputstatic <T> TrandomValueOtherThanMany(Predicate<T> input, Supplier<T> randomSupplier)helper to get a random value in a certain range that's different from the inputstatic ZoneIdgenerate a random TimeZone from the ones available in java.timevoidvoidstatic voidstatic voidstatic voidstatic intscaledRandomIntBetween(int min, int max)Returns a "scaled" random number between min and max (inclusive).static voidstatic voidvoidstatic org.elasticsearch.common.settings.Settings.Buildersettings(org.elasticsearch.Version version)Return consistent index settings for the provided index version.static LinkedHashMap<String,Object>shuffleMap(LinkedHashMap<String,Object> map, Set<String> exceptFields)protected org.elasticsearch.common.xcontent.XContentBuildershuffleXContent(org.elasticsearch.common.xcontent.XContentBuilder builder, String... exceptFieldNames)Randomly shuffles the fields inside objects in theXContentBuilderpassed in.static org.elasticsearch.common.xcontent.XContentBuildershuffleXContent(org.elasticsearch.common.xcontent.XContentParser parser, boolean prettyPrint, String... exceptFieldNames)Randomly shuffles the fields inside objects parsed using theXContentParserpassed in.protected static longspinForAtLeastNMilliseconds(long ms)protected static longstatic booleanterminate(ExecutorService... services)static booleanterminate(org.elasticsearch.threadpool.ThreadPool threadPool)String[]tmpPaths()Returns a random number of temporary paths.protected org.elasticsearch.common.bytes.BytesReferencetoShuffledXContent(org.elasticsearch.common.xcontent.ToXContent toXContent, org.elasticsearch.common.xcontent.XContentType xContentType, org.elasticsearch.common.xcontent.ToXContent.Params params, boolean humanReadable, String... exceptFieldNames)Returns the bytes that represent the XContent output of the providedToXContentobject, using the providedXContentType.static booleanwaitUntil(BooleanSupplier breakSupplier)Periodically execute the supplied function until it returns true, or a timeout is reached.static booleanwaitUntil(BooleanSupplier breakSupplier, long maxWaitTime, TimeUnit unit)Periodically execute the supplied function until it returns true, or until the specified maximum wait time has elapsed.protected org.elasticsearch.common.io.stream.NamedWriteableRegistryTheNamedWriteableRegistryto use for this test.protected org.elasticsearch.common.xcontent.NamedXContentRegistryTheNamedXContentRegistryto 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, callStackContains, callStackContains, callStackContainsAnyOf, closeAfterSuite, closeAfterTest, collate, createTempDir, createTempDir, createTempFile, createTempFile, dumpArray, dumpIterator, ensureSaneIWCOnNightly, 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, wrapReaderMethods 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 Details
-
JODA_TIMEZONE_IDS
-
JAVA_TIMEZONE_IDS
-
JAVA_ZONE_IDS
-
MIN_PRIVATE_PORT
public static final int MIN_PRIVATE_PORT- See Also:
- Constant Field Values
-
TEST_WORKER_VM_ID
-
TEST_WORKER_SYS_PROPERTY
- See Also:
- Constant Field Values
-
DEFAULT_TEST_WORKER_ID
- See Also:
- Constant Field Values
-
FIPS_SYSPROP
- See Also:
- Constant Field Values
-
logger
protected final org.apache.logging.log4j.Logger logger -
failureAndSuccessEvents
public org.junit.rules.RuleChain failureAndSuccessEvents -
checkIndexFailures
MockFSDirectoryService sets this: -
DEFAULT_NAMED_WRITABLE_REGISTRY
protected static final org.elasticsearch.common.io.stream.NamedWriteableRegistry DEFAULT_NAMED_WRITABLE_REGISTRY
-
-
Constructor Details
-
ESTestCase
public ESTestCase()
-
-
Method Details
-
resetPortCounter
public static void resetPortCounter() -
buildNewFakeTransportAddress
public static org.elasticsearch.common.transport.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
Called when a test fails, supplying the errors it generated. Not called when the test fails because assumptions are violated. -
afterIfSuccessful
called after a test is finished, but only if successful- Throws:
Exception
-
setFileSystem
- Throws:
Exception
-
restoreFileSystem
- Throws:
Exception
-
setContentType
- Throws:
Exception
-
restoreContentType
public static void restoreContentType() -
ensureSupportedLocale
public static void ensureSupportedLocale() -
setHeaderWarningAppender
public void setHeaderWarningAppender() -
removeHeaderWarningAppender
public void removeHeaderWarningAppender() -
before
public final void before() -
clearAdditionalRoles
public static void clearAdditionalRoles() -
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
- Throws:
Exception
-
filteredWarnings
-
assertSettingDeprecationsAndWarnings
protected final void assertSettingDeprecationsAndWarnings(org.elasticsearch.common.settings.Setting<?>[] settings, 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
-
assertWarnings
-
allowedWarnings
Allow the given warnings, but don't require their presence. -
assertWarnings
-
checkStaticState
- Throws:
Exception
-
ensureAllSearchContextsReleased
- Throws:
Exception
-
resetCheckIndexStatus
- Throws:
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() -
randomNonNegativeByte
public static byte randomNonNegativeByte() -
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() -
randomBigInteger
Returns a random BigInteger uniformly distributed over the range 0 to (2^64 - 1) inclusive Currently BigIntegers are only used for unsigned_long field type, where the max value is 2^64 - 1. Modify this random generator if a wider range for BigIntegers is necessary.- Returns:
- a random bigInteger in the range [0 ; 2^64 - 1]
-
randomInt
public static int randomInt(int max)A random integer from 0..max (inclusive). -
randomFrom
Pick a random object from the given array. The array must not be empty. -
randomFrom
Pick a random object from the given array. The array must not be empty. -
randomFrom
Pick a random object from the given list. -
randomFrom
Pick a random object from the given collection. -
randomFrom
Pick a random object from the given collection. -
randomAlphaOfLengthBetween
-
randomAlphaOfLength
-
randomUnicodeOfLengthBetween
-
randomUnicodeOfLength
-
randomUnicodeOfCodepointLengthBetween
-
randomUnicodeOfCodepointLength
-
randomRealisticUnicodeOfLengthBetween
-
randomRealisticUnicodeOfLength
-
randomRealisticUnicodeOfCodepointLengthBetween
public static String randomRealisticUnicodeOfCodepointLengthBetween(int minCodePoints, int maxCodePoints) -
randomRealisticUnicodeOfCodepointLength
-
generateRandomStringArray
public static String[] generateRandomStringArray(int maxArraySize, int stringSize, boolean allowNull, boolean allowEmpty)- Parameters:
maxArraySize- The maximum number of elements in the random arraystringSize- The length of each String in the arrayallowNull- Whether the returned array may be nullallowEmpty- Whether the returned array may be empty (have zero elements)
-
generateRandomStringArray
public static String[] generateRandomStringArray(int maxArraySize, int stringSize, boolean allowNull) -
randomArray
public static <T> T[] randomArray(int maxArraySize, IntFunction<T[]> arrayConstructor, Supplier<T> valueConstructor) -
randomArray
public static <T> T[] randomArray(int minArraySize, int maxArraySize, IntFunction<T[]> arrayConstructor, Supplier<T> valueConstructor) -
randomList
-
randomList
-
randomMap
-
randomTimeValue
-
randomTimeValue
-
randomTimeValue
-
randomPositiveTimeValue
-
randomDateTimeZone
public static org.joda.time.DateTimeZone randomDateTimeZone()generate a random DateTimeZone from the ones available in joda library -
randomMillisUpToYear9999
public long randomMillisUpToYear9999()generate a random epoch millis in a range 1 to 9999-12-31T23:59:59.999 -
randomTimeZone
generate a random TimeZone from the ones available in java.util -
randomZone
generate a random TimeZone from the ones available in java.time -
randomDateFormatterPattern
Generate a random valid date formatter pattern. -
maybeSet
helper to randomly perform onconsumerwithvalue -
randomValueOtherThan
helper to get a random value in a certain range that's different from the input -
randomValueOtherThanMany
helper to get a random value in a certain range that's different from the input -
assertBusy
public static void assertBusy(org.elasticsearch.core.CheckedRunnable<Exception> codeBlock) throws ExceptionRuns the code block for 10 seconds waiting for no assertion to trip.- Throws:
Exception
-
assertBusy
public static void assertBusy(org.elasticsearch.core.CheckedRunnable<Exception> codeBlock, long maxWaitTime, TimeUnit unit) throws ExceptionRuns the code block for the provided interval, waiting for no assertions to trip.- Throws:
Exception
-
waitUntil
Periodically execute the supplied function until it returns true, or a timeout is reached. This version uses a timeout of 10 seconds. If at all possible, useassertBusy(CheckedRunnable)instead.- Parameters:
breakSupplier- determines whether to return immediately or continue waiting.- Returns:
- the last value returned by
breakSupplier - Throws:
InterruptedException- if any sleep calls were interrupted.
-
waitUntil
public static boolean waitUntil(BooleanSupplier breakSupplier, long maxWaitTime, TimeUnit unit) throws InterruptedExceptionPeriodically execute the supplied function until it returns true, or until the specified maximum wait time has elapsed. If at all possible, useassertBusy(CheckedRunnable)instead.- Parameters:
breakSupplier- determines whether to return immediately or continue waiting.maxWaitTime- the maximum amount of time to waitunit- the unit of tie formaxWaitTime- Returns:
- the last value returned by
breakSupplier - Throws:
InterruptedException- if any sleep calls were interrupted.
-
terminate
-
terminate
public static boolean terminate(org.elasticsearch.threadpool.ThreadPool threadPool) -
getDataPath
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 classorg.apache.lucene.util.LuceneTestCase
-
tmpPaths
Returns a random number of temporary paths. -
newNodeEnvironment
- Throws:
IOException
-
buildEnvSettings
public org.elasticsearch.common.settings.Settings buildEnvSettings(org.elasticsearch.common.settings.Settings settings) -
newNodeEnvironment
public org.elasticsearch.env.NodeEnvironment newNodeEnvironment(org.elasticsearch.common.settings.Settings settings) throws IOException- Throws:
IOException
-
newEnvironment
public org.elasticsearch.env.Environment newEnvironment() -
newEnvironment
public org.elasticsearch.env.Environment newEnvironment(org.elasticsearch.common.settings.Settings settings) -
settings
public static org.elasticsearch.common.settings.Settings.Builder settings(org.elasticsearch.Version version)Return consistent index settings for the provided index version. -
randomSubsetOf
Returns size random values -
randomSubsetOf
Returns a random subset of values (including a potential empty list, or the full original list) -
randomSubsetOf
Returns size random values -
randomUnique
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
-
getTestTransportType
-
getTestTransportPlugin
-
toShuffledXContent
protected final org.elasticsearch.common.bytes.BytesReference toShuffledXContent(org.elasticsearch.common.xcontent.ToXContent toXContent, org.elasticsearch.common.xcontent.XContentType xContentType, org.elasticsearch.common.xcontent.ToXContent.Params params, boolean humanReadable, String... exceptFieldNames) throws IOExceptionReturns 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:
IOException
-
shuffleXContent
protected final org.elasticsearch.common.xcontent.XContentBuilder shuffleXContent(org.elasticsearch.common.xcontent.XContentBuilder builder, String... exceptFieldNames) throws IOExceptionRandomly 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:
IOException
-
shuffleXContent
public static org.elasticsearch.common.xcontent.XContentBuilder shuffleXContent(org.elasticsearch.common.xcontent.XContentParser parser, boolean prettyPrint, String... exceptFieldNames) throws IOExceptionRandomly 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:
IOException
-
shuffleMap
public static LinkedHashMap<String,Object> shuffleMap(LinkedHashMap<String,Object> map, Set<String> exceptFields) -
copyWriteable
public static <T extends org.elasticsearch.common.io.stream.Writeable> T copyWriteable(T original, org.elasticsearch.common.io.stream.NamedWriteableRegistry namedWriteableRegistry, org.elasticsearch.common.io.stream.Writeable.Reader<T> reader) throws IOExceptionCreate 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:
IOException
-
copyWriteable
public static <T extends org.elasticsearch.common.io.stream.Writeable> T copyWriteable(T original, org.elasticsearch.common.io.stream.NamedWriteableRegistry namedWriteableRegistry, org.elasticsearch.common.io.stream.Writeable.Reader<T> reader, org.elasticsearch.Version version) throws IOExceptionSame ascopyWriteable(Writeable, NamedWriteableRegistry, Writeable.Reader)but also allows to provide aVersionargument which will be used to write and read back the object.- Throws:
IOException
-
copyNamedWriteable
public static <T extends org.elasticsearch.common.io.stream.NamedWriteable> T copyNamedWriteable(T original, org.elasticsearch.common.io.stream.NamedWriteableRegistry namedWriteableRegistry, Class<T> categoryClass) throws IOExceptionCreate a copy of an originalNamedWriteableobject by running it through aBytesStreamOutputand reading it in again using a providedWriteable.Reader.- Throws:
IOException
-
copyNamedWriteable
public static <T extends org.elasticsearch.common.io.stream.NamedWriteable> T copyNamedWriteable(T original, org.elasticsearch.common.io.stream.NamedWriteableRegistry namedWriteableRegistry, Class<T> categoryClass, org.elasticsearch.Version version) throws IOExceptionSame ascopyNamedWriteable(NamedWriteable, NamedWriteableRegistry, Class)but also allows to provide aVersionargument which will be used to write and read back the object.- Throws:
IOException
-
copyInstance
protected static <T> T copyInstance(T original, org.elasticsearch.common.io.stream.NamedWriteableRegistry namedWriteableRegistry, org.elasticsearch.common.io.stream.Writeable.Writer<T> writer, org.elasticsearch.common.io.stream.Writeable.Reader<T> reader, org.elasticsearch.Version version) throws IOException- Throws:
IOException
-
createParser
protected final org.elasticsearch.common.xcontent.XContentParser createParser(org.elasticsearch.common.xcontent.XContentBuilder builder) throws IOExceptionCreate a newXContentParser.- Throws:
IOException
-
createParser
protected final org.elasticsearch.common.xcontent.XContentParser createParser(org.elasticsearch.common.xcontent.XContent xContent, String data) throws IOExceptionCreate a newXContentParser.- Throws:
IOException
-
createParser
protected final org.elasticsearch.common.xcontent.XContentParser createParser(org.elasticsearch.common.xcontent.XContent xContent, InputStream data) throws IOExceptionCreate a newXContentParser.- Throws:
IOException
-
createParser
protected final org.elasticsearch.common.xcontent.XContentParser createParser(org.elasticsearch.common.xcontent.XContent xContent, byte[] data) throws IOExceptionCreate a newXContentParser.- Throws:
IOException
-
createParser
protected final org.elasticsearch.common.xcontent.XContentParser createParser(org.elasticsearch.common.xcontent.XContent xContent, org.elasticsearch.common.bytes.BytesReference data) throws IOExceptionCreate a newXContentParser.- Throws:
IOException
-
createParser
protected final org.elasticsearch.common.xcontent.XContentParser createParser(org.elasticsearch.common.xcontent.NamedXContentRegistry namedXContentRegistry, org.elasticsearch.common.xcontent.XContent xContent, org.elasticsearch.common.bytes.BytesReference data) throws IOExceptionCreate a newXContentParser.- Throws:
IOException
-
xContentRegistry
protected org.elasticsearch.common.xcontent.NamedXContentRegistry xContentRegistry()TheNamedXContentRegistryto use for this test. Subclasses should override and use liberally. -
writableRegistry
protected org.elasticsearch.common.io.stream.NamedWriteableRegistry writableRegistry()TheNamedWriteableRegistryto use for this test. Subclasses should override and use liberally. -
mockScript
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 org.apache.lucene.util.TestRuleMarkFailure getSuiteFailureMarker()Returns the suite failure marker: internal use only! -
assertArrayEquals
Compares two stack traces, ignoring module (which is not yet serialized) -
assertEquals
Compares two stack trace elements, ignoring module (which is not yet serialized) -
spinForAtLeastOneMillisecond
protected static long spinForAtLeastOneMillisecond() -
spinForAtLeastNMilliseconds
protected static long spinForAtLeastNMilliseconds(long ms) -
createDefaultIndexAnalyzers
protected org.elasticsearch.index.analysis.IndexAnalyzers createDefaultIndexAnalyzers()Creates an IndexAnalyzers with a single default analyzer -
createTestAnalysis
public static ESTestCase.TestAnalysis createTestAnalysis(org.elasticsearch.index.Index index, org.elasticsearch.common.settings.Settings settings, org.elasticsearch.plugins.AnalysisPlugin... analysisPlugins) throws IOExceptionCreates an TestAnalysis with all the default analyzers configured.- Throws:
IOException
-
createTestAnalysis
public static ESTestCase.TestAnalysis createTestAnalysis(org.elasticsearch.index.Index index, org.elasticsearch.common.settings.Settings nodeSettings, org.elasticsearch.common.settings.Settings settings, org.elasticsearch.plugins.AnalysisPlugin... analysisPlugins) throws IOExceptionCreates an TestAnalysis with all the default analyzers configured.- Throws:
IOException
-
createTestAnalysis
public static ESTestCase.TestAnalysis createTestAnalysis(org.elasticsearch.index.IndexSettings indexSettings, org.elasticsearch.common.settings.Settings nodeSettings, org.elasticsearch.plugins.AnalysisPlugin... analysisPlugins) throws IOExceptionCreates an TestAnalysis with all the default analyzers configured.- Throws:
IOException
-
inFipsJvm
public static boolean inFipsJvm() -
getPortRange
Returns a unique port range for this JVM starting from the computed base port -
getBasePort
protected static int getBasePort() -
randomIp
-