Skip to content

Commit a0ed86d

Browse files
authored
Merge pull request #1082 from percona/fix-oplog-flaky-test
Fix flaky test in oplog package
2 parents d46e925 + 0f31540 commit a0ed86d

File tree

2 files changed

+24
-22
lines changed

2 files changed

+24
-22
lines changed

pbm/oplog/db_tc_test.go

Lines changed: 16 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ package oplog
33
import (
44
"context"
55
"fmt"
6+
"log"
67
"os"
78
"testing"
89

@@ -17,29 +18,30 @@ var mClient *mongo.Client
1718

1819
func TestMain(m *testing.M) {
1920
ctx := context.Background()
20-
mongodbContainer, err := mongodb.Run(ctx, "perconalab/percona-server-mongodb:7.0")
21+
mongodbContainer, err := mongodb.Run(ctx, "perconalab/percona-server-mongodb:8.0.4-multi")
2122
if err != nil {
22-
fmt.Fprintf(os.Stderr, "error while creating mongo test container: %v", err)
23-
return
23+
log.Fatalf("error while creating mongo test container: %v", err)
2424
}
25-
defer func() {
26-
if err := testcontainers.TerminateContainer(mongodbContainer); err != nil {
27-
fmt.Fprintf(os.Stderr, "failed to terminate container: %s", err)
28-
}
29-
}()
30-
3125
connStr, err := mongodbContainer.ConnectionString(ctx)
3226
if err != nil {
33-
fmt.Fprintf(os.Stderr, "conn string error: %v", err)
34-
return
27+
log.Fatalf("conn string error: %v", err)
3528
}
3629
mClient, err = mongo.Connect(ctx, options.Client().ApplyURI(connStr))
3730
if err != nil {
38-
fmt.Fprintf(os.Stderr, "mongo client connect error: %v", err)
39-
return
31+
log.Fatalf("mongo client connect error: %v", err)
32+
}
33+
34+
code := m.Run()
35+
36+
err = mClient.Disconnect(ctx)
37+
if err != nil {
38+
log.Fatalf("mongo client disconnect error: %v", err)
39+
}
40+
if err := testcontainers.TerminateContainer(mongodbContainer); err != nil {
41+
log.Fatalf("failed to terminate container: %s", err)
4042
}
4143

42-
m.Run()
44+
os.Exit(code)
4345
}
4446

4547
func TestGetUUIDForNSv2(t *testing.T) {

pbm/oplog/restore_test.go

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -214,14 +214,14 @@ func TestApply(t *testing.T) {
214214
oplogFile string
215215
db string
216216
coll string
217-
idxs bson.D
217+
idxs bson.M
218218
}{
219219
{
220220
desc: "index: dropIndexes-createIndexes",
221221
oplogFile: "ops_cmd_createIndexes_dropIndexes",
222222
db: "mydb",
223223
coll: "c1",
224-
idxs: bson.D{{"fieldX", -1}, {"fieldZ", -1}},
224+
idxs: bson.M{"fieldX": -1, "fieldZ": -1},
225225
},
226226
// todo: add more cases
227227
}
@@ -237,13 +237,13 @@ func TestApply(t *testing.T) {
237237
t.Fatalf("error while applying oplog: %v", err)
238238
}
239239

240-
idxs := oRestore.indexCatalog.GetIndexes(tC.db, tC.coll)
241-
if len(idxs) != len(tC.idxs) {
242-
t.Errorf("wrong number of indexes: want=%d, got=%d", len(tC.idxs), len(idxs))
240+
idxDocs := oRestore.indexCatalog.GetIndexes(tC.db, tC.coll)
241+
if len(idxDocs) != len(tC.idxs) {
242+
t.Errorf("wrong number of indexes: want=%d, got=%d", len(tC.idxs), len(idxDocs))
243243
}
244-
for i, idx := range idxs {
245-
if idx.Key[0].Key != tC.idxs[i].Key {
246-
t.Errorf("wrong key: want=%v, got=%v", tC.idxs[i], idx.Key[0])
244+
for _, idxDoc := range idxDocs {
245+
if _, ok := tC.idxs[idxDoc.Key[0].Key]; !ok {
246+
t.Errorf("wrong key: %v", idxDoc.Key[0])
247247
}
248248
}
249249
})

0 commit comments

Comments
 (0)