@@ -1245,7 +1245,7 @@ func (suite *IntegrationTestSuite) TestMetadataMismatchAndPartitioning() {
12451245 suite .Require ().NoError (err )
12461246
12471247 runner := RunVerifierCheck (ctx , suite .T (), verifier )
1248- runner .AwaitGenerationEnd ()
1248+ suite . Require (). NoError ( runner .AwaitGenerationEnd () )
12491249
12501250 cursor , err := verifier .verificationTaskCollection ().Find (
12511251 ctx ,
@@ -1263,8 +1263,8 @@ func (suite *IntegrationTestSuite) TestMetadataMismatchAndPartitioning() {
12631263 suite .Require ().Equal (verificationTaskVerifyCollection , tasks [1 ].Type )
12641264 suite .Require ().Equal (verificationTaskMetadataMismatch , tasks [1 ].Status )
12651265
1266- runner .StartNextGeneration ()
1267- runner .AwaitGenerationEnd ()
1266+ suite . Require (). NoError ( runner .StartNextGeneration () )
1267+ suite . Require (). NoError ( runner .AwaitGenerationEnd () )
12681268
12691269 cursor , err = verifier .verificationTaskCollection ().Find (
12701270 ctx ,
@@ -1310,16 +1310,16 @@ func (suite *IntegrationTestSuite) TestGenerationalRechecking() {
13101310 suite .T ().Logf ("TotalTasks is 0 (generation=%d); waiting %s then will run another generation …" , verifier .generation , delay )
13111311
13121312 time .Sleep (delay )
1313- runner .StartNextGeneration ()
1314- runner .AwaitGenerationEnd ()
1313+ suite . Require (). NoError ( runner .StartNextGeneration () )
1314+ suite . Require (). NoError ( runner .AwaitGenerationEnd () )
13151315 status , err = verifier .GetVerificationStatus ()
13161316 suite .Require ().NoError (err )
13171317 }
13181318 return status
13191319 }
13201320
13211321 // wait for one generation to finish
1322- runner .AwaitGenerationEnd ()
1322+ suite . Require (). NoError ( runner .AwaitGenerationEnd () )
13231323 status := waitForTasks ()
13241324 suite .Require ().Equal (VerificationStatus {TotalTasks : 2 , FailedTasks : 1 , CompletedTasks : 1 }, * status )
13251325
@@ -1328,10 +1328,10 @@ func (suite *IntegrationTestSuite) TestGenerationalRechecking() {
13281328 suite .Require ().NoError (err )
13291329
13301330 // tell check to start the next generation
1331- runner .StartNextGeneration ()
1331+ suite . Require (). NoError ( runner .StartNextGeneration () )
13321332
13331333 // wait for generation to finish
1334- runner .AwaitGenerationEnd ()
1334+ suite . Require (). NoError ( runner .AwaitGenerationEnd () )
13351335 status = waitForTasks ()
13361336 // there should be no failures now, since they are are equivalent at this point in time
13371337 suite .Require ().Equal (VerificationStatus {TotalTasks : 1 , CompletedTasks : 1 }, * status )
@@ -1341,10 +1341,10 @@ func (suite *IntegrationTestSuite) TestGenerationalRechecking() {
13411341 suite .Require ().NoError (err )
13421342
13431343 // tell check to start the next generation
1344- runner .StartNextGeneration ()
1344+ suite . Require (). NoError ( runner .StartNextGeneration () )
13451345
13461346 // wait for one generation to finish
1347- runner .AwaitGenerationEnd ()
1347+ suite . Require (). NoError ( runner .AwaitGenerationEnd () )
13481348 status = waitForTasks ()
13491349
13501350 // there should be a failure from the src insert
@@ -1355,10 +1355,10 @@ func (suite *IntegrationTestSuite) TestGenerationalRechecking() {
13551355 suite .Require ().NoError (err )
13561356
13571357 // continue
1358- runner .StartNextGeneration ()
1358+ suite . Require (). NoError ( runner .StartNextGeneration () )
13591359
13601360 // wait for it to finish again, this should be a clean run
1361- runner .AwaitGenerationEnd ()
1361+ suite . Require (). NoError ( runner .AwaitGenerationEnd () )
13621362 status = waitForTasks ()
13631363
13641364 // there should be no failures now, since they are are equivalent at this point in time
@@ -1493,6 +1493,59 @@ func (suite *IntegrationTestSuite) TestVerifierWithFilter() {
14931493 <- checkDoneChan
14941494}
14951495
1496+ func (suite * IntegrationTestSuite ) TestBackgroundInIndexSpec () {
1497+ ctx := suite .Context ()
1498+
1499+ srcDB := suite .srcMongoClient .Database (suite .DBNameForTest ())
1500+ dstDB := suite .dstMongoClient .Database (suite .DBNameForTest ())
1501+
1502+ suite .Require ().NoError (
1503+ srcDB .RunCommand (
1504+ ctx ,
1505+ bson.D {
1506+ {"createIndexes" , "mycoll" },
1507+ {"indexes" , []bson.D {
1508+ {
1509+ {"name" , "index1" },
1510+ {"key" , bson.D {{"someField" , 1 }}},
1511+ },
1512+ }},
1513+ },
1514+ ).Err (),
1515+ )
1516+
1517+ suite .Require ().NoError (
1518+ dstDB .RunCommand (
1519+ ctx ,
1520+ bson.D {
1521+ {"createIndexes" , "mycoll" },
1522+ {"indexes" , []bson.D {
1523+ {
1524+ {"name" , "index1" },
1525+ {"key" , bson.D {{"someField" , 1 }}},
1526+ {"background" , 1 },
1527+ },
1528+ }},
1529+ },
1530+ ).Err (),
1531+ )
1532+
1533+ verifier := suite .BuildVerifier ()
1534+ verifier .SetSrcNamespaces ([]string {srcDB .Name () + ".mycoll" })
1535+ verifier .SetDstNamespaces ([]string {dstDB .Name () + ".mycoll" })
1536+ verifier .SetNamespaceMap ()
1537+
1538+ runner := RunVerifierCheck (ctx , suite .T (), verifier )
1539+ runner .AwaitGenerationEnd ()
1540+
1541+ status , err := verifier .GetVerificationStatus ()
1542+ suite .Require ().NoError (err )
1543+ suite .Assert ().Zero (
1544+ status .MetadataMismatchTasks ,
1545+ "no metadata mismatch" ,
1546+ )
1547+ }
1548+
14961549func (suite * IntegrationTestSuite ) TestPartitionWithFilter () {
14971550 zerolog .SetGlobalLevel (zerolog .DebugLevel )
14981551
0 commit comments