Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 5 additions & 1 deletion common/testutil/testutil.go
Original file line number Diff line number Diff line change
Expand Up @@ -40,12 +40,14 @@ func GetBareSession() (*mongo.Client, error) {
// GetBareSessionProvider returns a session provider from the environment or
// from a default host and port.
func GetBareSessionProvider() (*db.SessionProvider, *options.ToolOptions, error) {
fmt.Printf("-- GetBareSessionProvider ...\n")
var toolOptions *options.ToolOptions

// get ToolOptions from URI or defaults
if uri := os.Getenv("TOOLS_TESTING_MONGOD"); uri != "" {
fmt.Printf("-- GetBareSessionProvider --uri=%s ...\n", uri)
fakeArgs := []string{"--uri=" + uri}
toolOptions = options.New("mongodump", "", "", "", true, options.EnabledOptions{URI: true})
toolOptions = options.New("mongodump", "", "", "", true, options.EnabledOptions{Auth: true, URI: true})
_, err := toolOptions.ParseArgs(fakeArgs)
if err != nil {
panic(fmt.Sprintf("Could not parse TOOLS_TESTING_MONGOD environment variable: %v", err))
Expand All @@ -70,10 +72,12 @@ func GetBareSessionProvider() (*db.SessionProvider, *options.ToolOptions, error)
if err != nil {
return nil, nil, err
}
fmt.Printf("-- db.NewSessionProvider ...\n")
sessionProvider, err := db.NewSessionProvider(*toolOptions)
if err != nil {
return nil, nil, err
}
fmt.Printf("-- db.NewSessionProvider done\n")
return sessionProvider, toolOptions, nil
}

Expand Down
21 changes: 13 additions & 8 deletions mongodump/mongodump_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -265,6 +265,14 @@ func setUpMongoDumpTestData() error {
for i, collectionName := range testCollectionNames {
coll := session.Database(testDB).Collection(collectionName)

idx := mongo.IndexModel{
Keys: bson.M{`"`: 1},
}
_, err = coll.Indexes().CreateOne(context.Background(), idx)
if err != nil {
return err
}

for j := 0; j < 10*(i+1); j++ {
_, err = coll.InsertOne(
context.Background(),
Expand All @@ -279,13 +287,6 @@ func setUpMongoDumpTestData() error {
return err
}

idx := mongo.IndexModel{
Keys: bson.M{`"`: 1},
}
_, err = coll.Indexes().CreateOne(context.Background(), idx)
if err != nil {
return err
}
}
}

Expand Down Expand Up @@ -1480,7 +1481,11 @@ func TestMongoDumpTOOLS2498(t *testing.T) {
// during this period. Before the fix, the process will panic with Nil pointer error since it fails to getCollectionInfo.
go func() {
time.Sleep(2 * time.Second)
session, _ := md.SessionProvider.GetSession()
session, err := md.SessionProvider.GetSession()
if err != nil {
t.Fatalf("Error from GetSession: %v", err)
return
}
disconnectErr = session.Disconnect(context.Background())
}()

Expand Down
1 change: 1 addition & 0 deletions rcownie_disagg1
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
This branch is for work related to disaggregated storage testing.
12 changes: 12 additions & 0 deletions run_integration_tests.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
#!/bin/bash

# Set environment variables here for the cluster to be tested.
export TOOLS_TESTING_AUTH_USERNAME="rcownie"
export TOOLS_TESTING_AUTH_PASSWORD="penguin"
export TOOLS_TESTING_MONGOD="mongodb+srv://rcownie:[email protected]/?retryWrites=true&w=majority&appName=rcownie1"
export TOOLS_TESTING_AUTH="true"
export TOOLS_TESTING_REPLSET="true"

echo "Running integration tests for cluster connection ${TOOLS_TESTING_MONGOD}"
go run build.go test:integration