Package org.elasticsearch.test
Class AbstractBWCSerializationTestCase<T extends Writeable & ToXContent>
java.lang.Object
org.junit.Assert
org.apache.lucene.tests.util.LuceneTestCase
org.elasticsearch.test.ESTestCase
org.elasticsearch.test.AbstractWireTestCase<T>
org.elasticsearch.test.AbstractWireSerializingTestCase<T>
org.elasticsearch.test.AbstractSerializationTestCase<T>
org.elasticsearch.test.AbstractXContentSerializingTestCase<T>
org.elasticsearch.test.AbstractBWCSerializationTestCase<T>
public abstract class AbstractBWCSerializationTestCase<T extends Writeable & ToXContent>
extends AbstractXContentSerializingTestCase<T>
-
Nested Class Summary
Nested classes/interfaces inherited from class org.elasticsearch.test.ESTestCase
ESTestCase.EntitledTestPackages, ESTestCase.GeohashGenerator, ESTestCase.TestAnalysis, ESTestCase.WithEntitlementsOnTestCode, ESTestCase.WithoutEntitlementsNested classes/interfaces inherited from class org.apache.lucene.tests.util.LuceneTestCase
org.apache.lucene.tests.util.LuceneTestCase.AwaitsFix, org.apache.lucene.tests.util.LuceneTestCase.Concurrency, org.apache.lucene.tests.util.LuceneTestCase.Monster, org.apache.lucene.tests.util.LuceneTestCase.Nightly, org.apache.lucene.tests.util.LuceneTestCase.SuppressAssertingFormats, 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>, org.apache.lucene.tests.util.LuceneTestCase.ThrowingRunnable, org.apache.lucene.tests.util.LuceneTestCase.Weekly -
Field Summary
Fields inherited from class org.elasticsearch.test.AbstractWireTestCase
NUMBER_OF_TEST_RUNSFields inherited from class org.elasticsearch.test.ESTestCase
checkIndexFailures, DEFAULT_DELTA, DEFAULT_TEST_WORKER_ID, failureAndSuccessEvents, FIPS_SYSPROP, JAVA_TIMEZONE_IDS, JAVA_ZONE_IDS, logger, LOGGER_CHILD_OVERRIDE_DEPRECATION_WARNING, MIN_PRIVATE_PORT, previousFailureSkipsRemainingRule, SAFE_AWAIT_TIMEOUT, TEMPLATE_DECORATOR_RULE, TEST_ENTITLEMENTS, TEST_REQUEST_TIMEOUT, TEST_WORKER_SYS_PROPERTY, TEST_WORKER_VM_ID, threadContext, UNSIGNED_LONG_MAXFields 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_FAILFAST, SYSPROP_MAXFAILURES, SYSPROP_MONSTER, SYSPROP_NIGHTLY, SYSPROP_WEEKLY, TEST_ASSERTS_ENABLED, TEST_AWAITSFIX, TEST_CODEC, TEST_DIRECTORY, TEST_DOCVALUESFORMAT, TEST_LINE_DOCS_FILE, TEST_MONSTER, TEST_NIGHTLY, TEST_POSTINGSFORMAT, TEST_THROTTLING, TEST_WEEKLY, VERBOSE -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionprotected final voidassertBwcSerialization(T testInstance, TransportVersion version) Assert that instances copied at a particular version are equal.protected voidassertOnBWCObject(T bwcSerializedObject, T testInstance, TransportVersion version) protected Collection<TransportVersion> The bwc versions to test serialization againstprotected abstract TmutateInstanceForVersion(T instance, TransportVersion version) Returns the expected instance if serialized from the given version.final voidTest serialization and deserialization of the test instance across versionsprotected voidtestSerializationIsNotBackwardsCompatible(TransportVersion featureVersion, Function<T, Boolean> expectFailureFunction, String errorMessage) Helper method to test cases where serialization to older versions is expected to fail.Methods inherited from class org.elasticsearch.test.AbstractXContentSerializingTestCase
asXContent, createXContentTester, createXContextTestInstance, doParseInstanceMethods inherited from class org.elasticsearch.test.AbstractSerializationTestCase
assertToXContentEquivalence, getRandomFieldsExcludeFilter, getShuffleFieldsExceptions, getToXContentParams, randomDate, randomInstant, supportsUnknownFields, testConcurrentToXContent, testFromXContentMethods inherited from class org.elasticsearch.test.AbstractWireSerializingTestCase
copyInstance, instanceReader, instanceWriterMethods inherited from class org.elasticsearch.test.AbstractWireTestCase
assertEqualInstances, assertSerialization, assertSerialization, concurrentTest, copyInstance, createTestInstance, dispose, getNamedWriteableRegistry, mutateInstance, shouldBeSame, testConcurrentEquals, testConcurrentHashCode, testConcurrentSerialization, testEqualsAndHashcode, testSerialization, testToStringMethods inherited from class org.elasticsearch.test.ESTestCase
after, afterIfFailed, afterIfSuccessful, allBreakersMemoryReleased, asInstanceOf, assertArrayEquals, assertArrayEqualsPercent, assertArrayEqualsPercent, assertArrayEqualsPercent, assertBusy, assertBusy, assertEquals, assertEqualsPercent, assertLeakDetected, assertNoSuiteLeaks, assertSettingDeprecationsAndWarnings, assertThat, assertThat, assertWarnings, assertWarnings, assertWarnings, before, between, buildEnvSettings, buildNewFakeTransportAddress, captureLoggingLevel, checkPreviousFailureSkipsRemaining, checkStaticState, compatibleMediaType, copyInstance, copyNamedWriteable, copyNamedWriteable, copyWriteable, copyWriteable, createDefaultIndexAnalyzers, createParser, createParser, createParser, createParser, createParser, createParser, createParserWithCompatibilityFor, createTestAnalysis, createTestAnalysis, createTestAnalysis, createThreadPool, defaultIndexSettings, embedInRandomBytes, emptyProject, enableAllPagesReleasedCheck, enableArraysReleasedCheck, enableWarningsCheck, ensureAllContextsReleased, ensureAllSearchContextsReleased, ensureCheckIndexPassed, ensureNoWarnings, ensureSupportedLocale, expectThrows, expectThrows, expectThrows, expectThrows, fail, fail, filteredWarnings, flushThreadPoolExecutor, frequently, generateRandomStringArray, generateRandomStringArray, getDataPath, getPortRange, getResourceDataPath, getSuiteFailureMarker, getTestTransportPlugin, getTestTransportType, getWorkerBasePort, indexSettings, indexSettings, indexSettings, inFipsJvm, initTestSeed, isTurkishLocale, iterations, maybeSet, maybeWrapDirectoryInFilterDirectory, mockScript, newEnvironment, newEnvironment, newLimitedBreaker, newLimitedBreakerService, newNodeEnvironment, newNodeEnvironment, newSearcher, newSearcher, newSearcher, newSearcher, openSuiteLeakWindow, parserConfig, previousFailureSkipsRemaining, projectStateFromProject, projectStateFromProject, projectStateWithEmptyProject, randomAlphanumericOfLength, randomAlphaOfLength, randomAlphaOfLengthBetween, randomAlphaOfLengthOrNull, randomArray, randomArray, randomArrayOtherThan, randomArrayOtherThan, randomArrayOtherThan, randomArrayOtherThan, randomArrayOtherThan, randomArrayOtherThan, randomArrayOtherThan, randomArrayOtherThan, randomArrayOtherThan, randomBigInteger, randomBoolean, randomByte, randomByteArrayOfLength, randomByteBetween, randomBytesBetween, randomByteSizeValue, randomBytesReference, randomCompatibleMediaType, randomDateFormatterPattern, randomDouble, randomDoubleBetween, randomDoubles, randomDoubles, randomExecutor, randomFloat, randomFloatBetween, randomFloatOrNull, randomFrom, randomFrom, randomFrom, randomFrom, randomFrom, randomFrom, randomGaussianDouble, randomGeohash, randomIdentifier, randomIdentifier, randomIndexName, randomInstantBetween, randomInt, randomInt, randomIntBetween, randomIntOrNull, randomInts, randomInts, randomIp, randomList, randomList, randomLong, randomLong, randomLongBetween, randomLongOrNull, randomLongs, randomLongs, randomMap, randomMillisUpToYear9999, randomNegativeInt, randomNegativeLong, randomNonEmptySubsetOf, randomNonNegativeByte, randomNonNegativeInt, randomNonNegativeIntOrNull, randomNonNegativeLong, randomNonNegativeLongOrNull, randomOptionalBoolean, randomOptionalDouble, randomPositiveTimeValue, randomProjectIdOrDefault, randomRealisticUnicodeOfCodepointLength, randomRealisticUnicodeOfCodepointLengthBetween, randomRealisticUnicodeOfLength, randomRealisticUnicodeOfLengthBetween, randomReleasableBytesReference, randomRepoName, randomSecretKey, randomSecureStringOfLength, randomSet, randomShort, randomSnapshotName, randomSubsetOf, randomSubsetOf, randomSubsetOf, randomTimeValue, randomTimeValue, randomTimeValue, randomTimeValueGreaterThan, randomTimeZone, randomUnicodeOfCodepointLength, randomUnicodeOfCodepointLengthBetween, randomUnicodeOfLength, randomUnicodeOfLengthBetween, randomUnique, randomUniqueProjectId, randomUnsignedLongBetween, randomUUID, randomValueOtherThan, randomValueOtherThanMany, randomVendorType, randomZone, removeHeaderWarningAppender, resetCheckIndexStatus, resetPortCounter, restoreContentType, restoreFileSystem, restoreLoggingLevel, runInParallel, runInParallel, safeAcquire, safeAcquire, safeAwait, safeAwait, safeAwait, safeAwait, safeAwait, safeAwait, safeAwaitAndUnwrapFailure, safeAwaitFailure, safeAwaitFailure, safeAwaitFailure, safeAwaitFailure, safeExecute, safeGet, safeGet, safeJoin, safeSleep, safeSleep, scaledRandomIntBetween, secureRandom, secureRandom, secureRandomFips, secureRandomFips, secureRandomNonFips, secureRandomNonFips, setContentType, setFileSystem, setHeaderWarningAppender, settings, shouldFailureSkipRemainingTests, shuffledList, shuffledList, shuffleMap, shuffleXContent, shuffleXContent, skipTestWaitingForLuceneFix, spinForAtLeastNMilliseconds, spinForAtLeastOneMillisecond, startInParallel, startInParallel, terminate, terminate, tmpPaths, toShuffledXContent, toShuffledXContent, verifyNoOutstandingLeakTrackerLeaks, waitUntil, waitUntil, writableRegistry, xContentRegistryMethods inherited from class org.apache.lucene.tests.util.LuceneTestCase
addVirusChecker, assertDeletedDocsEquals, assertDocsAndPositionsEnumEquals, assertDocsEnumEquals, assertDocsSkippingEquals, assertDocValuesEquals, assertDocValuesEquals, assertDoubleUlpEquals, assertFieldInfosEquals, assertFloatUlpEquals, assertNormsEquals, assertPointsEquals, assertPositionsSkippingEquals, assertReaderEquals, assertReaderStatisticsEquals, assertStoredFieldEquals, assertStoredFieldsEquals, assertTermsEnumEquals, assertTermsEquals, assertTermsEquals, assertTermsStatisticsEquals, assertTermStatsEquals, assertTermVectorsEquals, asSet, assumeFalse, assumeNoException, assumeTrue, atLeast, atLeast, callStackContains, callStackContains, callStackContainsAnyOf, closeAfterSuite, closeAfterTest, collate, createTempDir, createTempDir, createTempFile, createTempFile, dumpArray, dumpIterator, ensureSaneIWCOnNightly, expectThrows, expectThrows, expectThrows, expectThrowsAnyOf, expectThrowsAnyOf, getDataInputStream, getJvmForkArguments, getOnlyLeafReader, getTestClass, getTestName, 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, newSnapshotIndexWriterConfig, newStringField, newStringField, newStringField, newStringField, newTextField, newTextField, newTieredMergePolicy, newTieredMergePolicy, overrideDefaultQueryCache, overrideTestDefaultQueryCache, random, randomLocale, randomTimeZone, randomVectorFormat, rarely, rarely, replaceMaxFailureRule, resetDefaultQueryCache, restoreCPUCoreCount, restoreIndexWriterMaxDocs, runWithRestrictedPermissions, setIndexWriterMaxDocs, setUp, setupCPUCoreCount, setUpExecutorService, shutdownExecutorService, 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, assertThrows, assertThrows, assertTrue, assertTrue, fail, fail
-
Constructor Details
-
AbstractBWCSerializationTestCase
public AbstractBWCSerializationTestCase()
-
-
Method Details
-
mutateInstanceForVersion
Returns the expected instance if serialized from the given version. -
bwcVersions
The bwc versions to test serialization against -
testBwcSerialization
Test serialization and deserialization of the test instance across versions- Throws:
IOException
-
assertBwcSerialization
protected final void assertBwcSerialization(T testInstance, TransportVersion version) throws IOException Assert that instances copied at a particular version are equal. The version is useful for sanity checking the backwards compatibility of the wire. It isn't a substitute for real backwards compatibility tests but it is *so* much faster.- Throws:
IOException
-
assertOnBWCObject
- Parameters:
bwcSerializedObject- The object deserialized from the previous versiontestInstance- The original test instanceversion- The version which serialized
-
testSerializationIsNotBackwardsCompatible
protected void testSerializationIsNotBackwardsCompatible(TransportVersion featureVersion, Function<T, Boolean> expectFailureFunction, String errorMessage) throws IOExceptionHelper method to test cases where serialization to older versions is expected to fail. An example of such a case would be an existing object adding a new Enum value which is not known to older versions and which has no equivalent default value that could be sent instead. Any attempt to serialize the object will result in an exception on the older node when attempting to deserialize, so to make the cause of the failure more obvious, an exception is thrown on the node doing the serialization.- Parameters:
featureVersion- theTransportVersionin which the change was introducedexpectFailureFunction- a function which should returntrueif serializing the instance should be expected to failerrorMessage- the expected error message when serialization fails- Throws:
IOException
-