[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#988249: golang-github-getkin-kin-openapi: flaky autopkgtest: output order changed



Source: golang-github-getkin-kin-openapi
Version: 0.32.0-1
Severity: serious
Tags: sid bullseye
X-Debbugs-CC: debian-ci@lists.debian.org
User: debian-ci@lists.debian.org
Usertags: flaky

Dear maintainer(s),

Your package has an autopkgtest, great. However, because of the failure
"caused" by golang-testify, I looked into the history of your
autopkgtest [1] and I noticed it fails regularly. In all the logs I
looked at the error is the same, it happens on multiple architectures.

Because the unstable-to-testing migration software now blocks on
regressions in testing, flaky tests, i.e. tests that flip between
passing and failing without changes to the list of installed packages,
are causing people unrelated to your package to spend time on these
tests.

Paul

[1]

https://ci.debian.net/data/autopkgtest/testing/amd64/g/golang-github-getkin-kin-openapi/11903910/log.gz

=== RUN   TestConvOpenAPIV3ToV2
    openapi2_conv_test.go:30:
        	Error Trace:	openapi2_conv_test.go:30
        	Error:      	Not equal:
        	            	expected: map[string]interface
{}{"basePath":"/v2", "consumes":[]interface {}{"application/json",
"application/xml"}, "definitions":map[string]interface
{}{"Error":map[string]interface {}{"description":"Error response.",
"properties":map[string]interface {}{"message":map[string]interface
{}{"type":"string"}}, "required":[]interface {}{"message"},
"type":"object"}, "Item":map[string]interface
{}{"additionalProperties":true, "properties":map[string]interface
{}{"foo":map[string]interface {}{"type":"string"},
"quux":map[string]interface {}{"$ref":"#/definitions/ItemExtension"}},
"type":"object"}, "ItemExtension":map[string]interface
{}{"description":"It could be anything.", "type":"boolean"}},
"externalDocs":map[string]interface {}{"description":"Example
Documentation", "url":"https://example/doc/"},
"host":"test.example.com", "info":map[string]interface
{}{"title":"MyAPI", "version":"0.1", "x-info":"info extension"},
"parameters":map[string]interface {}{"banana":map[string]interface
{}{"in":"path", "name":"banana", "required":true, "type":"string"},
"post_form_ref":map[string]interface {}{"description":"param
description", "in":"formData", "name":"fileUpload2", "required":true,
"type":"file", "x-formData-name":"fileUpload2",
"x-mimetype":"text/plain"}, "put_body":map[string]interface
{}{"in":"body", "name":"banana", "required":true,
"schema":map[string]interface {}{"type":"string"},
"x-originalParamName":"banana"}}, "paths":map[string]interface
{}{"/another/{banana}/{id}":map[string]interface
{}{"parameters":[]interface {}{map[string]interface
{}{"$ref":"#/parameters/banana"}, map[string]interface {}{"in":"path",
"name":"id", "required":true, "type":"integer"}}},
"/example":map[string]interface {}{"delete":map[string]interface
{}{"description":"example delete", "operationId":"example-delete",
"parameters":[]interface {}{map[string]interface {}{"in":"query",
"name":"x", "type":"string", "x-parameter":"parameter extension 1"},
map[string]interface {}{"default":250, "description":"The y parameter",
"in":"query", "maximum":10000, "minimum":1, "name":"y",
"type":"integer"}, map[string]interface {}{"description":"Only return
results that intersect the provided bounding box.", "in":"query",
"items":map[string]interface {}{"type":"number"}, "maxItems":4,
"minItems":4, "name":"bbox", "type":"array"}},
"responses":map[string]interface {}{"200":map[string]interface
{}{"description":"ok", "schema":map[string]interface
{}{"items":map[string]interface {}{"$ref":"#/definitions/Item"},
"type":"array"}}, "404":map[string]interface {}{"description":"404
response"}, "default":map[string]interface {}{"description":"default
response", "x-response":"response extension 1"}}, "security":[]interface
{}{map[string]interface {}{"get_security_0":[]interface {}{"scope0",
"scope1"}, "get_security_1":[]interface {}{}}}, "summary":"example get",
"tags":[]interface {}{"Example"}}, "get":map[string]interface
{}{"description":"example get", "responses":map[string]interface
{}{"403":map[string]interface {}{"$ref":"#/responses/ForbiddenError"},
"404":map[string]interface {}{"description":"404 response"},
"default":map[string]interface {}{"description":"default response"}},
"x-operation":"operation extension 1"}, "head":map[string]interface
{}{"description":"example head", "responses":map[string]interface
{}{"default":map[string]interface {}{"description":"default
response"}}}, "options":map[string]interface {}{"description":"example
options", "responses":map[string]interface
{}{"default":map[string]interface {}{"description":"default
response"}}}, "patch":map[string]interface {}{"consumes":[]interface
{}{"application/json", "application/xml"}, "description":"example
patch", "parameters":[]interface {}{map[string]interface {}{"in":"body",
"name":"patch_body", "schema":map[string]interface
{}{"allOf":[]interface {}{map[string]interface
{}{"$ref":"#/definitions/Item"}}}, "x-originalParamName":"patch_body",
"x-requestBody":"requestbody extension 1"}},
"responses":map[string]interface {}{"default":map[string]interface
{}{"description":"default response"}}}, "post":map[string]interface
{}{"consumes":[]interface {}{"multipart/form-data"},
"description":"example post", "parameters":[]interface
{}{map[string]interface {}{"description":"File Id", "in":"query",
"name":"id", "type":"integer"}, map[string]interface
{}{"description":"param description", "in":"formData",
"name":"fileUpload", "type":"file", "x-formData-name":"fileUpload",
"x-mimetype":"text/plain"}, map[string]interface
{}{"description":"Description of file contents", "in":"formData",
"name":"note", "type":"integer", "x-formData-name":"note"},
map[string]interface {}{"$ref":"#/parameters/post_form_ref"}},
"responses":map[string]interface {}{"default":map[string]interface
{}{"description":"default response"}}}, "put":map[string]interface
{}{"description":"example put", "parameters":[]interface
{}{map[string]interface {}{"$ref":"#/parameters/put_body"}},
"responses":map[string]interface {}{"default":map[string]interface
{}{"description":"default response"}}}, "x-path":"path extension 1",
"x-path2":"path extension 2"}}, "responses":map[string]interface
{}{"ForbiddenError":map[string]interface {}{"description":"Insufficient
permission to perform the requested action.",
"schema":map[string]interface {}{"$ref":"#/definitions/Error"}}},
"schemes":[]interface {}{"https"}, "security":[]interface
{}{map[string]interface {}{"default_security_0":[]interface {}{"scope0",
"scope1"}, "default_security_1":[]interface {}{}}}, "swagger":"2.0",
"tags":[]interface {}{map[string]interface {}{"description":"An example
tag.", "name":"Example"}}, "x-root":"root extension 1", "x-root2":"root
extension 2"}
        	            	actual  : map[string]interface
{}{"basePath":"/v2", "consumes":[]interface {}{"application/json",
"application/xml"}, "definitions":map[string]interface
{}{"Error":map[string]interface {}{"description":"Error response.",
"properties":map[string]interface {}{"message":map[string]interface
{}{"type":"string"}}, "required":[]interface {}{"message"},
"type":"object"}, "Item":map[string]interface
{}{"additionalProperties":true, "properties":map[string]interface
{}{"foo":map[string]interface {}{"type":"string"},
"quux":map[string]interface {}{"$ref":"#/definitions/ItemExtension"}},
"type":"object"}, "ItemExtension":map[string]interface
{}{"description":"It could be anything.", "type":"boolean"}},
"externalDocs":map[string]interface {}{"description":"Example
Documentation", "url":"https://example/doc/"},
"host":"test.example.com", "info":map[string]interface
{}{"title":"MyAPI", "version":"0.1", "x-info":"info extension"},
"parameters":map[string]interface {}{"banana":map[string]interface
{}{"in":"path", "name":"banana", "required":true, "type":"string"},
"post_form_ref":map[string]interface {}{"description":"param
description", "in":"formData", "name":"fileUpload2", "required":true,
"type":"file", "x-formData-name":"fileUpload2",
"x-mimetype":"text/plain"}, "put_body":map[string]interface
{}{"in":"body", "name":"banana", "required":true,
"schema":map[string]interface {}{"type":"string"},
"x-originalParamName":"banana"}}, "paths":map[string]interface
{}{"/another/{banana}/{id}":map[string]interface
{}{"parameters":[]interface {}{map[string]interface
{}{"$ref":"#/parameters/banana"}, map[string]interface {}{"in":"path",
"name":"id", "required":true, "type":"integer"}}},
"/example":map[string]interface {}{"delete":map[string]interface
{}{"description":"example delete", "operationId":"example-delete",
"parameters":[]interface {}{map[string]interface {}{"in":"query",
"name":"x", "type":"string", "x-parameter":"parameter extension 1"},
map[string]interface {}{"default":250, "description":"The y parameter",
"in":"query", "maximum":10000, "minimum":1, "name":"y",
"type":"integer"}, map[string]interface {}{"description":"Only return
results that intersect the provided bounding box.", "in":"query",
"items":map[string]interface {}{"type":"number"}, "maxItems":4,
"minItems":4, "name":"bbox", "type":"array"}},
"responses":map[string]interface {}{"200":map[string]interface
{}{"description":"ok", "schema":map[string]interface
{}{"items":map[string]interface {}{"$ref":"#/definitions/Item"},
"type":"array"}}, "404":map[string]interface {}{"description":"404
response"}, "default":map[string]interface {}{"description":"default
response", "x-response":"response extension 1"}}, "security":[]interface
{}{map[string]interface {}{"get_security_0":[]interface {}{"scope0",
"scope1"}, "get_security_1":[]interface {}{}}}, "summary":"example get",
"tags":[]interface {}{"Example"}}, "get":map[string]interface
{}{"description":"example get", "responses":map[string]interface
{}{"403":map[string]interface {}{"$ref":"#/responses/ForbiddenError"},
"404":map[string]interface {}{"description":"404 response"},
"default":map[string]interface {}{"description":"default response"}},
"x-operation":"operation extension 1"}, "head":map[string]interface
{}{"description":"example head", "responses":map[string]interface
{}{"default":map[string]interface {}{"description":"default
response"}}}, "options":map[string]interface {}{"description":"example
options", "responses":map[string]interface
{}{"default":map[string]interface {}{"description":"default
response"}}}, "patch":map[string]interface {}{"consumes":[]interface
{}{"application/json", "application/xml"}, "description":"example
patch", "parameters":[]interface {}{map[string]interface {}{"in":"body",
"name":"patch_body", "schema":map[string]interface
{}{"allOf":[]interface {}{map[string]interface
{}{"$ref":"#/definitions/Item"}}}, "x-originalParamName":"patch_body",
"x-requestBody":"requestbody extension 1"}},
"responses":map[string]interface {}{"default":map[string]interface
{}{"description":"default response"}}}, "post":map[string]interface
{}{"consumes":[]interface {}{"multipart/form-data"},
"description":"example post", "parameters":[]interface
{}{map[string]interface {}{"description":"File Id", "in":"query",
"name":"id", "type":"integer"}, map[string]interface
{}{"description":"Description of file contents", "in":"formData",
"name":"note", "type":"integer", "x-formData-name":"note"},
map[string]interface {}{"$ref":"#/parameters/post_form_ref"},
map[string]interface {}{"description":"param description",
"in":"formData", "name":"fileUpload", "type":"file",
"x-formData-name":"fileUpload", "x-mimetype":"text/plain"}},
"responses":map[string]interface {}{"default":map[string]interface
{}{"description":"default response"}}}, "put":map[string]interface
{}{"description":"example put", "parameters":[]interface
{}{map[string]interface {}{"$ref":"#/parameters/put_body"}},
"responses":map[string]interface {}{"default":map[string]interface
{}{"description":"default response"}}}, "x-path":"path extension 1",
"x-path2":"path extension 2"}}, "responses":map[string]interface
{}{"ForbiddenError":map[string]interface {}{"description":"Insufficient
permission to perform the requested action.",
"schema":map[string]interface {}{"$ref":"#/definitions/Error"}}},
"schemes":[]interface {}{"https"}, "security":[]interface
{}{map[string]interface {}{"default_security_0":[]interface {}{"scope0",
"scope1"}, "default_security_1":[]interface {}{}}}, "swagger":"2.0",
"tags":[]interface {}{map[string]interface {}{"description":"An example
tag.", "name":"Example"}}, "x-root":"root extension 1", "x-root2":"root
extension 2"}
        	            	
        	            	Diff:
        	            	--- Expected
        	            	+++ Actual
        	            	@@ -221,2 +221,12 @@
        	            	      },
        	            	+     (map[string]interface {}) (len=5) {
        	            	+      (string) (len=11) "description": (string)
(len=28) "Description of file contents",
        	            	+      (string) (len=2) "in": (string) (len=8)
"formData",
        	            	+      (string) (len=4) "name": (string) (len=4)
"note",
        	            	+      (string) (len=4) "type": (string) (len=7)
"integer",
        	            	+      (string) (len=15) "x-formData-name":
(string) (len=4) "note"
        	            	+     },
        	            	+     (map[string]interface {}) (len=1) {
        	            	+      (string) (len=4) "$ref": (string) (len=26)
"#/parameters/post_form_ref"
        	            	+     },
        	            	      (map[string]interface {}) (len=6) {
        	            	@@ -228,12 +238,2 @@
        	            	       (string) (len=10) "x-mimetype": (string)
(len=10) "text/plain"
        	            	-     },
        	            	-     (map[string]interface {}) (len=5) {
        	            	-      (string) (len=11) "description": (string)
(len=28) "Description of file contents",
        	            	-      (string) (len=2) "in": (string) (len=8)
"formData",
        	            	-      (string) (len=4) "name": (string) (len=4)
"note",
        	            	-      (string) (len=4) "type": (string) (len=7)
"integer",
        	            	-      (string) (len=15) "x-formData-name":
(string) (len=4) "note"
        	            	-     },
        	            	-     (map[string]interface {}) (len=1) {
        	            	-      (string) (len=4) "$ref": (string) (len=26)
"#/parameters/post_form_ref"
        	            	      }
        	Test:       	TestConvOpenAPIV3ToV2
--- FAIL: TestConvOpenAPIV3ToV2 (0.00s)
=== RUN   TestConvOpenAPIV2ToV3
--- PASS: TestConvOpenAPIV2ToV3 (0.00s)
FAIL
FAIL	github.com/getkin/kin-openapi/openapi2conv	0.044s

Attachment: OpenPGP_signature
Description: OpenPGP digital signature


Reply to: