Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SDK conformance harness #672

Closed
markmandel opened this issue Mar 26, 2019 · 7 comments
Closed

SDK conformance harness #672

markmandel opened this issue Mar 26, 2019 · 7 comments
Labels
area/build-tools Development tooling. I.e. pretty much everything in the `build` directory. kind/design Proposal discussing new features / fixes and how they should be implemented
Milestone

Comments

@markmandel
Copy link
Member

A way for developers who want to develop / bring their own SDK to know that their SDK implementation is compliant with what we need it to do.

Ideally, I think it would not involve a full Kubernetes install, or e2e test, but likely could be run on it's own - maybe as a binary / docker container? Something simple.

We could then integrate this into our CI system to run against existing SDKs, and ensure that they always pass. Right now, this could fail for anything other than our Go sdk.

Would need to have a way to skip tests as well - since we often have SDKs that are partial implementations.

Open to suggestions on what this should look like?

@markmandel markmandel added kind/design Proposal discussing new features / fixes and how they should be implemented area/build-tools Development tooling. I.e. pretty much everything in the `build` directory. labels Mar 26, 2019
@aLekSer
Copy link
Collaborator

aLekSer commented May 16, 2019

As I understand we should generate single GRPC/RestAPI client which would be calling SDK implementations one by one (each with unique hostnames).
One interesting approach which I found is to write golang declarative tests of the API:
example.

@aLekSer
Copy link
Collaborator

aLekSer commented Jun 10, 2019

I made a draft proposal on how the system of SDK harness tests could look like:
https://docs.google.com/document/d/1Qjy-wXA1wsZB8PE_CP_GCgnyWktySm_ytZgRUZ2wtCo/edit?usp=sharing
Basically we could make an adapter from the Unified Test Scenarios language to all other target SDK languages.
Test scenarios would contain the sequence of calls to the SDK and the expected results as they seen from Gameserver Sidecar.

@markmandel
Copy link
Member Author

Added a bunch of notes - PTAL

@aLekSer
Copy link
Collaborator

aLekSer commented Jul 8, 2019

I found an absence of new Allocate() method in Rust (fixed in a PR), CPP and Unreal Engine SDKs.
https://agones.dev/site/docs/guides/client-sdks/#allocate

@markmandel
Copy link
Member Author

Can we close this now? We have the harness after all.

@aLekSer
Copy link
Collaborator

aLekSer commented Sep 26, 2019

Yes, we can close this PR now.

@markmandel markmandel added this to the 1.1.0 milestone Sep 26, 2019
@markmandel
Copy link
Member Author

Closing!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/build-tools Development tooling. I.e. pretty much everything in the `build` directory. kind/design Proposal discussing new features / fixes and how they should be implemented
Projects
None yet
Development

No branches or pull requests

2 participants