Skip to content

Commit 190eb2d

Browse files
committed
Use Swagger#MarshalNext where possible
1 parent 43e0223 commit 190eb2d

File tree

8 files changed

+33
-29
lines changed

8 files changed

+33
-29
lines changed

pkg/aggregator/aggregator_test.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ type DebugSpec struct {
3535
}
3636

3737
func (d DebugSpec) String() string {
38-
bytes, err := json.MarshalIndent(d.Swagger, "", " ")
38+
bytes, err := d.Swagger.MarshalNext()
3939
if err != nil {
4040
return fmt.Sprintf("DebugSpec.String failed: %s", err)
4141
}
@@ -1762,7 +1762,7 @@ func BenchmarkMergeSpecsIgnorePathConflictsWithKubeSpec(b *testing.B) {
17621762
}
17631763
}
17641764

1765-
specBytes, _ := json.Marshal(sp)
1765+
specBytes, _ := sp.MarshalNext()
17661766
handler.ToProtoBinary(specBytes)
17671767

17681768
b.StopTimer()
@@ -2003,7 +2003,7 @@ func TestCloneSpec(t *testing.T) {
20032003
}
20042004

20052005
func cloneSpec(source *spec.Swagger) (*spec.Swagger, error) {
2006-
bytes, err := json.Marshal(source)
2006+
bytes, err := source.MarshalNext()
20072007
if err != nil {
20082008
return nil, err
20092009
}

pkg/builder/openapi_test.go

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ import (
2626
"github.com/emicklei/go-restful/v3"
2727
"github.com/stretchr/testify/assert"
2828
openapi "k8s.io/kube-openapi/pkg/common"
29+
"k8s.io/kube-openapi/pkg/util/jsontesting"
2930
"k8s.io/kube-openapi/pkg/validation/spec"
3031
)
3132

@@ -467,15 +468,17 @@ func TestBuildOpenAPISpec(t *testing.T) {
467468
if !assert.NoError(err) {
468469
return
469470
}
470-
expected_json, err := json.Marshal(expected)
471+
expected_json, err := expected.MarshalNext()
471472
if !assert.NoError(err) {
472473
return
473474
}
474-
actual_json, err := json.Marshal(swagger)
475+
actual_json, err := swagger.MarshalNext()
475476
if !assert.NoError(err) {
476477
return
477478
}
478-
assert.Equal(string(expected_json), string(actual_json))
479+
if err := jsontesting.JsonCompare(expected_json, actual_json); err != nil {
480+
t.Error(err)
481+
}
479482
}
480483

481484
func TestBuildOpenAPIDefinitionsForResource(t *testing.T) {

pkg/handler/handler.go

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ import (
2020
"bytes"
2121
"compress/gzip"
2222
"crypto/sha512"
23-
"encoding/json"
2423
"fmt"
2524
"mime"
2625
"net/http"
@@ -117,7 +116,7 @@ func (o *OpenAPIService) UpdateSpec(openapiSpec *spec.Swagger) (err error) {
117116
o.rwMutex.Lock()
118117
defer o.rwMutex.Unlock()
119118
o.jsonCache = o.jsonCache.New(func() ([]byte, error) {
120-
return json.Marshal(openapiSpec)
119+
return openapiSpec.MarshalNext()
121120
})
122121
o.protoCache = o.protoCache.New(func() ([]byte, error) {
123122
json, err := o.jsonCache.Get()

pkg/handler/handler_test.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ func TestRegisterOpenAPIVersionedService(t *testing.T) {
2525
t.Errorf("Unexpected error in unmarshalling SwaggerJSON: %v", err)
2626
}
2727

28-
returnedJSON, err := json.Marshal(s)
28+
returnedJSON, err := s.MarshalNext()
2929
if err != nil {
3030
t.Errorf("Unexpected error in preparing returnedJSON: %v", err)
3131
}

pkg/openapiconv/convert_test.go

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@ import (
2424
"testing"
2525

2626
"k8s.io/kube-openapi/pkg/spec3"
27+
"k8s.io/kube-openapi/pkg/util/jsontesting"
2728
"k8s.io/kube-openapi/pkg/validation/spec"
2829
)
2930

@@ -51,19 +52,19 @@ func TestConvert(t *testing.T) {
5152
t.Fatal(err)
5253
}
5354

54-
openAPIV2JSONBeforeConversion, err := json.Marshal(swaggerSpec)
55+
openAPIV2JSONBeforeConversion, err := swaggerSpec.MarshalNext()
5556
if err != nil {
5657
t.Fatal(err)
5758
}
5859

5960
convertedV3Spec := ConvertV2ToV3(&swaggerSpec)
6061

61-
openAPIV2JSONAfterConversion, err := json.Marshal(swaggerSpec)
62+
openAPIV2JSONAfterConversion, err := swaggerSpec.MarshalNext()
6263
if err != nil {
6364
t.Fatal(err)
6465
}
65-
if !reflect.DeepEqual(openAPIV2JSONBeforeConversion, openAPIV2JSONAfterConversion) {
66-
t.Errorf("Expected OpenAPI V2 to be untouched before and after conversion")
66+
if err := jsontesting.JsonCompare(openAPIV2JSONBeforeConversion, openAPIV2JSONAfterConversion); err != nil {
67+
t.Errorf("Expected OpenAPI V2 to be untouched before and after conversion: %v", err)
6768
}
6869

6970
spec3JSON, err := ioutil.ReadFile(filepath.Join("testdata_generated_from_k8s/v3_" + tc.groupVersion + ".json"))

pkg/schemamutation/walker_test.go

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -220,7 +220,7 @@ func TestReplaceReferences(t *testing.T) {
220220
}
221221

222222
// find refs
223-
bs, err := json.Marshal(s)
223+
bs, err := s.MarshalNext()
224224
if err != nil {
225225
t.Fatalf("failed to marshal swagger: %v", err)
226226
}
@@ -244,7 +244,7 @@ func TestReplaceReferences(t *testing.T) {
244244
}
245245
}
246246

247-
origString, err := json.Marshal(s)
247+
origString, err := s.MarshalNext()
248248
if err != nil {
249249
t.Fatalf("failed to marshal swagger: %v", err)
250250
}
@@ -390,13 +390,13 @@ func TestReplaceSchema(t *testing.T) {
390390
}
391391

392392
func cloneSwagger(orig *spec.Swagger) (*spec.Swagger, error) {
393-
bs, err := json.Marshal(orig)
393+
bs, err := orig.MarshalNext()
394394
if err != nil {
395-
return nil, err
395+
return nil, fmt.Errorf("error marshaling: %v", err)
396396
}
397397
s := &spec.Swagger{}
398398
if err := json.Unmarshal(bs, s); err != nil {
399-
return nil, err
399+
return nil, fmt.Errorf("error unmarshaling: %v", err)
400400
}
401401
return s, nil
402402
}

pkg/validation/spec/gnostic_test.go

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ import (
3131
"github.com/stretchr/testify/require"
3232
"google.golang.org/protobuf/proto"
3333
"gopkg.in/yaml.v3"
34+
jsontesting "k8s.io/kube-openapi/pkg/util/jsontesting"
3435
. "k8s.io/kube-openapi/pkg/validation/spec"
3536
)
3637

@@ -43,7 +44,7 @@ func gnosticCommonTest(t testing.TB, fuzzer *fuzz.Fuzzer) {
4344
fuzzer.Fuzz(&expected)
4445

4546
// Convert to gnostic via JSON to compare
46-
jsonBytes, err := json.Marshal(expected)
47+
jsonBytes, err := expected.MarshalNext()
4748
require.NoError(t, err)
4849

4950
t.Log("Specimen", string(jsonBytes))
@@ -59,10 +60,10 @@ func gnosticCommonTest(t testing.TB, fuzzer *fuzz.Fuzzer) {
5960
t.Fatal(cmp.Diff(expected, actual, SwaggerDiffOptions...))
6061
}
6162

62-
newJsonBytes, err := json.Marshal(actual)
63+
newJsonBytes, err := actual.MarshalNext()
6364
require.NoError(t, err)
64-
if !reflect.DeepEqual(jsonBytes, newJsonBytes) {
65-
t.Fatal(cmp.Diff(string(jsonBytes), string(newJsonBytes), SwaggerDiffOptions...))
65+
if err := jsontesting.JsonCompare(jsonBytes, newJsonBytes); err != nil {
66+
t.Fatal(err)
6667
}
6768
}
6869

@@ -518,19 +519,19 @@ func TestCommonDataLoss(t *testing.T) {
518519

519520
// Make sure that they were exactly the same, except for the data loss
520521
// by checking JSON encodes the some
521-
badConvertedJSON, err := json.Marshal(badConverted)
522+
badConvertedJSON, err := badConverted.MarshalNext()
522523
if err != nil {
523524
t.Error(err)
524525
return
525526
}
526527

527-
fixedConvertedJSON, err := json.Marshal(fixedConverted)
528+
fixedConvertedJSON, err := fixedConverted.MarshalNext()
528529
if err != nil {
529530
t.Error(err)
530531
return
531532
}
532533

533-
fixedDirectJSON, err := json.Marshal(fixedDirect)
534+
fixedDirectJSON, err := fixedDirect.MarshalNext()
534535
if err != nil {
535536
t.Error(err)
536537
return
@@ -580,13 +581,13 @@ func TestBadStatusCode(t *testing.T) {
580581

581582
// Make sure that they were exactly the same, except for the data loss
582583
// by checking JSON encodes the some
583-
badConvertedJSON, err := json.Marshal(badConverted)
584+
badConvertedJSON, err := badConverted.MarshalNext()
584585
if err != nil {
585586
t.Error(err)
586587
return
587588
}
588589

589-
droppedConvertedJSON, err := json.Marshal(droppedConverted)
590+
droppedConvertedJSON, err := droppedConverted.MarshalNext()
590591
if err != nil {
591592
t.Error(err)
592593
return

pkg/validation/spec/swagger_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ const specJSON = `{
119119
func TestSwaggerSpec_Serialize(t *testing.T) {
120120
expected := make(map[string]interface{})
121121
_ = json.Unmarshal([]byte(specJSON), &expected)
122-
b, err := json.MarshalIndent(spec, "", " ")
122+
b, err := spec.MarshalNext()
123123
if assert.NoError(t, err) {
124124
var actual map[string]interface{}
125125
err := json.Unmarshal(b, &actual)
@@ -220,7 +220,7 @@ func TestSwaggerSpec_ExperimentalUnmarshal(t *testing.T) {
220220
internal.UseOptimizedJSONUnmarshaling = true
221221

222222
// Serialize into JSON again
223-
jsonBytesV2, err := json.Marshal(expected)
223+
jsonBytesV2, err := expected.MarshalNext()
224224
require.NoError(t, err)
225225

226226
t.Log("Specimen V2", string(jsonBytes))

0 commit comments

Comments
 (0)