diff --git a/tests/go.mod b/tests/go.mod index 542a69f..5b7d591 100644 --- a/tests/go.mod +++ b/tests/go.mod @@ -6,21 +6,20 @@ toolchain go1.26.4 require ( cloud.google.com/go/pubsub/v2 v2.6.0 - connectrpc.com/connect v1.20.0 github.com/google/uuid v1.6.0 - github.com/roadrunner-server/api-go/v6 v6.0.0-beta.12 + github.com/roadrunner-server/api-go/v6 v6.0.0-beta.12.0.20260714200341-93604e5012d4 github.com/roadrunner-server/api-plugins/v6 v6.0.0-beta.2 github.com/roadrunner-server/config/v6 v6.0.0-beta.3 github.com/roadrunner-server/endure/v2 v2.6.2 github.com/roadrunner-server/google-pub-sub/v6 v6.0.0 - github.com/roadrunner-server/informer/v6 v6.0.0-beta.2 - github.com/roadrunner-server/jobs/v6 v6.0.0-beta.7 + github.com/roadrunner-server/goridge/v4 v4.0.0-beta.2.0.20260714195909-75e9ece43063 + github.com/roadrunner-server/informer/v6 v6.0.0-beta.2.0.20260714201850-2854c943433a + github.com/roadrunner-server/jobs/v6 v6.0.0-beta.7.0.20260714202317-a904df360b84 github.com/roadrunner-server/logger/v6 v6.0.0-beta.3 - github.com/roadrunner-server/resetter/v6 v6.0.0-beta.3 - github.com/roadrunner-server/rpc/v6 v6.0.0-beta.4 + github.com/roadrunner-server/resetter/v6 v6.0.0-beta.3.0.20260714201533-91a174bb65d4 + github.com/roadrunner-server/rpc/v6 v6.0.0-beta.4.0.20260714200548-15b82bc47898 github.com/roadrunner-server/server/v6 v6.0.0-beta.6 github.com/stretchr/testify v1.11.1 - golang.org/x/net v0.56.0 google.golang.org/api v0.287.0 google.golang.org/grpc v1.82.0 google.golang.org/protobuf v1.36.11 @@ -34,7 +33,6 @@ require ( cloud.google.com/go/auth/oauth2adapt v0.2.8 // indirect cloud.google.com/go/compute/metadata v0.9.0 // indirect cloud.google.com/go/iam v1.11.0 // indirect - connectrpc.com/grpcreflect v1.3.0 // indirect github.com/beorn7/perks v1.0.1 // indirect github.com/cespare/xxhash/v2 v2.3.0 // indirect github.com/davecgh/go-spew v1.1.2-0.20180830191138-d8f796af33cc // indirect @@ -60,7 +58,6 @@ require ( github.com/prometheus/procfs v0.21.1 // indirect github.com/roadrunner-server/errors v1.5.0 // indirect github.com/roadrunner-server/events v1.0.1 // indirect - github.com/roadrunner-server/goridge/v4 v4.0.0-beta.2 // indirect github.com/roadrunner-server/pool/v2 v2.0.0-beta.1 // indirect github.com/roadrunner-server/priority_queue v1.0.6 // indirect github.com/roadrunner-server/tcplisten v1.5.2 // indirect @@ -87,6 +84,7 @@ require ( go.uber.org/zap v1.28.0 // indirect go.yaml.in/yaml/v3 v3.0.4 // indirect golang.org/x/crypto v0.53.0 // indirect + golang.org/x/net v0.56.0 // indirect golang.org/x/oauth2 v0.36.0 // indirect golang.org/x/sync v0.21.0 // indirect golang.org/x/sys v0.46.0 // indirect diff --git a/tests/go.sum b/tests/go.sum index b62d38c..537233c 100644 --- a/tests/go.sum +++ b/tests/go.sum @@ -11,10 +11,6 @@ cloud.google.com/go/iam v1.11.0 h1:KieQ9Pb+LLPak1O3Rv3GgCxhnmkYf7Xyh0P5HfF1jFM= cloud.google.com/go/iam v1.11.0/go.mod h1:KP+nKGugNJW4LcLx1uEZcq1ok5sQHFaQehQNl4QDgV4= cloud.google.com/go/pubsub/v2 v2.6.0 h1:8pjR0id+GTB+krKx5G6AGJoYrHog58w2Q89PCOrfM64= cloud.google.com/go/pubsub/v2 v2.6.0/go.mod h1:4anqvV/w8Pcgu2tO0qr2XgsF3GXHowzryfQ5gOnVmWY= -connectrpc.com/connect v1.20.0 h1:6TNDAB+WeNd2uolWNlYczB5E0KNNaVMNUEx8JEUsPmQ= -connectrpc.com/connect v1.20.0/go.mod h1:A2ygJrukXwWy32vkCAAHNVguZrqZ+jeZ9rGRnGR4dN4= -connectrpc.com/grpcreflect v1.3.0 h1:Y4V+ACf8/vOb1XOc251Qun7jMB75gCUNw6llvB9csXc= -connectrpc.com/grpcreflect v1.3.0/go.mod h1:nfloOtCS8VUQOQ1+GTdFzVg2CJo4ZGaat8JIovCtDYs= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= github.com/beorn7/perks v1.0.1 h1:VlbKKnNfV8bJzeqoa4cOKqO6bYr3WgKZxO8Z16+hsOM= github.com/beorn7/perks v1.0.1/go.mod h1:G2ZrVWU2WbWT9wwq4/hrbKbnv/1ERSJQ0ibhJ6rlkpw= @@ -117,8 +113,8 @@ github.com/prometheus/common v0.69.0 h1:OA85nJQS/T/MaYh/Q2CcgDKSGWqNIgrBDvDH85Cu github.com/prometheus/common v0.69.0/go.mod h1:ZzL3f6u94qUxh9p+tJTrF+FvBS1XXbbRAZCQkytAL0Y= github.com/prometheus/procfs v0.21.1 h1:GljZCt+zSTS+NZq88cyQ1LjZ+RCHp3uVuabBWA5+OJI= github.com/prometheus/procfs v0.21.1/go.mod h1:aB55Cww9pdSJVHk0hUf0inxWyyjPogFIjmHKYgMKmtY= -github.com/roadrunner-server/api-go/v6 v6.0.0-beta.12 h1:FcRcCvW9OfQvH45SFsI21VoHpOOov56OvOSnO4UKvXs= -github.com/roadrunner-server/api-go/v6 v6.0.0-beta.12/go.mod h1:prGWJ2GoF5YD5PIG7Tb6VKulU3bWoFwr9DCwgxheb80= +github.com/roadrunner-server/api-go/v6 v6.0.0-beta.12.0.20260714200341-93604e5012d4 h1:G5RlEP+rKKdarSw/ZcpWlpyrCne1AbuSZB8p9TagU3I= +github.com/roadrunner-server/api-go/v6 v6.0.0-beta.12.0.20260714200341-93604e5012d4/go.mod h1:Y4rsabWjr4Y10Jg6H8J5NDitQqlnXmGhCdgR+zyLYkI= github.com/roadrunner-server/api-plugins/v6 v6.0.0-beta.2 h1:GqsZzWQ5jMXRF1O/b8IqFz9PLpS7Ui0K4OyACLql2MI= github.com/roadrunner-server/api-plugins/v6 v6.0.0-beta.2/go.mod h1:2v4yUK5Kvbvq8C3IkDoBkuamq9h+7i/JLjyf7k1j5JM= github.com/roadrunner-server/config/v6 v6.0.0-beta.3 h1:G0EUzJ6Yw4UnleM6BhnOBbYPXKDHRmCJiGhC3nXDBwI= @@ -129,22 +125,22 @@ github.com/roadrunner-server/errors v1.5.0 h1:unG7LKIZrSzkCCF3YLRLA5VyqE0KKomofX github.com/roadrunner-server/errors v1.5.0/go.mod h1:g9fo/T2C13cWRDR9PW1r0ZAOSQfNhWAZawyfkGiaHuI= github.com/roadrunner-server/events v1.0.1 h1:waCkKhxhzdK3VcI1xG22l+h+0J+Nfdpxjhyy01Un+kI= github.com/roadrunner-server/events v1.0.1/go.mod h1:WZRqoEVaFm209t52EuoT7ISUtvX6BrCi6bI/7pjkVC0= -github.com/roadrunner-server/goridge/v4 v4.0.0-beta.2 h1:MgH6oiSgcl+vphsQ6JpyedkXQ/DPf8zVpn0z7rdBp10= -github.com/roadrunner-server/goridge/v4 v4.0.0-beta.2/go.mod h1:Wv9CBO9VIU92e5iZIuehLHKakXgMkOzxoT4/oHDjIUA= -github.com/roadrunner-server/informer/v6 v6.0.0-beta.2 h1:tJsNgbQ28mK5CdQCpU+BY6ScWP884nhpGYfwJalZOlU= -github.com/roadrunner-server/informer/v6 v6.0.0-beta.2/go.mod h1:nDn5jjR1ZI1Xhz01j32bSs4PHv78IE96rcqdFr/ZvgU= -github.com/roadrunner-server/jobs/v6 v6.0.0-beta.7 h1:RNb8fkVk2GO02E3FFyCmYz6WFkeXrBfV/daK84WXAD0= -github.com/roadrunner-server/jobs/v6 v6.0.0-beta.7/go.mod h1:kHTJXgjMe/7t9vJN4imEO3RlB7crnnp59X8TmgiEOqw= +github.com/roadrunner-server/goridge/v4 v4.0.0-beta.2.0.20260714195909-75e9ece43063 h1:0mNGmXgYR2/hUhPQde+GJFzj/UQ6vqrLAHcwa5C5rqA= +github.com/roadrunner-server/goridge/v4 v4.0.0-beta.2.0.20260714195909-75e9ece43063/go.mod h1:1aHppV68y/VqRED/AsfNg59sft9aQOhqgr5Z5n49jbM= +github.com/roadrunner-server/informer/v6 v6.0.0-beta.2.0.20260714201850-2854c943433a h1:AiM0l5YReltbsn+/LIS4MAfTD+XWSnijeIlffLh9q58= +github.com/roadrunner-server/informer/v6 v6.0.0-beta.2.0.20260714201850-2854c943433a/go.mod h1:uQGHMxNdwu85+i27kDMGTCVWsvBqQIZhTSGakFMSYu8= +github.com/roadrunner-server/jobs/v6 v6.0.0-beta.7.0.20260714202317-a904df360b84 h1:FW3BxRdj3Sz5aYQ/joDQWTb66KQqyqyu8mbrltX0s4k= +github.com/roadrunner-server/jobs/v6 v6.0.0-beta.7.0.20260714202317-a904df360b84/go.mod h1:MidnjQZiP9m3LfLJKtUlXZ75cU+xHuOpLap89jjnPIo= github.com/roadrunner-server/logger/v6 v6.0.0-beta.3 h1:eoJKXAUSyykDfVX6eTUhmAn6Y8pS/LyI5fDP4H+G5rQ= github.com/roadrunner-server/logger/v6 v6.0.0-beta.3/go.mod h1:MwHb3AbltHYtu7nRpml5NeYu7O+W8rCpDBeNTTEoE1M= github.com/roadrunner-server/pool/v2 v2.0.0-beta.1 h1:jpYXFtdD6QGAdAGPgMxrNi3j1CegCRpb2y+A+3GnXFA= github.com/roadrunner-server/pool/v2 v2.0.0-beta.1/go.mod h1:Bo1wT7RtL3eyQHXBUohNhtj/yAmRt6Rq8smuBg5pWkY= github.com/roadrunner-server/priority_queue v1.0.6 h1:x8bcMyjWs2Z4ySbO9BTP8Dzy2prCuazJY9HHrVTmUVY= github.com/roadrunner-server/priority_queue v1.0.6/go.mod h1:aJ2D9s18+OGpFfNgwoIduraaFYBGv4FKElnpzqO+TBI= -github.com/roadrunner-server/resetter/v6 v6.0.0-beta.3 h1:+hkbf/kXpvFjx4LfkuH8dvR07rBwrStmcqJaffsfL0g= -github.com/roadrunner-server/resetter/v6 v6.0.0-beta.3/go.mod h1:zV+MfVo6jtvrop+04HNcr4z3b/22qyKXukK29kzagYc= -github.com/roadrunner-server/rpc/v6 v6.0.0-beta.4 h1:Qj2nrHIWOHE9Tys+FBG2IdoPtzgIUh6juQ5wXLGGDMw= -github.com/roadrunner-server/rpc/v6 v6.0.0-beta.4/go.mod h1:k5KT3fpnJVd27m0HbGGBiTPXlWI6eJdd6C+ohp5IE0U= +github.com/roadrunner-server/resetter/v6 v6.0.0-beta.3.0.20260714201533-91a174bb65d4 h1:CTtuTFi2YYCkQx/Tu3ANfCPAkgle4AI6RGue70/Vb10= +github.com/roadrunner-server/resetter/v6 v6.0.0-beta.3.0.20260714201533-91a174bb65d4/go.mod h1:74CsBUTfnP9QhUpsUg2XqgurxCQYhxtPikk1C1iEfRc= +github.com/roadrunner-server/rpc/v6 v6.0.0-beta.4.0.20260714200548-15b82bc47898 h1:nc1MwAAG02mwOm76TO7sZZLt6ToKlkIz98shqAsxGoA= +github.com/roadrunner-server/rpc/v6 v6.0.0-beta.4.0.20260714200548-15b82bc47898/go.mod h1:pC636ll86dk1PJ2LoYbvurKMUARbF8Ckn4WBGvPXO8A= github.com/roadrunner-server/server/v6 v6.0.0-beta.6 h1:CPtH4eIYkeRKi5cPXxb0+J+LI824cqhIGXAfcH+nkjA= github.com/roadrunner-server/server/v6 v6.0.0-beta.6/go.mod h1:SbODuCzC2gcbFhAmJDWvjf34pPrUWP5NxxVsTRQDuZ4= github.com/roadrunner-server/tcplisten v1.5.2 h1:nn8yXYrhRDkfQ9AAu4V075uT4fZRmOnpxkawgE+bWPA= diff --git a/tests/helpers/helpers.go b/tests/helpers/helpers.go index be66668..585bd22 100644 --- a/tests/helpers/helpers.go +++ b/tests/helpers/helpers.go @@ -2,25 +2,22 @@ package helpers import ( "context" - "crypto/tls" "errors" "fmt" "net" - "net/http" + "net/rpc" "slices" "testing" "time" "cloud.google.com/go/pubsub/v2" "cloud.google.com/go/pubsub/v2/apiv1/pubsubpb" - "connectrpc.com/connect" "github.com/google/uuid" jobsProto "github.com/roadrunner-server/api-go/v6/jobs/v2" - "github.com/roadrunner-server/api-go/v6/jobs/v2/jobsV2connect" jobState "github.com/roadrunner-server/api-plugins/v6/jobs" + goridgeRpc "github.com/roadrunner-server/goridge/v4/pkg/rpc" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" - "golang.org/x/net/http2" otherit "google.golang.org/api/iterator" "google.golang.org/api/option" "google.golang.org/grpc" @@ -28,27 +25,19 @@ import ( "google.golang.org/protobuf/types/known/emptypb" ) -func newHTTPClient(t *testing.T) *http.Client { +func NewJobsClient(t *testing.T, address string) *rpc.Client { t.Helper() - httpc := &http.Client{Transport: &http2.Transport{ - AllowHTTP: true, - DialTLSContext: func(ctx context.Context, network, addr string, _ *tls.Config) (net.Conn, error) { - return new(net.Dialer).DialContext(ctx, network, addr) - }, - }} - t.Cleanup(httpc.CloseIdleConnections) - return httpc -} - -func NewJobsClient(t *testing.T, address string) jobsV2connect.JobsServiceClient { - t.Helper() - return jobsV2connect.NewJobsServiceClient(newHTTPClient(t), "http://"+address) + conn, err := new(net.Dialer).DialContext(t.Context(), "tcp", address) + require.NoError(t, err) + client := rpc.NewClientWithCodec(goridgeRpc.NewClientCodec(conn)) + t.Cleanup(func() { _ = client.Close() }) + return client } func ResumePipes(address string, pipes ...string) func(t *testing.T) { return func(t *testing.T) { client := NewJobsClient(t, address) - _, err := client.Resume(t.Context(), connect.NewRequest(&jobsProto.Pipelines{Pipelines: slices.Clone(pipes)})) + err := client.Call("jobs.Resume", &jobsProto.Pipelines{Pipelines: slices.Clone(pipes)}, &jobsProto.JobsHandlerResponse{}) require.NoError(t, err) } } @@ -56,7 +45,7 @@ func ResumePipes(address string, pipes ...string) func(t *testing.T) { func PushToPipe(pipeline string, autoAck bool, address string) func(t *testing.T) { return func(t *testing.T) { client := NewJobsClient(t, address) - _, err := client.Push(t.Context(), connect.NewRequest(&jobsProto.PushRequest{Job: createDummyJob(pipeline, autoAck)})) + err := client.Call("jobs.Push", &jobsProto.PushRequest{Job: createDummyJob(pipeline, autoAck)}, &jobsProto.JobsHandlerResponse{}) require.NoError(t, err) } } @@ -79,7 +68,7 @@ func createDummyJob(pipeline string, autoAck bool) *jobsProto.Job { func PausePipelines(address string, pipes ...string) func(t *testing.T) { return func(t *testing.T) { client := NewJobsClient(t, address) - _, err := client.Pause(t.Context(), connect.NewRequest(&jobsProto.Pipelines{Pipelines: slices.Clone(pipes)})) + err := client.Call("jobs.Pause", &jobsProto.Pipelines{Pipelines: slices.Clone(pipes)}, &jobsProto.JobsHandlerResponse{}) assert.NoError(t, err) } } @@ -93,7 +82,7 @@ func DestroyPipelines(address string, pipes ...string) func(t *testing.T) { // without asserting. Some negative tests intentionally destroy // non-existent pipelines and rely on this silent-after-retry pattern. for range 10 { - _, err := client.Destroy(t.Context(), connect.NewRequest(req)) + err := client.Call("jobs.Destroy", req, &jobsProto.Pipelines{}) if err == nil { return } @@ -106,12 +95,12 @@ func Stats(address string, state *jobState.State) func(t *testing.T) { return func(t *testing.T) { client := NewJobsClient(t, address) - resp, err := client.GetStats(t.Context(), connect.NewRequest(&emptypb.Empty{})) + resp := &jobsProto.Stats{} + err := client.Call("jobs.GetStats", &emptypb.Empty{}, resp) require.NoError(t, err) - require.NotNil(t, resp) - require.NotEmpty(t, resp.Msg.GetStats()) + require.NotEmpty(t, resp.GetStats()) - st := resp.Msg.GetStats()[0] + st := resp.GetStats()[0] state.Queue = st.GetQueue() state.Pipeline = st.GetPipeline() state.Driver = st.GetDriver() @@ -136,7 +125,7 @@ func DeclarePipe(topic string, address string, pipeline string) func(t *testing. "project_id": "test", }, } - _, err := client.Declare(t.Context(), connect.NewRequest(req)) + err := client.Call("jobs.Declare", req, &jobsProto.JobsHandlerResponse{}) assert.NoError(t, err) } }