mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
InfluxDB: Flight SQL test, add function to search for free port (#89255)
* add function to search for free port * Update pkg/tsdb/influxdb/fsql/fsql_test.go Co-authored-by: Dave Henderson <dave.henderson@grafana.com> * Update pkg/tsdb/influxdb/fsql/fsql_test.go Co-authored-by: Dave Henderson <dave.henderson@grafana.com> * fix test * fix go linting issue * fix go lint --------- Co-authored-by: Dave Henderson <dave.henderson@grafana.com>
This commit is contained in:
parent
51c0644e41
commit
8fddf30621
@ -4,6 +4,7 @@ import (
|
|||||||
"context"
|
"context"
|
||||||
"database/sql"
|
"database/sql"
|
||||||
"encoding/json"
|
"encoding/json"
|
||||||
|
"net"
|
||||||
"testing"
|
"testing"
|
||||||
|
|
||||||
"github.com/apache/arrow/go/v15/arrow/flight"
|
"github.com/apache/arrow/go/v15/arrow/flight"
|
||||||
@ -21,9 +22,14 @@ type FSQLTestSuite struct {
|
|||||||
suite.Suite
|
suite.Suite
|
||||||
db *sql.DB
|
db *sql.DB
|
||||||
server flight.Server
|
server flight.Server
|
||||||
|
addr string
|
||||||
}
|
}
|
||||||
|
|
||||||
func (suite *FSQLTestSuite) SetupTest() {
|
func (suite *FSQLTestSuite) SetupTest() {
|
||||||
|
addr, _ := freeport(suite.T())
|
||||||
|
|
||||||
|
suite.addr = addr
|
||||||
|
|
||||||
db, err := example.CreateDB()
|
db, err := example.CreateDB()
|
||||||
require.NoError(suite.T(), err)
|
require.NoError(suite.T(), err)
|
||||||
|
|
||||||
@ -32,7 +38,7 @@ func (suite *FSQLTestSuite) SetupTest() {
|
|||||||
sqliteServer.Alloc = memory.NewCheckedAllocator(memory.DefaultAllocator)
|
sqliteServer.Alloc = memory.NewCheckedAllocator(memory.DefaultAllocator)
|
||||||
server := flight.NewServerWithMiddleware(nil)
|
server := flight.NewServerWithMiddleware(nil)
|
||||||
server.RegisterFlightService(flightsql.NewFlightServer(sqliteServer))
|
server.RegisterFlightService(flightsql.NewFlightServer(sqliteServer))
|
||||||
err = server.Init("localhost:12345")
|
err = server.Init(suite.addr)
|
||||||
require.NoError(suite.T(), err)
|
require.NoError(suite.T(), err)
|
||||||
go func() {
|
go func() {
|
||||||
err := server.Serve()
|
err := server.Serve()
|
||||||
@ -59,7 +65,7 @@ func (suite *FSQLTestSuite) TestIntegration_QueryData() {
|
|||||||
&models.DatasourceInfo{
|
&models.DatasourceInfo{
|
||||||
HTTPClient: nil,
|
HTTPClient: nil,
|
||||||
Token: "secret",
|
Token: "secret",
|
||||||
URL: "http://localhost:12345",
|
URL: "http://" + suite.addr,
|
||||||
DbName: "influxdb",
|
DbName: "influxdb",
|
||||||
Version: "test",
|
Version: "test",
|
||||||
HTTPMode: "proxy",
|
HTTPMode: "proxy",
|
||||||
@ -109,3 +115,15 @@ func mustQueryJSON(t *testing.T, refID, sql string) []byte {
|
|||||||
}
|
}
|
||||||
return b
|
return b
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func freeport(t *testing.T) (addr string, err error) {
|
||||||
|
l, err := net.ListenTCP("tcp", &net.TCPAddr{IP: net.ParseIP("127.0.0.1")})
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
defer func() {
|
||||||
|
err = l.Close()
|
||||||
|
}()
|
||||||
|
a := l.Addr().(*net.TCPAddr)
|
||||||
|
return a.String(), nil
|
||||||
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user