Skip to content

Commit 0befb09

Browse files
committed
Add OutOfOrder benchmarks
1 parent c82469e commit 0befb09

8 files changed

Lines changed: 389 additions & 0 deletions

File tree

benchmarks/serde-benchmarks/model/operations/CopyObject.smithy

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,66 @@ use smithy.test#httpResponseTests
119119
"""
120120
tags: ["serde-benchmark"]
121121
}
122+
// section: out-of-order + unknown fields
123+
{
124+
id: "restXml_CopyObjectOutput_OutOfOrder"
125+
documentation: """
126+
Fields in reverse order with unknown elements interspersed.
127+
"""
128+
protocol: restXml
129+
code: 200
130+
headers: { "x-amz-expiration": "expiry-date=\"Fri, 01 Jan 2022 00:00:00 GMT\", rule-id=\"rule1\"", "x-amz-copy-source-version-id": "source-version-id-12345", "x-amz-version-id": "dest-version-id-67890", "x-amz-server-side-encryption": "AES256", "x-amz-server-side-encryption-customer-algorithm": "AES256", "x-amz-server-side-encryption-customer-key-MD5": "customer-key-md5-hash", "x-amz-server-side-encryption-aws-kms-key-id": "arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012", "x-amz-server-side-encryption-context": "encryption-context", "x-amz-server-side-encryption-bucket-key-enabled": "true", "x-amz-request-charged": "requester" }
131+
body: """
132+
<CopyObjectResult>
133+
<UnknownFirst>skip-this-value</UnknownFirst>
134+
<ChecksumSHA256>checksum-sha256</ChecksumSHA256>
135+
<ChecksumSHA1>checksum-sha1</ChecksumSHA1>
136+
<UnknownMiddle>
137+
<Nested>should-be-ignored</Nested>
138+
</UnknownMiddle>
139+
<ChecksumCRC64NVME>checksum-crc64nvme</ChecksumCRC64NVME>
140+
<ChecksumCRC32C>checksum-crc32c</ChecksumCRC32C>
141+
<ChecksumCRC32>checksum-crc32</ChecksumCRC32>
142+
<UnknownBool>true</UnknownBool>
143+
<ChecksumType>SHA256</ChecksumType>
144+
<LastModified>2021-01-01T00:00:00.000Z</LastModified>
145+
<UnknownArray>
146+
<item>one</item>
147+
<item>two</item>
148+
</UnknownArray>
149+
<ETag>"9bb58f26192e4ba00f01e2e7b136bbd8"</ETag>
150+
<UnknownLast>0</UnknownLast>
151+
</CopyObjectResult>
152+
"""
153+
tags: ["serde-benchmark"]
154+
}
155+
{
156+
id: "restJson1_CopyObjectOutput_OutOfOrder"
157+
documentation: """
158+
Fields in reverse order with unknown fields interspersed.
159+
"""
160+
protocol: restJson1
161+
code: 200
162+
headers: { "x-amz-expiration": "expiry-date=\"Fri, 01 Jan 2022 00:00:00 GMT\", rule-id=\"rule1\"", "x-amz-copy-source-version-id": "source-version-id-12345", "x-amz-version-id": "dest-version-id-67890", "x-amz-server-side-encryption": "AES256", "x-amz-server-side-encryption-customer-algorithm": "AES256", "x-amz-server-side-encryption-customer-key-MD5": "customer-key-md5-hash", "x-amz-server-side-encryption-aws-kms-key-id": "arn:aws:kms:us-east-1:123456789012:key/12345678-1234-1234-1234-123456789012", "x-amz-server-side-encryption-context": "encryption-context", "x-amz-server-side-encryption-bucket-key-enabled": "true", "x-amz-request-charged": "requester" }
163+
body: """
164+
{
165+
"__unknownFirst": "skip-me",
166+
"ChecksumSHA256": "checksum-sha256",
167+
"ChecksumSHA1": "checksum-sha1",
168+
"__unknownMiddleObj": {"foo": "bar", "num": 123},
169+
"ChecksumCRC64NVME": "checksum-crc64nvme",
170+
"ChecksumCRC32C": "checksum-crc32c",
171+
"ChecksumCRC32": "checksum-crc32",
172+
"__unknownBool": false,
173+
"ChecksumType": "SHA256",
174+
"LastModified": 1609459200,
175+
"__unknownArray": [1, "two", true],
176+
"ETag": "\\"9bb58f26192e4ba00f01e2e7b136bbd8\\"",
177+
"__unknownLast": 0
178+
}
179+
"""
180+
tags: ["serde-benchmark"]
181+
}
122182
])
123183
operation CopyObject {
124184
input: CopyObjectRequest

benchmarks/serde-benchmarks/model/operations/GetItem.smithy

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1947,6 +1947,87 @@ use smithy.test#httpResponseTests
19471947
"""
19481948
tags: ["serde-benchmark"]
19491949
}
1950+
// section: out-of-order + unknown fields
1951+
{
1952+
id: "awsJson1_0_GetItemOutput_OutOfOrder"
1953+
documentation: """
1954+
Fields in reverse order with unknown fields interspersed.
1955+
"""
1956+
protocol: awsJson1_0
1957+
code: 200
1958+
body: """
1959+
{
1960+
"__unknownString": "unexpected",
1961+
"ConsumedCapacity": {
1962+
"ReadCapacityUnits": 2.5,
1963+
"__unknownBool": true,
1964+
"CapacityUnits": 2.5,
1965+
"TableName": "pasta-recipes"
1966+
},
1967+
"__unknownNumber": 99999,
1968+
"Item": {
1969+
"nutrition": {
1970+
"M": {
1971+
"__unknownNested": { "S": "should-be-skipped" },
1972+
"fat": { "N": "28" },
1973+
"carbs": { "N": "45" },
1974+
"protein": { "N": "18" },
1975+
"calories": { "N": "520" }
1976+
}
1977+
},
1978+
"ingredients": {
1979+
"L": [
1980+
{ "M": { "amount": { "S": "1/2 cup" }, "item": { "S": "heavy cream" } } },
1981+
{ "M": { "amount": { "S": "1 cup grated" }, "item": { "S": "parmesan cheese" } } },
1982+
{ "M": { "amount": { "S": "1/2 cup" }, "item": { "S": "butter" } } },
1983+
{ "M": { "amount": { "S": "1 lb" }, "item": { "S": "fettuccine pasta" } } }
1984+
]
1985+
},
1986+
"tags": { "SS": ["vegetarian", "comfort-food", "creamy"] },
1987+
"rating": { "N": "4.6" },
1988+
"servings": { "N": "4" },
1989+
"cuisine": { "S": "Italian" },
1990+
"difficulty": { "S": "Easy" },
1991+
"prep_time": { "N": "15" },
1992+
"cook_time": { "N": "25" },
1993+
"description": {
1994+
"S": "Creamy, rich pasta dish with butter, parmesan cheese, and fresh fettuccine noodles"
1995+
},
1996+
"name": { "S": "Fettuccine Alfredo" },
1997+
"id": { "S": "recipe-002" }
1998+
},
1999+
"__unknownArray": [1, 2, 3],
2000+
"__unknownObject": { "nested": "value", "count": 42 }
2001+
}
2002+
"""
2003+
tags: ["serde-benchmark"]
2004+
}
2005+
{
2006+
id: "rpcv2Cbor_GetItemOutput_OutOfOrder"
2007+
documentation: """
2008+
Fields in reverse order with unknown fields interspersed (CBOR).
2009+
"""
2010+
protocol: rpcv2Cbor
2011+
headers: { "smithy-protocol": "rpc-v2-cbor" }
2012+
code: 200
2013+
body: """
2014+
pm9fX3Vua25vd25TdHJpbmdqdW5leHBlY3RlZHBDb25zdW1lZENhcGFjaXR5pHFSZWFkQ2FwYWNp
2015+
dHlVbml0c/tABAAAAAAAAG1fX3Vua25vd25Cb29s9W1DYXBhY2l0eVVuaXRz+0AEAAAAAAAAaVRh
2016+
YmxlTmFtZW1wYXN0YS1yZWNpcGVzb19fdW5rbm93bk51bWJlchoAAYafZEl0ZW2saW51dHJpdGlv
2017+
bqFhTaVvX191bmtub3duTmVzdGVkoWFTcXNob3VsZC1iZS1za2lwcGVkY2ZhdKFhTmIyOGVjYXJi
2018+
c6FhTmI0NWdwcm90ZWluoWFOYjE4aGNhbG9yaWVzoWFOYzUyMGtpbmdyZWRpZW50c6FhTIShYU2i
2019+
ZmFtb3VudKFhU2cxLzIgY3VwZGl0ZW2hYVNraGVhdnkgY3JlYW2hYU2iZmFtb3VudKFhU2wxIGN1
2020+
cCBncmF0ZWRkaXRlbaFhU29wYXJtZXNhbiBjaGVlc2WhYU2iZmFtb3VudKFhU2cxLzIgY3VwZGl0
2021+
ZW2hYVNmYnV0dGVyoWFNomZhbW91bnShYVNkMSBsYmRpdGVtoWFTcGZldHR1Y2NpbmUgcGFzdGFk
2022+
dGFnc6FiU1ODanZlZ2V0YXJpYW5sY29tZm9ydC1mb29kZmNyZWFteWZyYXRpbmehYU5jNC42aHNl
2023+
cnZpbmdzoWFOYTRnY3Vpc2luZaFhU2dJdGFsaWFuamRpZmZpY3VsdHmhYVNkRWFzeWlwcmVwX3Rp
2024+
bWWhYU5iMTVpY29va190aW1loWFOYjI1a2Rlc2NyaXB0aW9uoWFTeFJDcmVhbXksIHJpY2ggcGFz
2025+
dGEgZGlzaCB3aXRoIGJ1dHRlciwgcGFybWVzYW4gY2hlZXNlLCBhbmQgZnJlc2ggZmV0dHVjY2lu
2026+
ZSBub29kbGVzZG5hbWWhYVNyRmV0dHVjY2luZSBBbGZyZWRvYmlkoWFTanJlY2lwZS0wMDJuX191
2027+
bmtub3duQXJyYXmDAQIDb19fdW5rbm93bk9iamVjdKJmbmVzdGVkZXZhbHVlZWNvdW50GCo=
2028+
"""
2029+
tags: ["serde-benchmark"]
2030+
}
19502031
])
19512032
operation GetItem {
19522033
input: GetItemInput

0 commit comments

Comments
 (0)