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:
Brendan O'Handley 2024-06-17 09:16:52 -05:00 committed by GitHub
parent 51c0644e41
commit 8fddf30621
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -4,6 +4,7 @@ import (
"context"
"database/sql"
"encoding/json"
"net"
"testing"
"github.com/apache/arrow/go/v15/arrow/flight"
@ -21,9 +22,14 @@ type FSQLTestSuite struct {
suite.Suite
db *sql.DB
server flight.Server
addr string
}
func (suite *FSQLTestSuite) SetupTest() {
addr, _ := freeport(suite.T())
suite.addr = addr
db, err := example.CreateDB()
require.NoError(suite.T(), err)
@ -32,7 +38,7 @@ func (suite *FSQLTestSuite) SetupTest() {
sqliteServer.Alloc = memory.NewCheckedAllocator(memory.DefaultAllocator)
server := flight.NewServerWithMiddleware(nil)
server.RegisterFlightService(flightsql.NewFlightServer(sqliteServer))
err = server.Init("localhost:12345")
err = server.Init(suite.addr)
require.NoError(suite.T(), err)
go func() {
err := server.Serve()
@ -59,7 +65,7 @@ func (suite *FSQLTestSuite) TestIntegration_QueryData() {
&models.DatasourceInfo{
HTTPClient: nil,
Token: "secret",
URL: "http://localhost:12345",
URL: "http://" + suite.addr,
DbName: "influxdb",
Version: "test",
HTTPMode: "proxy",
@ -109,3 +115,15 @@ func mustQueryJSON(t *testing.T, refID, sql string) []byte {
}
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
}