Commit Graph

15 Commits

Author SHA1 Message Date
Ben Luddy
532471618e Extract RoundtripToUnstructured to apimachinery apitesting library.
This will allow the same scenarios to be exercised on types defined in staging modules, like
apiextensions-apiserver, without importing them all from the root module.
2024-06-26 15:02:58 -04:00
Ben Luddy
38f87df0e3 Enable JSON-compatible base64 encoding of []byte for CBOR.
The encoding/json package marshals []byte to a JSON string containing the base64 encoding of the
input slice's bytes, and unmarshals JSON strings to []byte by assuming the JSON string contains a
valid base64 text.

As a binary format, CBOR is capable of representing arbitrary byte sequences without converting them
to a text encoding, but it also needs to interoperate with the existing JSON serializer. It does
this using the "expected later encoding" tags defined in RFC 8949, which indicate a specific text
encoding to be used when interoperating with text-based protocols. The actual conversion to or from
a text encoding is deferred until necessary, so no conversion is performed during roundtrips of
[]byte to CBOR.
2024-06-25 21:05:26 -04:00
Ben Luddy
0600269c1a Fuzz roundtrip to Unstructured via both JSON and CBOR. 2024-05-29 17:48:10 -04:00
Jordan Liggitt
bba877d3a6 Switch from json-iterator to utiljson 2021-10-20 12:49:23 -04:00
Jie Shen
3807a92df0 Use cmp.Diff instead of diff.Object* in pkg/api 2021-03-20 21:40:34 +08:00
Jordan Liggitt
78a3a4a2b1 Remove testapi use from pkg/api/testing 2019-12-13 11:56:29 -05:00
yuxiaobo
81e9f21f83 Correct spelling mistakes
Signed-off-by: yuxiaobo <yuxiaobogo@163.com>
2019-11-06 20:25:19 +08:00
Clayton Coleman
d0daa1082f Correct benchmarks for unstructured, show json-iter
The unstructured benchmarks incorrectly charged setup of objects to the benchmark.

Split each, and add comparison to json iter.

```
BenchmarkToUnstructured-12                 	   30000	     49716 ns/op	   15358 B/op	     221 allocs/op
BenchmarkFromUnstructured-12               	   30000	     53585 ns/op	    7773 B/op	     185 allocs/op
BenchmarkToUnstructuredViaJSON-12          	   30000	     53716 ns/op	   22609 B/op	     323 allocs/op
BenchmarkFromUnstructuredViaJSON-12        	   10000	    121007 ns/op	   29601 B/op	     438 allocs/op
BenchmarkToUnstructuredViaJSONIter/compat-12         	   30000	     57796 ns/op	   27685 B/op	     431 allocs/op
BenchmarkToUnstructuredViaJSONIter/default-12        	   30000	     51114 ns/op	   20377 B/op	     415 allocs/op
BenchmarkToUnstructuredViaJSONIter/fastest-12        	   30000	     48521 ns/op	   20103 B/op	     405 allocs/op
BenchmarkFromUnstructuredViaJSONIter/compat-12       	   20000	     83389 ns/op	   48777 B/op	     591 allocs/op
BenchmarkFromUnstructuredViaJSONIter/default-12      	   30000	     42717 ns/op	   13439 B/op	     291 allocs/op
BenchmarkFromUnstructuredViaJSONIter/fastest-12      	   50000	     35102 ns/op	   12070 B/op	     203 allocs/op
```
2019-02-14 12:45:30 -05:00
David Eads
d3bd0eb1d5 make package name match all the import aliases 2018-08-01 15:31:12 -04:00
David Eads
94e3d94d67 update tests to be specific about the versions they are testing instead of floating 2018-05-01 13:18:41 -04:00
Clayton Coleman
557f9ddfe6 Move unstructured conversion into pkg/runtime
Scheme conversion should support unstructured conversion natively to
allow going from unstructured to typed and back. It is not a higher
level responsibility to do that conversion because the scheme is the
only one who knows what types it supports.
2017-11-16 15:38:24 -05:00
Dr. Stefan Schimanski
012b085ac8 pkg/apis/core: mechanical import fixes in dependencies 2017-11-09 12:14:08 +01:00
juanvallejo
2008750398 remove empty creationTimestamp field 2017-11-02 14:07:56 -04:00
Dr. Stefan Schimanski
7773a30f67 pkg/api/legacyscheme: fixup imports 2017-10-18 17:23:55 +02:00
Dr. Stefan Schimanski
b926ca40de pkg/api: move *_test.go -> pkg/api/testing 2017-10-11 16:04:50 +02:00