Skip to content

Add tests to validate the correct timeout format to match the connect specification update - #1193

Merged
timostamm merged 11 commits into
connectrpc:mainfrom
jonbodner-buf:jbodner/timestamp-tests
Nov 11, 2026
Merged

timostamm merged 11 commits into
connectrpc:mainfrom
jonbodner-buf:jbodner/timestamp-tests

Conversation

@jonbodner-buf

Copy link
Copy Markdown
Contributor

connectrpc/connectrpc.com#429 clarifies the format for a timeout. This PR adds tests to validate this format.

jonbodner-buf and others added 10 commits October 16, 2026 17:05
Signed-off-by: Jon Bodner <jbodner@buf.build>
Signed-off-by: Jon Bodner <jbodner@buf.build>
…lers-only.

Signed-off-by: Jon Bodner <jbodner@buf.build>
…e headers are sent immediately now.

Signed-off-by: Jon Bodner <jbodner@buf.build>
…t in a defer

Signed-off-by: Jon Bodner <jbodner@buf.build>
Signed-off-by: Jon Bodner <jbodner@buf.build>
…tests where timestamp key is present, but there value is not.

Signed-off-by: Jon Bodner <jbodner@buf.build>
Signed-off-by: Jon Bodner <jbodner@buf.build>
@github-actions

github-actions Bot commented Nov 10, 2026 •

Copy link
Copy Markdown

Implementation conformance

connect-go, the reference implementation, has newly failing tests. They predict failures in its own CI.

Implementation Newly failing test cases Newly passing test cases Known-failing list Notes
connect-dart 91b0cb4 0 0 no list
connect-es c6b7be8 3 in 3 of 6 targets 0 add 3
connect-go 297fdd6 (reference) 9 in 1 of 2 targets 0 no list
connect-kotlin a70a2d7 0 0 no changes
connect-py d72bde3 15 in 1 of 2 targets 0 no list
connect-rust bd2ab67 33 in 1 of 2 targets 0 no list
connect-swift 8d52280 0 0 no list

This pull request changes code or protos, so every suite ran.

Each implementation ran the suites with and without this pull request's changes, without known-failing lists, at the commit shown. Test cases whose results differed, or that couldn't run, ran once more with and without the changes (only with them for added suites), and those whose differences didn't repeat are listed as possibly flaky instead of newly failing or passing. The new failures and passes were then checked against the known-failing list each target passes to the runner. Results for 5d0fa8d88f21 from this workflow run.

Newly failing test cases

Test cases that aren't in the known-failing list need an entry there, or a fix.

connect-es
Target Test case Permutations In known-failing list
node server Connect GET Timeout Format Requests/zero 4 no
node server Connect Timeout Format Requests/server-stream/zero 4 no
node server Connect Timeout Format Requests/unary/zero 4 no
fastify Connect GET Timeout Format Requests/zero 4 no
fastify Connect Timeout Format Requests/server-stream/zero 4 no
fastify Connect Timeout Format Requests/unary/zero 4 no
express Connect GET Timeout Format Requests/zero 2 no
express Connect Timeout Format Requests/server-stream/zero 2 no
express Connect Timeout Format Requests/unary/zero 2 no
connect-go
Target Test case Permutations In known-failing list
server Connect GET Timeout Format Requests/empty 5 no
server Connect GET Timeout Format Requests/leading-plus 5 no
server Connect GET Timeout Format Requests/zero 5 no
server Connect Timeout Format Requests/server-stream/empty 5 no
server Connect Timeout Format Requests/server-stream/leading-plus 5 no
server Connect Timeout Format Requests/server-stream/zero 5 no
server Connect Timeout Format Requests/unary/empty 5 no
server Connect Timeout Format Requests/unary/leading-plus 5 no
server Connect Timeout Format Requests/unary/zero 5 no
connect-py
Target Test case Permutations In known-failing list
server Connect GET Timeout Format Requests/empty 5 no
server Connect GET Timeout Format Requests/zero 5 no
server Connect Timeout Format Requests/server-stream/decimal-point 5 no
server Connect Timeout Format Requests/server-stream/digit-separator 5 no
server Connect Timeout Format Requests/server-stream/eleven-digits 5 no
server Connect Timeout Format Requests/server-stream/empty 5 no
server Connect Timeout Format Requests/server-stream/exponent 5 no
server Connect Timeout Format Requests/server-stream/hex 5 no
server Connect Timeout Format Requests/server-stream/leading-minus 5 no
server Connect Timeout Format Requests/server-stream/leading-plus 5 no
server Connect Timeout Format Requests/server-stream/too-large 5 no
server Connect Timeout Format Requests/server-stream/unit-suffix 5 no
server Connect Timeout Format Requests/server-stream/zero 5 no
server Connect Timeout Format Requests/unary/empty 5 no
server Connect Timeout Format Requests/unary/zero 5 no
connect-rust
Target Test case Permutations In known-failing list
server Connect GET Timeout Format Requests/decimal-point 2 no
server Connect GET Timeout Format Requests/digit-separator 2 no
server Connect GET Timeout Format Requests/eleven-digits 2 no
server Connect GET Timeout Format Requests/empty 2 no
server Connect GET Timeout Format Requests/exponent 2 no
server Connect GET Timeout Format Requests/hex 2 no
server Connect GET Timeout Format Requests/leading-minus 2 no
server Connect GET Timeout Format Requests/leading-plus 2 no
server Connect GET Timeout Format Requests/too-large 2 no
server Connect GET Timeout Format Requests/unit-suffix 2 no
server Connect GET Timeout Format Requests/zero 2 no
server Connect Timeout Format Requests/server-stream/decimal-point 2 no
server Connect Timeout Format Requests/server-stream/digit-separator 2 no
server Connect Timeout Format Requests/server-stream/eleven-digits 2 no
server Connect Timeout Format Requests/server-stream/empty 2 no
server Connect Timeout Format Requests/server-stream/exponent 2 no
server Connect Timeout Format Requests/server-stream/hex 2 no
server Connect Timeout Format Requests/server-stream/leading-minus 2 no
server Connect Timeout Format Requests/server-stream/leading-plus 2 no
server Connect Timeout Format Requests/server-stream/too-large 2 no
server Connect Timeout Format Requests/server-stream/unit-suffix 2 no
server Connect Timeout Format Requests/server-stream/zero 2 no
server Connect Timeout Format Requests/unary/decimal-point 2 no
server Connect Timeout Format Requests/unary/digit-separator 2 no
server Connect Timeout Format Requests/unary/eleven-digits 2 no
server Connect Timeout Format Requests/unary/empty 2 no
server Connect Timeout Format Requests/unary/exponent 2 no
server Connect Timeout Format Requests/unary/hex 2 no
server Connect Timeout Format Requests/unary/leading-minus 2 no
server Connect Timeout Format Requests/unary/leading-plus 2 no
server Connect Timeout Format Requests/unary/too-large 2 no
server Connect Timeout Format Requests/unary/unit-suffix 2 no
server Connect Timeout Format Requests/unary/zero 2 no

