diff --git a/.go-version b/.go-version index 26a9e99b..0e0c284d 100644 --- a/.go-version +++ b/.go-version @@ -1 +1 @@ -1.25.4 +1.25.9 diff --git a/go.mod b/go.mod index e6f29fcc..bb50df9e 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/open-policy-agent/eopa -go 1.25.2 +go 1.25.5 require ( cloud.google.com/go/storage v1.58.0 @@ -54,7 +54,7 @@ require ( github.com/open-policy-agent/opa v1.12.1 github.com/open-policy-agent/opa-envoy-plugin v1.12.0-envoy github.com/open-policy-agent/regal v0.37.0 - github.com/ory/dockertest/v3 v3.12.0 + github.com/ory/dockertest/v4 v4.0.0-beta.4 github.com/prometheus/client_golang v1.23.2 github.com/redis/go-redis/v9 v9.17.2 github.com/redpanda-data/benthos/v4 v4.63.0 @@ -126,6 +126,8 @@ require ( github.com/lestrrat-go/option/v2 v2.0.0 // indirect github.com/minio/asm2plan9s v0.0.0-20200509001527-cdd76441f9d8 // indirect github.com/minio/c2goasm v0.0.0-20190812172519-36a3d3bbc4f3 // indirect + github.com/moby/moby/api v1.54.0 // indirect + github.com/moby/moby/client v0.3.0 // indirect github.com/mschoch/smat v0.2.0 // indirect github.com/olekukonko/cat v0.0.0-20250911104152-50322a0618f6 // indirect github.com/olekukonko/errors v1.1.0 // indirect @@ -156,7 +158,7 @@ require ( github.com/Azure/azure-sdk-for-go/sdk/azcore v1.18.0 // indirect github.com/Azure/azure-sdk-for-go/sdk/internal v1.11.1 // indirect github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.2.1 // indirect - github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 // indirect + github.com/Azure/go-ansiterm v0.0.0-20250102033503-faa5f7b0171c // indirect github.com/Azure/go-ntlmssp v0.0.0-20221128193559-754e69321358 // indirect github.com/BurntSushi/toml v1.5.0 // indirect github.com/DataDog/zstd v1.5.2 // indirect @@ -167,7 +169,6 @@ require ( github.com/Jeffail/grok v1.1.0 // indirect github.com/Jeffail/shutdown v1.1.0 // indirect github.com/Microsoft/go-winio v0.6.2 // indirect - github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5 // indirect github.com/OneOfOne/xxhash v1.2.8 // indirect github.com/ProtonMail/go-crypto v1.3.0 // indirect github.com/apache/arrow-go/v18 v18.4.0 // indirect @@ -203,7 +204,6 @@ require ( github.com/cncf/xds/go v0.0.0-20251022180443-0feb69152e9f // indirect github.com/cockroachdb/apd/v3 v3.2.1 // indirect github.com/containerd/containerd/v2 v2.2.0 // indirect - github.com/containerd/continuity v0.4.5 // indirect github.com/containerd/errdefs v1.0.0 // indirect github.com/containerd/errdefs/pkg v0.3.0 // indirect github.com/containerd/log v0.1.0 // indirect @@ -218,7 +218,6 @@ require ( github.com/dgraph-io/ristretto/v2 v2.3.0 // indirect github.com/dgryski/go-rendezvous v0.0.0-20200823014737-9f7001d12a5f // indirect github.com/distribution/reference v0.6.0 // indirect - github.com/docker/cli v27.4.1+incompatible // indirect github.com/docker/docker v28.5.1+incompatible // indirect github.com/docker/go-connections v0.6.0 // indirect github.com/docker/go-units v0.5.0 // indirect @@ -317,7 +316,7 @@ require ( github.com/moby/sys/sequential v0.6.0 // indirect github.com/moby/sys/user v0.4.0 // indirect github.com/moby/sys/userns v0.1.0 // indirect - github.com/moby/term v0.5.0 // indirect + github.com/moby/term v0.5.2 // indirect github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd // indirect github.com/modern-go/reflect2 v1.0.3-0.20250322232337-35a7c28c31ee // indirect github.com/montanaflynn/stats v0.7.1 // indirect @@ -332,7 +331,6 @@ require ( github.com/olekukonko/tablewriter v1.1.0 // indirect github.com/opencontainers/go-digest v1.0.0 // indirect github.com/opencontainers/image-spec v1.1.1 // indirect - github.com/opencontainers/runc v1.2.8 // indirect github.com/owenrumney/go-sarif/v2 v2.3.3 // indirect github.com/patrickmn/go-cache v2.1.0+incompatible // indirect github.com/pdevine/go-asciisprite v0.1.6 // indirect diff --git a/go.sum b/go.sum index f743c2e2..6f2085e1 100644 --- a/go.sum +++ b/go.sum @@ -52,8 +52,8 @@ github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/internal v1.1.1 h1:bFWuo github.com/Azure/azure-sdk-for-go/sdk/security/keyvault/internal v1.1.1/go.mod h1:Vih/3yc6yac2JzU4hzpaDupBJP0Flaia9rXXrU8xyww= github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.2.1 h1:AMf7YbZOZIW5b66cXNHMWWT/zkjhz5+a+k/3x40EO7E= github.com/Azure/azure-sdk-for-go/sdk/storage/azblob v1.2.1/go.mod h1:uwfk06ZBcvL/g4VHNjurPfVln9NMbsk2XIZxJ+hu81k= -github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161 h1:L/gRVlceqvL25UVaW/CKtUDjefjrs0SPonmDGUVOYP0= -github.com/Azure/go-ansiterm v0.0.0-20230124172434-306776ec8161/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= +github.com/Azure/go-ansiterm v0.0.0-20250102033503-faa5f7b0171c h1:udKWzYgxTojEKWjV8V+WSxDXJ4NFATAsZjh8iIbsQIg= +github.com/Azure/go-ansiterm v0.0.0-20250102033503-faa5f7b0171c/go.mod h1:xomTg63KZ2rFqZQzSB4Vz2SUXa1BpHTVz9L5PTmPC4E= github.com/Azure/go-ntlmssp v0.0.0-20221128193559-754e69321358 h1:mFRzDkZVAjdal+s7s0MwaRv9igoPqLRdzOLzw/8Xvq8= github.com/Azure/go-ntlmssp v0.0.0-20221128193559-754e69321358/go.mod h1:chxPXzSsl7ZWRAuOIE23GDNzjWuZquvFlgA8xmpunjU= github.com/AzureAD/microsoft-authentication-library-for-go v1.4.2 h1:oygO0locgZJe7PpYPXT5A29ZkwJaPqcva7BVeemZOZs= @@ -87,8 +87,6 @@ github.com/Masterminds/squirrel v1.5.4/go.mod h1:NNaOrjSoIDfDA40n7sr2tPNZRfjzjA4 github.com/Microsoft/go-winio v0.5.2/go.mod h1:WpS1mjBmmwHBEWmogvA2mj8546UReBk4v8QkMxJ6pZY= github.com/Microsoft/go-winio v0.6.2 h1:F2VQgta7ecxGYO8k3ZZz3RS8fVIXVxONVUPlNERoyfY= github.com/Microsoft/go-winio v0.6.2/go.mod h1:yd8OoFMLzJbo9gZq8j5qaps8bJ9aShtEA8Ipt1oGCvU= -github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5 h1:TngWCqHvy9oXAN6lEVMRuU21PR1EtLVZJmdB18Gu3Rw= -github.com/Nvveen/Gotty v0.0.0-20120604004816-cd527374f1e5/go.mod h1:lmUJ/7eu/Q8D7ML55dXQrVaamCz2vxCfdQBasLZfHKk= github.com/OneOfOne/xxhash v1.2.8 h1:31czK/TI9sNkxIKfaUfGlU47BAxQ0ztGgd9vPyqimf8= github.com/OneOfOne/xxhash v1.2.8/go.mod h1:eZbhyaAYD41SGSSsnmcpxVoRiQ/MPUTjUdIIOT9Um7Q= github.com/ProtonMail/go-crypto v1.3.0 h1:ILq8+Sf5If5DCpHQp4PbZdS1J7HDFRXz/+xKBiRGFrw= @@ -230,8 +228,6 @@ github.com/cockroachdb/apd/v3 v3.2.1 h1:U+8j7t0axsIgvQUqthuNm82HIrYXodOV2iWLWtEa github.com/cockroachdb/apd/v3 v3.2.1/go.mod h1:klXJcjp+FffLTHlhIG69tezTDvdP065naDsHzKhYSqc= github.com/containerd/containerd/v2 v2.2.0 h1:K7TqcXy+LnFmZaui2DgHsnp2gAHhVNWYaHlx7HXfys8= github.com/containerd/containerd/v2 v2.2.0/go.mod h1:YCMjKjA4ZA7egdHNi3/93bJR1+2oniYlnS+c0N62HdE= -github.com/containerd/continuity v0.4.5 h1:ZRoN1sXq9u7V6QoHMcVWGhOwDFqZ4B9i5H6un1Wh0x4= -github.com/containerd/continuity v0.4.5/go.mod h1:/lNJvtJKUQStBzpVQ1+rasXO1LAWtUQssk28EZvJ3nE= github.com/containerd/errdefs v1.0.0 h1:tg5yIfIlQIrxYtu9ajqY42W3lpS19XqdxRQeEwYG8PI= github.com/containerd/errdefs v1.0.0/go.mod h1:+YBYIdtsnF4Iw6nWZhJcqGSg/dwvV7tyJ/kCkyJ2k+M= github.com/containerd/errdefs/pkg v0.3.0 h1:9IKJ06FvyNlexW690DXuQNx2KA2cUJXx151Xdx3ZPPE= @@ -247,8 +243,8 @@ github.com/cpuguy83/dockercfg v0.3.2/go.mod h1:sugsbF4//dDlL/i+S+rtpIWp+5h0BHJHf github.com/cpuguy83/go-md2man/v2 v2.0.6/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g= github.com/cpuguy83/go-md2man/v2 v2.0.7 h1:zbFlGlXEAKlwXpmvle3d8Oe3YnkKIK4xSRTd3sHPnBo= github.com/cpuguy83/go-md2man/v2 v2.0.7/go.mod h1:oOW0eioCTA6cOiMLiUPZOpcVxMig6NIQQ7OS05n1F4g= -github.com/creack/pty v1.1.18 h1:n56/Zwd5o6whRC5PMGretI4IdRLlmBXYNjScPaBgsbY= -github.com/creack/pty v1.1.18/go.mod h1:MOBLtS5ELjhRRrroQr9kyvTxUAFNvYEK993ew/Vr4O4= +github.com/creack/pty v1.1.24 h1:bJrF4RRfyJnbTJqzRLHzcGaZK1NeM5kTC9jGgovnR1s= +github.com/creack/pty v1.1.24/go.mod h1:08sCNb52WyoAwi2QDyzUCTgcvVFhUzewun7wtTfvcwE= github.com/cyphar/filepath-securejoin v0.5.1 h1:eYgfMq5yryL4fbWfkLpFFy2ukSELzaJOTaUTuh+oF48= github.com/cyphar/filepath-securejoin v0.5.1/go.mod h1:Sdj7gXlvMcPZsbhwhQ33GguGLDGQL7h7bg04C/+u9jI= github.com/danieljoos/wincred v1.2.2 h1:774zMFJrqaeYCK2W57BgAem/MLi6mtSE47MB6BOJ0i0= @@ -273,8 +269,6 @@ github.com/dimfeld/httptreemux v5.0.1+incompatible h1:Qj3gVcDNoOthBAqftuD596rm4w github.com/dimfeld/httptreemux v5.0.1+incompatible/go.mod h1:rbUlSV+CCpv/SuqUTP/8Bk2O3LyUV436/yaRGkhP6Z0= github.com/distribution/reference v0.6.0 h1:0IXCQ5g4/QMHHkarYzh5l+u8T3t73zM5QvfrDyIgxBk= github.com/distribution/reference v0.6.0/go.mod h1:BbU0aIcezP1/5jX/8MP0YiH4SdvB5Y4f/wlDRiLyi3E= -github.com/docker/cli v27.4.1+incompatible h1:VzPiUlRJ/xh+otB75gva3r05isHMo5wXDfPRi5/b4hI= -github.com/docker/cli v27.4.1+incompatible/go.mod h1:JLrzqnKDaYBop7H2jaqPtU4hHvMKP+vjCwu2uszcLI8= github.com/docker/docker v28.5.1+incompatible h1:Bm8DchhSD2J6PsFzxC35TZo4TLGR2PdW/E69rU45NhM= github.com/docker/docker v28.5.1+incompatible/go.mod h1:eEKB0N0r5NX/I1kEveEz05bcu8tLC/8azJZsviup8Sk= github.com/docker/go-connections v0.6.0 h1:LlMG9azAe1TqfR7sO+NJttz1gy6KO7VJBh+pMmjSD94= @@ -662,6 +656,10 @@ github.com/moby/go-archive v0.1.0 h1:Kk/5rdW/g+H8NHdJW2gsXyZ7UnzvJNOy6VKJqueWdcQ github.com/moby/go-archive v0.1.0/go.mod h1:G9B+YoujNohJmrIYFBpSd54GTUB4lt9S+xVQvsJyFuo= github.com/moby/locker v1.0.1 h1:fOXqR41zeveg4fFODix+1Ch4mj/gT0NE1XJbp/epuBg= github.com/moby/locker v1.0.1/go.mod h1:S7SDdo5zpBK84bzzVlKr2V0hz+7x9hWbYC/kq7oQppc= +github.com/moby/moby/api v1.54.0 h1:7kbUgyiKcoBhm0UrWbdrMs7RX8dnwzURKVbZGy2GnL0= +github.com/moby/moby/api v1.54.0/go.mod h1:8mb+ReTlisw4pS6BRzCMts5M49W5M7bKt1cJy/YbAqc= +github.com/moby/moby/client v0.3.0 h1:UUGL5okry+Aomj3WhGt9Aigl3ZOxZGqR7XPo+RLPlKs= +github.com/moby/moby/client v0.3.0/go.mod h1:HJgFbJRvogDQjbM8fqc1MCEm4mIAGMLjXbgwoZp6jCQ= github.com/moby/patternmatcher v0.6.0 h1:GmP9lR19aU5GqSSFko+5pRqHi+Ohk1O69aFiKkVGiPk= github.com/moby/patternmatcher v0.6.0/go.mod h1:hDPoyOpDY7OrrMDLaYoY3hf52gNCR/YOUYxkhApJIxc= github.com/moby/sys/atomicwriter v0.1.0 h1:kw5D/EqkBwsBFi0ss9v1VG3wIkVhzGvLklJ+w3A14Sw= @@ -672,8 +670,8 @@ github.com/moby/sys/user v0.4.0 h1:jhcMKit7SA80hivmFJcbB1vqmw//wU61Zdui2eQXuMs= github.com/moby/sys/user v0.4.0/go.mod h1:bG+tYYYJgaMtRKgEmuueC0hJEAZWwtIbZTB+85uoHjs= github.com/moby/sys/userns v0.1.0 h1:tVLXkFOxVu9A64/yh59slHVv9ahO9UIev4JZusOLG/g= github.com/moby/sys/userns v0.1.0/go.mod h1:IHUYgu/kao6N8YZlp9Cf444ySSvCmDlmzUcYfDHOl28= -github.com/moby/term v0.5.0 h1:xt8Q1nalod/v7BqbG21f8mQPqH+xAaC9C3N3wfWbVP0= -github.com/moby/term v0.5.0/go.mod h1:8FzsFHVUBGZdbDsJw/ot+X+d5HLUbvklYLJ9uGfcI3Y= +github.com/moby/term v0.5.2 h1:6qk3FJAFDs6i/q3W/pQ97SX192qKfZgGjCQqfCJkgzQ= +github.com/moby/term v0.5.2/go.mod h1:d3djjFCrjnB+fl8NJux+EJzu0msscUP+f8it8hPkFLc= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= @@ -731,11 +729,9 @@ github.com/opencontainers/go-digest v1.0.0 h1:apOUWs51W5PlhuyGyz9FCeeBIOUDA/6nW8 github.com/opencontainers/go-digest v1.0.0/go.mod h1:0JzlMkj0TRzQZfJkVvzbP0HBR3IKzErnv2BNG4W4MAM= github.com/opencontainers/image-spec v1.1.1 h1:y0fUlFfIZhPF1W537XOLg0/fcx6zcHCJwooC2xJA040= github.com/opencontainers/image-spec v1.1.1/go.mod h1:qpqAh3Dmcf36wStyyWU+kCeDgrGnAve2nCC8+7h8Q0M= -github.com/opencontainers/runc v1.2.8 h1:RnEICeDReapbZ5lZEgHvj7E9Q3Eex9toYmaGBsbvU5Q= -github.com/opencontainers/runc v1.2.8/go.mod h1:cC0YkmZcuvr+rtBZ6T7NBoVbMGNAdLa/21vIElJDOzI= github.com/orisano/pixelmatch v0.0.0-20220722002657-fb0b55479cde/go.mod h1:nZgzbfBr3hhjoZnS66nKrHmduYNpc34ny7RK4z5/HM0= -github.com/ory/dockertest/v3 v3.12.0 h1:3oV9d0sDzlSQfHtIaB5k6ghUCVMVLpAY8hwrqoCyRCw= -github.com/ory/dockertest/v3 v3.12.0/go.mod h1:aKNDTva3cp8dwOWwb9cWuX84aH5akkxXRvO7KCwWVjE= +github.com/ory/dockertest/v4 v4.0.0-beta.4 h1:QcrNrobOP+5IjSDmS4//EuBtwiFuznQhi5xTe8oFSoM= +github.com/ory/dockertest/v4 v4.0.0-beta.4/go.mod h1:p9kfE14tzK8+WU4F9YbIZlzhCzQ2pH7H1KIfBKrF3DM= github.com/owenrumney/go-sarif v1.1.1/go.mod h1:dNDiPlF04ESR/6fHlPyq7gHKmrM0sHUvAGjsoh8ZH0U= github.com/owenrumney/go-sarif/v2 v2.3.3 h1:ubWDJcF5i3L/EIOER+ZyQ03IfplbSU1BLOE26uKQIIU= github.com/owenrumney/go-sarif/v2 v2.3.3/go.mod h1:MSqMMx9WqlBSY7pXoOZWgEsVB4FDNfhcaXDA1j6Sr+w= @@ -1216,6 +1212,8 @@ modernc.org/token v1.1.0 h1:Xl7Ap9dKaEs5kLoOQeQmPWevfnk/DM5qcLcYlA8ys6Y= modernc.org/token v1.1.0/go.mod h1:UGzOrNV1mAFSEB63lOFHIpNRUVMvYTc6yu1SMY/XTDM= oras.land/oras-go/v2 v2.6.0 h1:X4ELRsiGkrbeox69+9tzTu492FMUu7zJQW6eJU+I2oc= oras.land/oras-go/v2 v2.6.0/go.mod h1:magiQDfG6H1O9APp+rOsvCPcW1GD2MM7vgnKY0Y+u1o= +pgregory.net/rapid v1.2.0 h1:keKAYRcjm+e1F0oAuU5F5+YPAWcyxNNRK2wud503Gnk= +pgregory.net/rapid v1.2.0/go.mod h1:PY5XlDGj0+V1FCq0o192FdRhpKHGTRIWBgqjDBTrq04= rsc.io/pdf v0.1.1/go.mod h1:n8OzWcQ6Sp37PL01nO98y4iUCRdTGarVfzxY20ICaU4= sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8 h1:gBQPwqORJ8d8/YNZWEjoZs7npUVDpVXUUOFfW6CgAqE= sigs.k8s.io/json v0.0.0-20241014173422-cfa47c3a1cc8/go.mod h1:mdzfpAEoE6DHQEN0uh9ZbOCuHbLK5wOm7dK4ctXE9Tg= diff --git a/internal/benthos/impl/elasticsearch/integration_test.go b/internal/benthos/impl/elasticsearch/integration_test.go index ddc8e90f..bd83cd53 100644 --- a/internal/benthos/impl/elasticsearch/integration_test.go +++ b/internal/benthos/impl/elasticsearch/integration_test.go @@ -9,9 +9,7 @@ import ( "time" "github.com/olivere/elastic/v7" - "github.com/ory/dockertest/v3" - "github.com/stretchr/testify/assert" - "github.com/stretchr/testify/require" + "github.com/ory/dockertest/v4" "github.com/redpanda-data/benthos/v4/public/service/integration" ) @@ -39,23 +37,18 @@ func TestIntegrationElasticsearchV8(t *testing.T) { integration.CheckSkip(t) t.Parallel() - pool, err := dockertest.NewPool("") - require.NoError(t, err) + pool := dockertest.NewPoolT(t, "") - pool.MaxWait = time.Minute * 3 - resource, err := pool.Run("elasticsearch", "8.1.2", []string{ + dockertest.WithMaxWait(time.Minute * 3) + resource := pool.RunT(t, "elasticsearch", dockertest.WithTag("8.1.2"), dockertest.WithEnv([]string{ "discovery.type=single-node", "xpack.security.enabled=false", "xpack.security.http.ssl.enabled=false", "ES_JAVA_OPTS=-Xms512m -Xmx512m", // By default ES immediately gobbles half the available RAM, what a psychopath. - }) - require.NoError(t, err) - t.Cleanup(func() { - assert.NoError(t, pool.Purge(resource)) - }) + })) var client *elastic.Client - if err = pool.Retry(func() error { + if err := pool.Retry(context.TODO(), 900*time.Second, func() error { opts := []elastic.ClientOptionFunc{ elastic.SetURL(fmt.Sprintf("http://localhost:%v", resource.GetPort("9200/tcp"))), elastic.SetHttpClient(&http.Client{ @@ -77,8 +70,6 @@ func TestIntegrationElasticsearchV8(t *testing.T) { t.Fatalf("Could not connect to docker resource: %s", err) } - _ = resource.Expire(900) - template := ` output: elasticsearch: @@ -122,21 +113,16 @@ func TestIntegrationElasticsearchV7(t *testing.T) { integration.CheckSkip(t) t.Parallel() - pool, err := dockertest.NewPool("") - require.NoError(t, err) + pool := dockertest.NewPoolT(t, "") - pool.MaxWait = time.Minute * 3 - resource, err := pool.Run("elasticsearch", "7.17.2", []string{ + dockertest.WithMaxWait(time.Minute * 3) + resource := pool.RunT(t, "elasticsearch", dockertest.WithTag("7.17.2"), dockertest.WithEnv([]string{ "discovery.type=single-node", "ES_JAVA_OPTS=-Xms512m -Xmx512m", // By default ES immediately gobbles half the available RAM, what a psychopath. - }) - require.NoError(t, err) - t.Cleanup(func() { - assert.NoError(t, pool.Purge(resource)) - }) + })) var client *elastic.Client - if err = pool.Retry(func() error { + if err := pool.Retry(context.TODO(), 900*time.Second, func() error { opts := []elastic.ClientOptionFunc{ elastic.SetURL(fmt.Sprintf("http://localhost:%v", resource.GetPort("9200/tcp"))), elastic.SetHttpClient(&http.Client{ @@ -147,7 +133,7 @@ func TestIntegrationElasticsearchV7(t *testing.T) { var cerr error if client, cerr = elastic.NewClient(opts...); cerr == nil { - _, err = client. + _, err := client. CreateIndex("test_conn_index"). Timeout("20s"). Body(elasticIndex). @@ -161,8 +147,6 @@ func TestIntegrationElasticsearchV7(t *testing.T) { t.Fatalf("Could not connect to docker resource: %s", err) } - _ = resource.Expire(900) - template := ` output: elasticsearch: @@ -205,21 +189,16 @@ output: func BenchmarkIntegrationElasticsearch(b *testing.B) { integration.CheckSkip(b) - pool, err := dockertest.NewPool("") - require.NoError(b, err) + pool := dockertest.NewPoolT(b, "") + dockertest.WithMaxWait(time.Minute * 3) - pool.MaxWait = time.Minute * 3 - resource, err := pool.Run("elasticsearch", "7.13.4", []string{ + resource := pool.RunT(b, "elasticsearch", dockertest.WithTag("7.13.4"), dockertest.WithEnv([]string{ "discovery.type=single-node", "ES_JAVA_OPTS=-Xms512m -Xmx512m", // By default ES immediately gobbles half the available RAM, what a psychopath. - }) - require.NoError(b, err) - b.Cleanup(func() { - assert.NoError(b, pool.Purge(resource)) - }) + })) var client *elastic.Client - if err = pool.Retry(func() error { + if err := pool.Retry(context.TODO(), 900*time.Second, func() error { opts := []elastic.ClientOptionFunc{ elastic.SetURL(fmt.Sprintf("http://localhost:%v", resource.GetPort("9200/tcp"))), elastic.SetHttpClient(&http.Client{ @@ -241,8 +220,6 @@ func BenchmarkIntegrationElasticsearch(b *testing.B) { b.Fatalf("Could not connect to docker resource: %s", err) } - _ = resource.Expire(900) - template := ` output: elasticsearch: diff --git a/internal/benthos/impl/elasticsearch/writer_integration_test.go b/internal/benthos/impl/elasticsearch/writer_integration_test.go index 0cae148a..dfbfe0fd 100644 --- a/internal/benthos/impl/elasticsearch/writer_integration_test.go +++ b/internal/benthos/impl/elasticsearch/writer_integration_test.go @@ -10,7 +10,7 @@ import ( "time" "github.com/olivere/elastic/v7" - "github.com/ory/dockertest/v3" + "github.com/ory/dockertest/v4" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" @@ -36,25 +36,19 @@ func TestIntegrationWriter(t *testing.T) { integration.CheckSkip(t) t.Parallel() - pool, err := dockertest.NewPool("") - if err != nil { - t.Skipf("Could not connect to docker: %s", err) - } - pool.MaxWait = time.Minute * 3 + pool := dockertest.NewPoolT(t, "") + dockertest.WithMaxWait(time.Minute * 3) - resource, err := pool.Run("elasticsearch", "7.17.0", []string{ + resource := pool.RunT(t, "elasticsearch", dockertest.WithTag("7.17.0"), dockertest.WithEnv([]string{ "discovery.type=single-node", "ES_JAVA_OPTS=-Xms512m -Xmx512m", // By default ES immediately gobbles half the available RAM, what a psychopath. - }) - if err != nil { - t.Fatalf("Could not start resource: %s", err) - } + })) urls := []string{fmt.Sprintf("http://127.0.0.1:%v", resource.GetPort("9200/tcp"))} var client *elastic.Client - if err = pool.Retry(func() error { + if err := pool.Retry(context.TODO(), 900*time.Second, func() error { opts := []elastic.ClientOptionFunc{ elastic.SetURL(urls...), elastic.SetHttpClient(&http.Client{ @@ -103,12 +97,6 @@ func TestIntegrationWriter(t *testing.T) { t.Fatalf("Could not connect to docker resource: %s", err) } - defer func() { - if err = pool.Purge(resource); err != nil { - t.Logf("Failed to clean up docker resource: %v", err) - } - }() - t.Run("TestElasticNoIndex", func(te *testing.T) { testElasticNoIndex(urls, client, te) }) diff --git a/internal/benthos/impl/pulsar/integration_test.go b/internal/benthos/impl/pulsar/integration_test.go index 4c00d60e..8b714d59 100644 --- a/internal/benthos/impl/pulsar/integration_test.go +++ b/internal/benthos/impl/pulsar/integration_test.go @@ -1,13 +1,13 @@ package pulsar import ( + "context" "fmt" "testing" "time" "github.com/apache/pulsar-client-go/pulsar" - "github.com/ory/dockertest/v3" - "github.com/stretchr/testify/assert" + "github.com/ory/dockertest/v4" "github.com/stretchr/testify/require" "github.com/redpanda-data/benthos/v4/public/service/integration" @@ -17,22 +17,12 @@ func TestIntegrationPulsar(t *testing.T) { integration.CheckSkip(t) t.Parallel() - pool, err := dockertest.NewPool("") - require.NoError(t, err) + pool := dockertest.NewPoolT(t, "") + dockertest.WithMaxWait(time.Minute * 2) - pool.MaxWait = time.Minute * 2 - if dline, ok := t.Deadline(); ok && time.Until(dline) < pool.MaxWait { - pool.MaxWait = time.Until(dline) - } + resource := pool.RunT(t, "apachepulsar/pulsar-standalone", dockertest.WithTag("2.8.3"), nil) - resource, err := pool.Run("apachepulsar/pulsar-standalone", "2.8.3", nil) - require.NoError(t, err) - t.Cleanup(func() { - assert.NoError(t, pool.Purge(resource)) - }) - - _ = resource.Expire(900) - require.NoError(t, pool.Retry(func() error { + require.NoError(t, pool.Retry(context.TODO(), 900*time.Second, func() error { client, err := pulsar.NewClient(pulsar.ClientOptions{ URL: fmt.Sprintf("pulsar://localhost:%v/", resource.GetPort("6650/tcp")), Logger: NoopLogger(),