-
Notifications
You must be signed in to change notification settings - Fork 817
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
Initial version of SDK conformance Testing framework for Golang, NodeJS and others #845
Conversation
Build Failed 😱 Build Id: 294d22d4-ce75-4e55-8fc5-b4e470fa7ac7 To get permission to view the Cloud Build view, join the agones-discuss Google Group. |
4a18767
to
cc31b96
Compare
Build Succeeded 👏 Build Id: 7e9ae2c5-5b7f-45e3-b160-4fa9df2c081f The following development artifacts have been built, and will exist for the next 30 days:
A preview of the website (the last 30 builds are retained): To install this version:
|
cc31b96
to
73ee02a
Compare
Build Succeeded 👏 Build Id: fd299554-9213-41f3-a582-a84865b234fa The following development artifacts have been built, and will exist for the next 30 days:
A preview of the website (the last 30 builds are retained): To install this version:
|
PoC for SDK conformance testing. Code generator should use code templates from sdk_client use testReady scenarios from harness folder and produce go file which would run the scenario.
73ee02a
to
6c46821
Compare
Build Succeeded 👏 Build Id: 6889bd00-9055-4700-9f28-39acbe771833 The following development artifacts have been built, and will exist for the next 30 days:
A preview of the website (the last 30 builds are retained): To install this version:
|
So I'm digging through this, and while it seems cool - I'm wondering if it's over-engineered? In the model in my head, there would be a Docker container, with a builder pattern for a language that gets built and run on each test for each SDK. Alongside it we could run the standard local sdk server, with some variation of: The test mode expects those tests to pass (they have documented requirements) within,1 minute (or whatever time period - 30s may be enough) Then we don't need code generation, or yaml files, or a go test hardness, or most of the complicated pieces. This also makes it very easy for anyone building their own custom SDK to test against our testbed, without having to dig into all these harness pieces. WDYT? |
Thanks for the review, Mark. |
This one was superseded by #848 as it would be easier to maintain. |
Remove this PR as we switched to another version without code generation. |
PoC for SDK conformance testing.
Proposal Document could be found here.
Test engine performs two tasks: code generation for Golang, Node SDKs and verification that SDK sends and sidecar receives all GRPC messages as intended.
YAML file with test definition in Formal language -> translates and concatenates from excerpts in SDK target language.
Code generator use code templates from sdk_client use test Case
scenarios from harness folder and produce go file which would run the
scenario.
make build-conformance-tests
- build docker image and binaries of sdk-server (sidecar) andtest_engine
make run-conformance-tests
- build binaries and perform verify step (alsorun-conformance-jstests
):For #672.