@anuraaga

Copy link
Copy Markdown
Contributor

/rerun connect-py connectrpc/connect-py#463

@github-actions

github-actions Bot commented Nov 11, 2026 •

Copy link
Copy Markdown

Implementation conformance

Rerun of connect-py at connectrpc/connect-py#463, requested in this comment.

No tests newly fail.

Implementation Newly failing test cases Newly passing test cases Known-failing list Notes
connect-py c44849e 0 0 no list

This pull request changes code or protos, so every suite ran.

Each implementation ran the suites with and without this pull request's changes, without known-failing lists, at the commit shown. Test cases whose results differed, or that couldn't run, ran once more with and without the changes (only with them for added suites), and those whose differences didn't repeat are listed as possibly flaky instead of newly failing or passing. The new failures and passes were then checked against the known-failing list each target passes to the runner. Results for c9d382d91237 from this workflow run.

Signed-off-by: Jon Bodner <jbodner@buf.build>
emcfarlane pushed a commit to connectrpc/connect-go that referenced this pull request Nov 11, 2026
There are spec updates for content-type and timeout:

connectrpc/connectrpc.com#447
connectrpc/connectrpc.com#429

There are also conformance test updates to validate the spec updates:

connectrpc/conformance#1193
connectrpc/conformance#1191

This PR updates connect-go to implement the spec updates and pass the
conformance tests.

---------

Signed-off-by: Jon Bodner <jbodner@buf.build>
@jonbodner-buf

Copy link
Copy Markdown
Contributor Author

/rerun connect-go connectrpc/connect-go#1066

@anuraaga

Copy link
Copy Markdown
Contributor

/rerun connect-go connectrpc/connect-go#1066

@github-actions

github-actions Bot commented Nov 11, 2026 •

Copy link
Copy Markdown

Implementation conformance

Rerun of connect-go at connectrpc/connect-go#1066, requested in this comment.

No tests newly fail.

Implementation Newly failing test cases Newly passing test cases Known-failing list Notes
connect-go dd852e1 (reference) 0 0 no list

This pull request changes code or protos, so every suite ran.

Each implementation ran the suites with and without this pull request's changes, without known-failing lists, at the commit shown. Test cases whose results differed, or that couldn't run, ran once more with and without the changes (only with them for added suites), and those whose differences didn't repeat are listed as possibly flaky instead of newly failing or passing. The new failures and passes were then checked against the known-failing list each target passes to the runner. Results for 5d0fa8d88f21 from this workflow run.

@timostamm
timostamm merged commit 73e45c4 into connectrpc:main Nov 11, 2026
24 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants