OCI Distribution Conformance Tests

Summary
12 passed10 failed64 skipped
Start Time Oct 22 21:33:55.910 +0200 CEST
End Time Oct 22 21:34:20.363 +0200 CEST
Time Elapsed 24.452650291s
Test Version unknown
Configuration
OCI_ROOT_URL=https://ghcr.io
OCI_NAMESPACE=silvanoc/oci-image-spec-tests
OCI_USERNAME=*****
OCI_PASSWORD=*****
OCI_TEST_PULL=0
OCI_TEST_PUSH=0
OCI_TEST_CONTENT_DISCOVERY=1
OCI_TEST_CONTENT_MANAGEMENT=0
OCI_CROSSMOUNT_NAMESPACE=silvanoc/cross-mount_oci-image-spec-tests

Pull

Setup

+

Populate registry with test blob


+

Populate registry with test blob


+

Populate registry with test layer


+

Populate registry with test manifest


+

Populate registry with test manifest


+

Get tag name from environment



Pull blobs

+

HEAD request to nonexistent blob should result in 404 response


+

HEAD request to existing blob should yield 200


+

GET nonexistent blob should result in 404 response


+

GET request to existing blob URL should yield 200



Pull manifests

+

HEAD request to nonexistent manifest should return 404


+

HEAD request to manifest[0] path (digest) should yield 200 response


+

HEAD request to manifest[1] path (digest) should yield 200 response


+

HEAD request to manifest path (tag) should yield 200 response


+

GET nonexistent manifest should return 404


+

GET request to manifest[0] path (digest) should yield 200 response


+

GET request to manifest[1] path (digest) should yield 200 response


+

GET request to manifest path (tag) should yield 200 response



Error codes

+

400 response body should contain OCI-conforming JSON message



Teardown

+

Delete manifest[0] created in setup


+

Delete manifest[1] created in setup


+

Delete config[0] blob created in setup


+

Delete config[1] blob created in setup


+

Delete layer blob created in setup



Push

Blob Upload Streamed

+

PATCH request with blob in body should yield 202 response


+

PUT request to session URL with digest should yield 201 response



Blob Upload Monolithic

+

GET nonexistent blob should result in 404 response


+

POST request with digest and blob should yield a 201 or 202


+

GET request to blob URL from prior request should yield 200 or 404 based on response code


+

POST request should yield a session ID


+

PUT upload of a blob should yield a 201 Response


+

GET request to existing blob should yield 200 response


+

PUT upload of a layer blob should yield a 201 Response


+

GET request to existing layer should yield 200 response



Blob Upload Chunked

+

Out-of-order blob upload should return 416


+

PATCH request with first chunk should return 202


+

Retry previous blob chunk should return 416


+

Get on stale blob upload should return 204 with a range and location


+

PATCH request with second chunk should return 202


+

PUT request with digest should return 201



Cross-Repository Blob Mount

+

Cross-mounting of a blob without the from argument should yield session id


+

POST request to mount another repository's blob should return 201 or 202


+

GET request to test digest within cross-mount namespace should return 200


+

Cross-mounting of nonexistent blob should yield session id


+

Cross-mounting without from, and automatic content discovery enabled should return a 201


+

Cross-mounting without from, and automatic content discovery disabled should return a 202



Manifest Upload

+

GET nonexistent manifest should return 404


+

PUT should accept a manifest upload


+

Registry should accept a manifest upload with no layers


+

GET request to manifest URL (digest) should yield 200 response



Teardown

+

Delete manifest created in tests


+

Delete config blob created in tests


+

Delete layer blob created in setup



Content Discovery

Setup

+

Populate registry with test blob


+

Populate registry with test layer


+

Populate registry with test tags


+

Populate registry with test tags (no push)


+

References setup


+

PUT artifact with custom config/mediaType (as artifact type) [OCI-Image v1.1]


The expected 'OCI-Subject' is missing in the headers
Expected
    <string>: 
to equal
    <string>: sha256:11d2f0198c6bf78a70e6d2bce2d3865ac3b8224ac6fed9708b71eb5155ed0163

+

PUT artifact with custom artifactType [OCI-Image v1.1]


The expected 'OCI-Subject' is missing in the headers
Expected
    <string>: 
to equal
    <string>: sha256:11d2f0198c6bf78a70e6d2bce2d3865ac3b8224ac6fed9708b71eb5155ed0163

+

PUT manifest/image list/index


The expected 'OCI-Subject' is missing in the headers
Expected
    <string>: 
to equal
    <string>: sha256:11d2f0198c6bf78a70e6d2bce2d3865ac3b8224ac6fed9708b71eb5155ed0163

+

Reference setup 2nd part


+

PUT artifact with custom config/mediaType (as artifact type) [OCI-Image v1.1]


The expected 'OCI-Subject' is missing in the headers
Expected
    <string>: 
to equal
    <string>: sha256:11d2f0198c6bf78a70e6d2bce2d3865ac3b8224ac6fed9708b71eb5155ed0163

+

PUT artifact with custom artifactType [OCI-Image v1.1]


The expected 'OCI-Subject' is missing in the headers
Expected
    <string>: 
to equal
    <string>: sha256:11d2f0198c6bf78a70e6d2bce2d3865ac3b8224ac6fed9708b71eb5155ed0163

+

Dangling subject [OCI-Image v1.1]


The expected 'OCI-Subject' is missing in the headers
Expected
    <string>: 
to equal
    <string>: sha256:e9e5606267fc2d2f6d4b5525bbd1f592f1a9ccf61dbec7b9e694269ec34641a8


Test content discovery endpoints (listing tags)

+

GET request to list tags should yield 200 response


+

GET number of tags should be limitable by `n` query parameter


+

GET start of tag is set by `last` query parameter



Test content discovery endpoints (listing references) [OCI-Distribution v1.1]

+

GET request to nonexistent blob should result in empty 200 response


GET referrers fails (possibly referrers API not supported)
Expected
    <int>: 404
to equal
    <int>: 200

+

GET request to existing blob should yield 200


GET referrers fails (possibly referrers API not supported)
Expected
    <int>: 404
to equal
    <int>: 200

+

GET request to existing blob with filter should yield 200


GET filtered referrers fails
Expected
    <int>: 404
to equal
    <int>: 200

+

GET request to missing manifest should yield 200


GET missing referrer fails
Expected
    <int>: 404
to equal
    <int>: 200


Teardown

+

Delete created manifest & associated tags


+

Delete config blob created in tests


+

Delete layer blob created in setup


+

References teardown



Content Management

Setup

+

Populate registry with test config blob


+

Populate registry with test layer


+

Populate registry with test tag


+

Check how many tags there are before anything gets deleted



Manifest delete

+

DELETE request to manifest tag should return 202, unless tag deletion is disallowed (400/405)


+

DELETE request to manifest (digest) should yield 202 response unless already deleted


+

GET request to deleted manifest URL should yield 404 response, unless delete is disallowed


+

GET request to tags list should reflect manifest deletion



Blob delete

+

DELETE request to blob URL should yield 202 response


+

GET request to deleted blob URL should yield 404 response