add PingContext support for go1.8+ (#766)
This commit is contained in:
parent
865979f716
commit
23049ffafa
|
@ -0,0 +1,26 @@
|
||||||
|
// Copyright 2017 The Xorm Authors. All rights reserved.
|
||||||
|
// Use of this source code is governed by a BSD-style
|
||||||
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
// +build go1.8
|
||||||
|
|
||||||
|
package xorm
|
||||||
|
|
||||||
|
import "context"
|
||||||
|
|
||||||
|
// PingContext tests if database is alive
|
||||||
|
func (engine *Engine) PingContext(ctx context.Context) error {
|
||||||
|
session := engine.NewSession()
|
||||||
|
defer session.Close()
|
||||||
|
return session.PingContext(ctx)
|
||||||
|
}
|
||||||
|
|
||||||
|
// PingContext test if database is ok
|
||||||
|
func (session *Session) PingContext(ctx context.Context) error {
|
||||||
|
if session.isAutoClose {
|
||||||
|
defer session.Close()
|
||||||
|
}
|
||||||
|
|
||||||
|
session.engine.logger.Infof("PING DATABASE %v", session.engine.DriverName())
|
||||||
|
return session.DB().PingContext(ctx)
|
||||||
|
}
|
|
@ -0,0 +1,24 @@
|
||||||
|
// Copyright 2017 The Xorm Authors. All rights reserved.
|
||||||
|
// Use of this source code is governed by a BSD-style
|
||||||
|
// license that can be found in the LICENSE file.
|
||||||
|
|
||||||
|
// +build go1.8
|
||||||
|
|
||||||
|
package xorm
|
||||||
|
|
||||||
|
import (
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
"github.com/stretchr/testify/assert"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestPingContext(t *testing.T) {
|
||||||
|
assert.NoError(t, prepareEngine())
|
||||||
|
|
||||||
|
// TODO: Since EngineInterface should be compitable with old Go version, PingContext is not supported.
|
||||||
|
/*
|
||||||
|
ctx, _ := context.WithTimeout(context.Background(), 10*time.Second)
|
||||||
|
err := testEngine.PingContext(ctx)
|
||||||
|
assert.NoError(t, err)
|
||||||
|
*/
|
||||||
|
}
|
Loading…
Reference in New Issue