7
7
package mtest
8
8
9
9
import (
10
+ "context"
10
11
"errors"
11
- "log "
12
+ "fmt "
12
13
"math"
13
14
"os"
14
15
"strconv"
15
16
"strings"
17
+ "time"
16
18
17
19
"go.mongodb.org/mongo-driver/bson"
18
20
"go.mongodb.org/mongo-driver/mongo"
@@ -53,34 +55,32 @@ func Setup() error {
53
55
var err error
54
56
testContext .connString , err = getConnString ()
55
57
if err != nil {
56
- log .Printf ("connstring error: %v" , err )
57
- return err
58
+ return fmt .Errorf ("error getting connection string: %v" , err )
58
59
}
59
60
testContext .topo , err = topology .New (topology .WithConnString (func (connstring.ConnString ) connstring.ConnString {
60
61
return testContext .connString
61
62
}))
62
63
if err != nil {
63
- log .Printf ("topology.New error: %v" , err )
64
- return err
64
+ return fmt .Errorf ("error creating topology: %v" , err )
65
65
}
66
66
if err = testContext .topo .Connect (); err != nil {
67
- log .Printf ("topology.Connect error: %v" , err )
68
- return err
67
+ return fmt .Errorf ("error connecting topology: %v" , err )
69
68
}
70
69
71
70
testContext .client , err = setupClient (testContext .connString , options .Client ())
72
71
if err != nil {
73
- log .Printf ("error setting up client: %v" , err )
74
- return err
72
+ return fmt .Errorf ("error connecting test client: %v" , err )
75
73
}
76
- if err := testContext .client .Ping (Background , readpref .Primary ()); err != nil {
77
- log .Printf ("error connecting to client: %v" , err )
78
- return err
74
+
75
+ pingCtx , cancel := context .WithTimeout (Background , 2 * time .Second )
76
+ defer cancel ()
77
+ if err := testContext .client .Ping (pingCtx , readpref .Primary ()); err != nil {
78
+ return fmt .Errorf ("ping error: %v; make sure the deployment is running on URI %v" , err ,
79
+ testContext .connString .Original )
79
80
}
80
81
81
82
if testContext .serverVersion , err = getServerVersion (); err != nil {
82
- log .Printf ("error getting server version: %v" , err )
83
- return err
83
+ return fmt .Errorf ("error getting server version: %v" , err )
84
84
}
85
85
86
86
switch testContext .topo .Kind () {
@@ -98,15 +98,14 @@ func Setup() error {
98
98
{"transactionLifetimeLimitSeconds" , 3 },
99
99
}).Err ()
100
100
if err != nil {
101
- return err
101
+ return fmt . Errorf ( "error setting transactionLifetimeLimitSeconds: %v" , err )
102
102
}
103
103
}
104
104
105
105
testContext .authEnabled = len (os .Getenv ("MONGO_GO_DRIVER_CA_FILE" )) != 0
106
106
biRes , err := testContext .client .Database ("admin" ).RunCommand (Background , bson.D {{"buildInfo" , 1 }}).DecodeBytes ()
107
107
if err != nil {
108
- log .Printf ("error running buildInfo: %v" , err )
109
- return err
108
+ return fmt .Errorf ("buildInfo error: %v" , err )
110
109
}
111
110
modulesRaw , err := biRes .LookupErr ("modules" )
112
111
if err == nil {
@@ -126,16 +125,13 @@ func Setup() error {
126
125
// This function must be called once after all tests have finished running.
127
126
func Teardown () error {
128
127
if err := testContext .client .Database (TestDb ).Drop (Background ); err != nil {
129
- log .Printf ("Database.Drop error: %v" , err )
130
- return err
128
+ return fmt .Errorf ("error dropping test database: %v" , err )
131
129
}
132
130
if err := testContext .client .Disconnect (Background ); err != nil {
133
- log .Printf ("Client.Disconnect error: %v" , err )
134
- return err
131
+ return fmt .Errorf ("error disconnecting test client: %v" , err )
135
132
}
136
133
if err := testContext .topo .Disconnect (Background ); err != nil {
137
- log .Printf ("Topology.Disconnect error: %v" , err )
138
- return err
134
+ return fmt .Errorf ("error disconnecting test topology: %v" , err )
139
135
}
140
136
return nil
141
137
}
0 commit comments