Skip to content
This repository has been archived by the owner on Mar 16, 2022. It is now read-only.

Reorganise and extend TCK #500

Merged
merged 7 commits into from
Dec 21, 2020
Merged

Reorganise and extend TCK #500

merged 7 commits into from
Dec 21, 2020

Conversation

pvlugter
Copy link
Member

@pvlugter pvlugter commented Dec 17, 2020

The last part to resolve #316. Reorganise the TCK into separate files, rather than one very long file. Add proxy tests with interceptor based on the TCK model implementations rather than shopping cart, testing gRPC and HTTP APIs. Remove the shopping cart, and disable the unimplemented TCKs, just java-support for now.

There are some things I'll follow up with after this too:

  • Now that shopping cart is not used in the TCK, we should switch to requiring protocol version to be reported by the language support and checked for compatibility
  • The passivation test for CRDT entities is marked pendingUntilFixed — the stream is not completed gracefully but fails with a peer closed exception
  • Try with the latest Go support TCK implementation

@pvlugter
Copy link
Member Author

Updated the Go support and TCK implementation for most of the new tests in this PR and using a new cloudstate-go-tck:latest image in the integration tests now. cloudstateio/go-support#67

@pvlugter
Copy link
Member Author

Added the follow-ups directly to this PR:

Fixed the stream completion on passivation for CRDT entities — this was similar to a previous issue for event sourced entities, where the actor was being stopped without first completing the stream, and the stream would then fail and close ungracefully when the stream sees the actor terminate, and would also log a deadletter for the failure since the actor is already stopped; fixed by closing the stream and waiting for it to be closed before stopping the actor.

Updated the testkit interceptor expect methods from expectClient/expectService to expectIncoming/expectOutgoing as I think just using incoming/outgoing messages could be clearer than client/service, with all the other uses of client and service.

Compatible protocol version reported by the language support is now required. The Java and Go supports already do this, and are currently the only language supports tested with the TCK integration tests. There's a setting to disable the check in the proxy if needed, since the event sourced entity subprotocol is still compatible across current and previous protocol versions.

@pvlugter
Copy link
Member Author

Since this is mainly just reorganisation and additional tests, I'll merge now. Reviews, questions, comments all still welcome of course.

@pvlugter pvlugter merged commit 630c9e1 into cloudstateio:master Dec 21, 2020
@pvlugter pvlugter deleted the tck-reorg branch December 21, 2020 00:28
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Evolve the TCK
1 participant