Commit Graph

16 Commits

Author SHA1 Message Date
Ben Luddy
4755e1f859
Automatically transcode RawExtension between unstructured protocols. 2024-07-09 17:02:34 -04:00
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