Skip to content

Commit 085924b

Browse files
authored
Allow postgres integration tests to run over unix pipe (#19875)
1 parent e09fb30 commit 085924b

File tree

2 files changed

+42
-11
lines changed

2 files changed

+42
-11
lines changed

integrations/integration_test.go

+17-4
Original file line numberDiff line numberDiff line change
@@ -193,8 +193,16 @@ func initIntegrationTest() {
193193
log.Fatal("db.Exec: %v", err)
194194
}
195195
case setting.Database.UsePostgreSQL:
196-
db, err := sql.Open("postgres", fmt.Sprintf("postgres://%s:%s@%s/?sslmode=%s",
197-
setting.Database.User, setting.Database.Passwd, setting.Database.Host, setting.Database.SSLMode))
196+
var db *sql.DB
197+
var err error
198+
if setting.Database.Host[0] == '/' {
199+
db, err = sql.Open("postgres", fmt.Sprintf("postgres://%s:%s@/%s?sslmode=%s&host=%s",
200+
setting.Database.User, setting.Database.Passwd, setting.Database.Name, setting.Database.SSLMode, setting.Database.Host))
201+
} else {
202+
db, err = sql.Open("postgres", fmt.Sprintf("postgres://%s:%s@%s/%s?sslmode=%s",
203+
setting.Database.User, setting.Database.Passwd, setting.Database.Host, setting.Database.Name, setting.Database.SSLMode))
204+
}
205+
198206
defer db.Close()
199207
if err != nil {
200208
log.Fatal("sql.Open: %v", err)
@@ -216,8 +224,13 @@ func initIntegrationTest() {
216224
}
217225
db.Close()
218226

219-
db, err = sql.Open("postgres", fmt.Sprintf("postgres://%s:%s@%s/%s?sslmode=%s",
220-
setting.Database.User, setting.Database.Passwd, setting.Database.Host, setting.Database.Name, setting.Database.SSLMode))
227+
if setting.Database.Host[0] == '/' {
228+
db, err = sql.Open("postgres", fmt.Sprintf("postgres://%s:%s@/%s?sslmode=%s&host=%s",
229+
setting.Database.User, setting.Database.Passwd, setting.Database.Name, setting.Database.SSLMode, setting.Database.Host))
230+
} else {
231+
db, err = sql.Open("postgres", fmt.Sprintf("postgres://%s:%s@%s/%s?sslmode=%s",
232+
setting.Database.User, setting.Database.Passwd, setting.Database.Host, setting.Database.Name, setting.Database.SSLMode))
233+
}
221234
// This is a different db object; requires a different Close()
222235
defer db.Close()
223236
if err != nil {

integrations/migration-test/migration_test.go

+25-7
Original file line numberDiff line numberDiff line change
@@ -185,9 +185,17 @@ func restoreOldDB(t *testing.T, version string) bool {
185185
db.Close()
186186

187187
case setting.Database.UsePostgreSQL:
188-
db, err := sql.Open("postgres", fmt.Sprintf("postgres://%s:%s@%s/?sslmode=%s",
189-
setting.Database.User, setting.Database.Passwd, setting.Database.Host, setting.Database.SSLMode))
190-
assert.NoError(t, err)
188+
var db *sql.DB
189+
var err error
190+
if setting.Database.Host[0] == '/' {
191+
db, err = sql.Open("postgres", fmt.Sprintf("postgres://%s:%s@/?sslmode=%s&host=%s",
192+
setting.Database.User, setting.Database.Passwd, setting.Database.SSLMode, setting.Database.Host))
193+
assert.NoError(t, err)
194+
} else {
195+
db, err = sql.Open("postgres", fmt.Sprintf("postgres://%s:%s@%s/?sslmode=%s",
196+
setting.Database.User, setting.Database.Passwd, setting.Database.Host, setting.Database.SSLMode))
197+
assert.NoError(t, err)
198+
}
191199
defer db.Close()
192200

193201
_, err = db.Exec(fmt.Sprintf("DROP DATABASE IF EXISTS %s", setting.Database.Name))
@@ -199,8 +207,13 @@ func restoreOldDB(t *testing.T, version string) bool {
199207

200208
// Check if we need to setup a specific schema
201209
if len(setting.Database.Schema) != 0 {
202-
db, err = sql.Open("postgres", fmt.Sprintf("postgres://%s:%s@%s/%s?sslmode=%s",
203-
setting.Database.User, setting.Database.Passwd, setting.Database.Host, setting.Database.Name, setting.Database.SSLMode))
210+
if setting.Database.Host[0] == '/' {
211+
db, err = sql.Open("postgres", fmt.Sprintf("postgres://%s:%s@/%s?sslmode=%s&host=%s",
212+
setting.Database.User, setting.Database.Passwd, setting.Database.Name, setting.Database.SSLMode, setting.Database.Host))
213+
} else {
214+
db, err = sql.Open("postgres", fmt.Sprintf("postgres://%s:%s@%s/%s?sslmode=%s",
215+
setting.Database.User, setting.Database.Passwd, setting.Database.Host, setting.Database.Name, setting.Database.SSLMode))
216+
}
204217
if !assert.NoError(t, err) {
205218
return false
206219
}
@@ -225,8 +238,13 @@ func restoreOldDB(t *testing.T, version string) bool {
225238
db.Close()
226239
}
227240

228-
db, err = sql.Open("postgres", fmt.Sprintf("postgres://%s:%s@%s/%s?sslmode=%s",
229-
setting.Database.User, setting.Database.Passwd, setting.Database.Host, setting.Database.Name, setting.Database.SSLMode))
241+
if setting.Database.Host[0] == '/' {
242+
db, err = sql.Open("postgres", fmt.Sprintf("postgres://%s:%s@/%s?sslmode=%s&host=%s",
243+
setting.Database.User, setting.Database.Passwd, setting.Database.Name, setting.Database.SSLMode, setting.Database.Host))
244+
} else {
245+
db, err = sql.Open("postgres", fmt.Sprintf("postgres://%s:%s@%s/%s?sslmode=%s",
246+
setting.Database.User, setting.Database.Passwd, setting.Database.Host, setting.Database.Name, setting.Database.SSLMode))
247+
}
230248
assert.NoError(t, err)
231249
defer db.Close()
232250

0 commit comments

Comments
 (0)