-
Notifications
You must be signed in to change notification settings - Fork 202
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
Discuss conformance testing plan #24
Comments
I have listed HTTP endpoints to be tested for the distribution certification. For example, the test can be started like this:
===
|
Looks like a good start to me RFC: @opencontainers/distribution-spec-maintainers |
Agreed, looks like a good starting |
Great start.
I'm not sure it's correct to describe a 404 return as an error given that's
the expected response when a blob/manifest doesn't exist.
…On Wed, 26 Sep 2018 at 22:07, Derek McGowan ***@***.***> wrote:
Agreed, looks like a good starting
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
<#24 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AAPD92IUJwYcZdMMeh5EnzTEJ6zju5llks5ue-yEgaJpZM4WmXxX>
.
|
@amouat "The 4xx class of status code is intended for cases in which the client seems to have erred." Such as requesting an action that can't take place in the server because the blob does not exist. It's not an error for the server to return it, it's a report to the client that the action can't take place. |
Recently I tried to create a proof-of-concept for the conformance tests. Please see https://github.com/kinvolk/ocicert/tree/dongsu/initial-poc Also I have tried to figure out what's the most neutral approach for conformance tests for the distribution-spec. However, at the moment, the only possible approach seems to be to rely on the real-world implementations such as Docker registry v2. @dmcgowan I have some questions to your initial comment.
Can you please give me some examples about that? |
I think we should agree on or write a reference implementation of a distribution library that then gets used to test these endpoints, rather than implementing something from scratch for testing. There are a bunch of difference places we could start:
After we have a process for this, it would be neat to have a list of compliant registries that get validated via a CI pipeline on this repository. |
completely agree with jimmyZ |
+1, love the idea of integrating directly into a CI pipeline
…On Thu, Oct 11, 2018 at 1:47 PM Vincent Batts ***@***.***> wrote:
completely agree with jimmyZ
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
<#24 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AAD5IecTRCIAWCc5i26k7NEUSAktqWxxks5uj4QfgaJpZM4WmXxX>
.
--
Cheers,
Chris Aniszczyk
http://aniszczyk.org
+1 512 961 6719
|
@jzelinskie Thanks for the suggestion.
Instead I would rather create a new tool that depends on |
@dmcgowan looks like a question to you here #24 (comment) |
@dongsupark that seems like a fine approach. It is intended to be common code. |
Short update: Recently I created simple tests, based on However, some folks were not excited about the idea of exposing internal functions, also about using the internal API of Is that ok? |
I believe we need to state clearly what we're testing and how.
The difference may be little, but the cases above are two completely different approaches. Also, for the matter of conformance testing for the spec, I do believe a test suite which just uses tools like curl would be enough. |
I guess what I'm trying to say is:
I remember during the runtime-spec conformance stuff, I was being asked to create something to check for conformance. It wasn't going to runc and use it, runc was the validation, runtime-tools was the way to check it (I don't remember how that ended up though, I have not working on it eventually) |
I also think the second point is out of scope here but it's certainly something those libraries could and should check |
@runcom If you think that the 2nd point is out of scope, then I'm fine with going for the option 1. We would then need to make a separate issue for the 2nd point. |
well I'm not saying we have to go with 1 but I suspect that's what we need for this issue and as you said 2 could follow. @vbatts wdyt? |
1 and 2 are good distinctions. Validating a server's http api is the first to check, and it would be something to consider to have a very minimal PoC server for validating client libraries against. I agree that containers/image and many others have ways of talking to a registry, though for a conformance test, they might be overkill. In the meantime having curl or even python would be fine. Golang too. Just a test suite to call against that HTTP endpoint. The challenge I see is the authentication, as many of these services may be proprietary and need some auth to access all these functions. So, despite people's opinions on how auth should be handled, it must be handled for a conformance test. |
Following suggestions from @runcom and @vbatts , I took a different approach for the tests. Now it does not depend on libraries such as containers/image. It directly communicates to the HTTP endpoint. Wrote an independent part for authentication as well. Please see kinvolk-archives/ocicert#1 for details. Though it might be still incomplete. |
discussed in the meeting today. We should set up dedicated time to discuss |
Hi, thought it may be useful bringing up zot [1] and we have added a compliance [3] suite as per comments in [2]. Pls. note that the dist-spec itself is not finalized yet. [1] https://github.com/anuvu/zot |
I have merged the last of @dongsupark tests. |
Added new conformance directory in the project root, with a number of test files written in Go. Tests can be compiled by running `go test -c` in the conformance directory and executing the created conformance.test file. In order for the tests to run, registry providers will need to set up certain environment variables with the root url, the namespace of a repository, and authentication information. Additionally, the OCI_DEBUG variable can be set to "true" for more detailed output. The tests create two report files: report.html and junit.xml. The html report is expandable if more detailed information is needed on failures. Related to opencontainers#24
Added new conformance directory in the project root, with a number of test files written in Go. Tests can be compiled by running `go test -c` in the conformance directory and executing the created conformance.test file. In order for the tests to run, registry providers will need to set up certain environment variables with the root url, the namespace of a repository, and authentication information. Additionally, the OCI_DEBUG variable can be set to "true" for more detailed output. The tests create two report files: report.html and junit.xml. The html report is expandable if more detailed information is needed on failures. Related to opencontainers#24
Added new conformance directory in the project root, with a number of test files written in Go. Tests can be compiled by running `go test -c` in the conformance directory and executing the created conformance.test file. In order for the tests to run, registry providers will need to set up certain environment variables with the root url, the namespace of a repository, and authentication information. Additionally, the OCI_DEBUG variable can be set to "true" for more detailed output. The tests create two report files: report.html and junit.xml. The html report is expandable if more detailed information is needed on failures. Related to opencontainers#24 Signed-off-by: Peter Engelbert <pmengelbert@gmail.com>
Added new conformance directory in the project root, with a number of test files written in Go. Tests can be compiled by running `go test -c` in the conformance directory and executing the created conformance.test file. In order for the tests to run, registry providers will need to set up certain environment variables with the root url, the namespace of a repository, and authentication information. Additionally, the OCI_DEBUG variable can be set to "true" for more detailed output. The tests create two report files: report.html and junit.xml. The html report is expandable if more detailed information is needed on failures. Related to opencontainers#24 Signed-off-by: Peter Engelbert <pmengelbert@gmail.com>
Added new conformance directory in the project root, with a number of test files written in Go. Tests can be compiled by running `go test -c` in the conformance directory and executing the created conformance.test file. In order for the tests to run, registry providers will need to set up certain environment variables with the root url, the namespace of a repository, and authentication information. Additionally, the OCI_DEBUG variable can be set to "true" for more detailed output. The tests create two report files: report.html and junit.xml. The html report is expandable if more detailed information is needed on failures. Related to opencontainers#24 Signed-off-by: Peter Engelbert <pmengelbert@gmail.com>
Added new conformance directory in the project root, with a number of test files written in Go. Tests can be compiled by running `go test -c` in the conformance directory and executing the created conformance.test file. In order for the tests to run, registry providers will need to set up certain environment variables with the root url, the namespace of a repository, and authentication information. Additionally, the OCI_DEBUG variable can be set to "true" for more detailed output. The tests create two report files: report.html and junit.xml. The html report is expandable if more detailed information is needed on failures. Related to opencontainers#24 Signed-off-by: Peter Engelbert <pmengelbert@gmail.com>
Added new conformance directory in the project root, with a number of test files written in Go. Tests can be compiled by running `go test -c` in the conformance directory and executing the created conformance.test file. In order for the tests to run, registry providers will need to set up certain environment variables with the root url, the namespace of a repository, and authentication information. Additionally, the OCI_DEBUG variable can be set to "true" for more detailed output. The tests create two report files: report.html and junit.xml. The html report is expandable if more detailed information is needed on failures. Related to opencontainers#24 Signed-off-by: Peter Engelbert <pmengelbert@gmail.com>
Added new conformance directory in the project root, with a number of test files written in Go. Tests can be compiled by running `go test -c` in the conformance directory and executing the created conformance.test file. In order for the tests to run, registry providers will need to set up certain environment variables with the root url, the namespace of a repository, and authentication information. Additionally, the OCI_DEBUG variable can be set to "true" for more detailed output. The tests create two report files: report.html and junit.xml. The html report is expandable if more detailed information is needed on failures. Related to opencontainers#24 Signed-off-by: Peter Engelbert <pmengelbert@gmail.com>
I think its fair to close this, conformance tests have been introduced in master and discussions are ongoing outside this issue |
Thanks @jdolitsky! |
https://groups.google.com/a/opencontainers.org/forum/#!topic/dev/jL5yhEIv3Ac
The text was updated successfully, but these errors were encountered: