protocol: freeze minimal WWAR v1 wire conformance
This commit is contained in:
222
protocol/vectors/wire-invalid.json
Normal file
222
protocol/vectors/wire-invalid.json
Normal file
@@ -0,0 +1,222 @@
|
||||
{
|
||||
"format": "wwar-v1-wire-invalid",
|
||||
"version": 1,
|
||||
"cases": [
|
||||
{
|
||||
"id": "bad-magic",
|
||||
"input_hex": "58574152000107000000000000000400000000",
|
||||
"error": {
|
||||
"code": "BAD_MAGIC",
|
||||
"path": "$"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "bad-version",
|
||||
"input_hex": "57574152000207000000000000000400000000",
|
||||
"error": {
|
||||
"code": "BAD_VERSION",
|
||||
"path": "$"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "truncated-magic",
|
||||
"input_hex": "5757",
|
||||
"error": {
|
||||
"code": "TRUNCATED",
|
||||
"path": "$"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "truncated-version",
|
||||
"input_hex": "5757415200",
|
||||
"error": {
|
||||
"code": "TRUNCATED",
|
||||
"path": "$"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "truncated-value-header",
|
||||
"input_hex": "5757415200010100",
|
||||
"error": {
|
||||
"code": "TRUNCATED",
|
||||
"path": "$"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "bytes-limit-before-truncation",
|
||||
"input_hex": "575741520001010000000080000000",
|
||||
"error": {
|
||||
"code": "LIMIT_EXCEEDED",
|
||||
"path": "$"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "bytes-truncated",
|
||||
"input_hex": "575741520001010000000000000001",
|
||||
"error": {
|
||||
"code": "TRUNCATED",
|
||||
"path": "$"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "bool-truncated-before-length",
|
||||
"input_hex": "575741520001040000000000000002",
|
||||
"error": {
|
||||
"code": "TRUNCATED",
|
||||
"path": "$"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "bool-length-mismatch",
|
||||
"input_hex": "5757415200010400000000000000020000",
|
||||
"error": {
|
||||
"code": "LENGTH_MISMATCH",
|
||||
"path": "$"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "bool-invalid",
|
||||
"input_hex": "57574152000104000000000000000102",
|
||||
"error": {
|
||||
"code": "INVALID_BOOL",
|
||||
"path": "$"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "uint-empty",
|
||||
"input_hex": "575741520001030000000000000000",
|
||||
"error": {
|
||||
"code": "NONMINIMAL_UINT",
|
||||
"path": "$"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "uint-nonminimal",
|
||||
"input_hex": "5757415200010300000000000000020001",
|
||||
"error": {
|
||||
"code": "NONMINIMAL_UINT",
|
||||
"path": "$"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "uint-overflow",
|
||||
"input_hex": "575741520001030000000000000009010000000000000000",
|
||||
"error": {
|
||||
"code": "OVERFLOW",
|
||||
"path": "$"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "string-invalid-utf8",
|
||||
"input_hex": "575741520001020000000000000001ff",
|
||||
"error": {
|
||||
"code": "INVALID_UTF8",
|
||||
"path": "$"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "string-nul",
|
||||
"input_hex": "57574152000102000000000000000100",
|
||||
"error": {
|
||||
"code": "NUL_STRING",
|
||||
"path": "$"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "string-non-nfc",
|
||||
"input_hex": "57574152000102000000000000000365cc81",
|
||||
"error": {
|
||||
"code": "NON_NFC",
|
||||
"path": "$"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "list-count-limit",
|
||||
"input_hex": "57574152000105000000000000000401000000",
|
||||
"error": {
|
||||
"code": "LIMIT_EXCEEDED",
|
||||
"path": "$"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "list-truncated-member",
|
||||
"input_hex": "57574152000105000000000000000400000001",
|
||||
"error": {
|
||||
"code": "TRUNCATED",
|
||||
"path": "$[0]"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "list-child-length-mismatch",
|
||||
"input_hex": "57574152000105000000000000000c00000001000000000000000a",
|
||||
"error": {
|
||||
"code": "LENGTH_MISMATCH",
|
||||
"path": "$[0]"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "map-duplicate",
|
||||
"input_hex": "57574152000106000000000000003a00000002000000000000000161000000000000000a04000000000000000100000000000000000161000000000000000a04000000000000000100",
|
||||
"error": {
|
||||
"code": "DUPLICATE_MAP_KEY",
|
||||
"path": "$[1].key"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "map-order",
|
||||
"input_hex": "57574152000106000000000000003a00000002000000000000000162000000000000000a04000000000000000100000000000000000161000000000000000a04000000000000000101",
|
||||
"error": {
|
||||
"code": "MAP_KEY_ORDER",
|
||||
"path": "$[1].key"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "record-duplicate",
|
||||
"input_hex": "5757415200010700000000000000300000000200000001000000000000000a0400000000000000010000000001000000000000000a04000000000000000100",
|
||||
"error": {
|
||||
"code": "FIELD_ORDER",
|
||||
"path": "$.1"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "record-order",
|
||||
"input_hex": "5757415200010700000000000000300000000200000002000000000000000a0400000000000000010000000001000000000000000a04000000000000000100",
|
||||
"error": {
|
||||
"code": "FIELD_ORDER",
|
||||
"path": "$.1"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "record-zero-tag",
|
||||
"input_hex": "57574152000107000000000000001a0000000100000000000000000000000a04000000000000000100",
|
||||
"error": {
|
||||
"code": "FIELD_ORDER",
|
||||
"path": "$.0"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "unknown-type",
|
||||
"input_hex": "575741520001080000000000000000",
|
||||
"error": {
|
||||
"code": "UNKNOWN_TYPE",
|
||||
"path": "$"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "trailing",
|
||||
"input_hex": "5757415200010700000000000000040000000000",
|
||||
"error": {
|
||||
"code": "TRAILING_BYTES",
|
||||
"path": "$"
|
||||
}
|
||||
},
|
||||
{
|
||||
"id": "nesting-limit",
|
||||
"input_hex": "57574152000105000000000000055600000001000000000000054a05000000000000054100000001000000000000053505000000000000052c00000001000000000000052005000000000000051700000001000000000000050b0500000000000005020000000100000000000004f60500000000000004ed0000000100000000000004e10500000000000004d80000000100000000000004cc0500000000000004c30000000100000000000004b70500000000000004ae0000000100000000000004a205000000000000049900000001000000000000048d05000000000000048400000001000000000000047805000000000000046f00000001000000000000046305000000000000045a00000001000000000000044e05000000000000044500000001000000000000043905000000000000043000000001000000000000042405000000000000041b00000001000000000000040f0500000000000004060000000100000000000003fa0500000000000003f10000000100000000000003e50500000000000003dc0000000100000000000003d00500000000000003c70000000100000000000003bb0500000000000003b20000000100000000000003a605000000000000039d00000001000000000000039105000000000000038800000001000000000000037c05000000000000037300000001000000000000036705000000000000035e00000001000000000000035205000000000000034900000001000000000000033d05000000000000033400000001000000000000032805000000000000031f00000001000000000000031305000000000000030a0000000100000000000002fe0500000000000002f50000000100000000000002e90500000000000002e00000000100000000000002d40500000000000002cb0000000100000000000002bf0500000000000002b60000000100000000000002aa0500000000000002a100000001000000000000029505000000000000028c00000001000000000000028005000000000000027700000001000000000000026b05000000000000026200000001000000000000025605000000000000024d00000001000000000000024105000000000000023800000001000000000000022c05000000000000022300000001000000000000021705000000000000020e0000000100000000000002020500000000000001f90000000100000000000001ed0500000000000001e40000000100000000000001d80500000000000001cf0000000100000000000001c30500000000000001ba0000000100000000000001ae0500000000000001a500000001000000000000019905000000000000019000000001000000000000018405000000000000017b00000001000000000000016f05000000000000016600000001000000000000015a05000000000000015100000001000000000000014505000000000000013c00000001000000000000013005000000000000012700000001000000000000011b0500000000000001120000000100000000000001060500000000000000fd0000000100000000000000f10500000000000000e80000000100000000000000dc0500000000000000d30000000100000000000000c70500000000000000be0000000100000000000000b20500000000000000a900000001000000000000009d05000000000000009400000001000000000000008805000000000000007f00000001000000000000007305000000000000006a00000001000000000000005e05000000000000005500000001000000000000004905000000000000004000000001000000000000003405000000000000002b00000001000000000000001f05000000000000001600000001000000000000000a04000000000000000100",
|
||||
"error": {
|
||||
"code": "LIMIT_EXCEEDED",
|
||||
"path": "$[0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0][0]"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user