diff options
Diffstat (limited to 'src/mongo/db/catalog/collection_validation_test.cpp')
-rw-r--r-- | src/mongo/db/catalog/collection_validation_test.cpp | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/src/mongo/db/catalog/collection_validation_test.cpp b/src/mongo/db/catalog/collection_validation_test.cpp index 4ffff4f653b..c5313599053 100644 --- a/src/mongo/db/catalog/collection_validation_test.cpp +++ b/src/mongo/db/catalog/collection_validation_test.cpp @@ -47,6 +47,9 @@ namespace { const NamespaceString kNss = NamespaceString("test.t"); class CollectionValidationTest : public CatalogTestFixture { +protected: + CollectionValidationTest(Options options = {}) : CatalogTestFixture(std::move(options)) {} + private: void setUp() override { CatalogTestFixture::setUp(); @@ -58,6 +61,11 @@ private: }; }; +class CollectionValidationDiskTest : public CollectionValidationTest { +protected: + CollectionValidationDiskTest() : CollectionValidationTest(Options{}.ephemeral(false)) {} +}; + /** * Calls validate on collection kNss with both kValidateFull and kValidateNormal validation levels * and verifies the results. @@ -270,6 +278,19 @@ TEST_F(CollectionValidationTest, ValidateEnforceFastCount) { {CollectionValidation::ValidateMode::kForegroundFullEnforceFastCount}); } +TEST_F(CollectionValidationDiskTest, ValidateIndexDetailResultsSurfaceVerifyErrors) { + FailPointEnableBlock fp{"WTValidateIndexStructuralDamage"}; + auto opCtx = operationContext(); + insertDataRange(opCtx, 0, 5); // initialize collection + foregroundValidate( + opCtx, + /*valid*/ false, + /*numRecords*/ std::numeric_limits<int32_t>::min(), // uninitialized + /*numInvalidDocuments*/ std::numeric_limits<int32_t>::min(), // uninitialized + /*numErrors*/ 1, + {CollectionValidation::ValidateMode::kForegroundFull}); +} + /** * Waits for a parallel running collection validation operation to start and then hang at a * failpoint. |