DASL Testing
2025-06-25 14:56:15 UTC
github.com/hyphacoop/dasl-testing
Explanation
This page holds the results of a test suite for the DASL ecosystem and related specs. It was created with funding from the IPFS Implementation Grants program.
This test suite exists to survey the landscape of existing implementations. By knowing how libraries handle IPFS specs like dag-cbor and CIDs today, the DASL team can create better documents for the future.
Many different specifications are covered by these tests, so it's not expected that all tests would pass for a compliant library. You can filter and group tests below to only see ones that are relevant to you.
Test types:
- roundtrip: Good input can be decoded and re-encoded, unchanged
- invalid_in: An error should be raised when decoding this
- invalid_out: An error should be raised when encoding this
Summary
Basic
dag-cbor
Libraries
go-ipld-prime | v0.21.0 |
js-dag-cbor | 9.2.4 |
atcute | 2.2.4 |
dag-cbrrr | 1.0.1 |
python-libipld | 3.1.1 |
go-ipld-cbor | v0.2.1 |
serde_ipld_dagcbor | 0.6.3 |
Tests
๐ cid.json
Description | Type | go-ipld-prime | js-dag-cbor | atcute | dag-cbrrr | python-libipld | go-ipld-cbor | serde_ipld_dagcbor |
---|---|---|---|---|---|---|---|---|
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL | |
roundtrip | PASS | PASS | PASS | PASS | PASS | PASS | PASS | |
invalid_in | PASS | PASS | FAIL | FAIL | PASS | PASS | PASS | |
invalid_in | FAIL | FAIL | FAIL | FAIL | FAIL | FAIL | FAIL | |
invalid_in | PASS | PASS | FAIL | FAIL | PASS | PASS | PASS | |
roundtrip | PASS | PASS | PASS | PASS | PASS | PASS | PASS | |
roundtrip | PASS | PASS | PASS | PASS | PASS | PASS | PASS | |
invalid_in | FAIL | FAIL | FAIL | FAIL | FAIL | FAIL | FAIL | |
invalid_in | FAIL | FAIL | FAIL | FAIL | FAIL | FAIL | FAIL |
๐ concat.json
Description | Type | go-ipld-prime | js-dag-cbor | atcute | dag-cbrrr | python-libipld | go-ipld-cbor | serde_ipld_dagcbor |
---|---|---|---|---|---|---|---|---|
invalid_in | PASS | PASS | PASS | PASS | PASS | FAIL | PASS |
๐ floats.json
Description | Type | go-ipld-prime | js-dag-cbor | atcute | dag-cbrrr | python-libipld | go-ipld-cbor | serde_ipld_dagcbor |
---|---|---|---|---|---|---|---|---|
roundtrip | FAIL | FAIL | FAIL | FAIL | FAIL | FAIL | FAIL | |
roundtrip | PASS | PASS | PASS | PASS | PASS | PASS | PASS | |
invalid_in | FAIL | FAIL | PASS | PASS | PASS | FAIL | PASS | |
invalid_in | FAIL | FAIL | FAIL | FAIL | FAIL | FAIL | FAIL | |
roundtrip | FAIL | FAIL | FAIL | FAIL | FAIL | FAIL | FAIL | |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL | |
roundtrip | PASS | FAIL | FAIL | PASS | PASS | PASS | PASS | |
roundtrip | PASS | FAIL | FAIL | PASS | PASS | PASS | PASS | |
roundtrip | FAIL | FAIL | FAIL | FAIL | FAIL | FAIL | FAIL | |
roundtrip | PASS | PASS | PASS | PASS | PASS | PASS | PASS | |
invalid_in | FAIL | PASS | PASS | PASS | PASS | FAIL | PASS | |
invalid_in | FAIL | PASS | PASS | PASS | PASS | FAIL | PASS | |
invalid_in | FAIL | PASS | PASS | PASS | PASS | FAIL | FAIL | |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL | |
invalid_in | FAIL | PASS | PASS | PASS | PASS | FAIL | PASS | |
invalid_in | FAIL | PASS | PASS | PASS | PASS | FAIL | FAIL | |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL | |
invalid_out | FAIL | PASS | PASS | PASS | PASS | FAIL | PASS | |
invalid_out | FAIL | PASS | PASS | PASS | PASS | FAIL | PASS | |
invalid_out | FAIL | PASS | PASS | PASS | PASS | FAIL | PASS | |
invalid_in | FAIL | PASS | PASS | PASS | PASS | FAIL | PASS | |
invalid_in | FAIL | PASS | PASS | PASS | PASS | FAIL | PASS |
๐ indefinite.json
Description | Type | go-ipld-prime | js-dag-cbor | atcute | dag-cbrrr | python-libipld | go-ipld-cbor | serde_ipld_dagcbor |
---|---|---|---|---|---|---|---|---|
invalid_in | FAIL | PASS | PASS | PASS | PASS | FAIL | PASS | |
invalid_in | FAIL | PASS | PASS | PASS | PASS | FAIL | PASS | |
invalid_in | FAIL | PASS | PASS | PASS | PASS | FAIL | PASS | |
invalid_in | FAIL | PASS | PASS | PASS | PASS | FAIL | PASS |
๐ integer_range.json
Description | Type | go-ipld-prime | js-dag-cbor | atcute | dag-cbrrr | python-libipld | go-ipld-cbor | serde_ipld_dagcbor |
---|---|---|---|---|---|---|---|---|
roundtrip | PASS | PASS | FAIL | PASS | PASS | FAIL | PASS | |
roundtrip | FAIL | PASS | FAIL | PASS | PASS | FAIL | PASS | |
roundtrip | PASS | PASS | PASS | PASS | PASS | PASS | PASS | |
roundtrip | PASS | PASS | FAIL | PASS | PASS | PASS | PASS | |
roundtrip | PASS | PASS | PASS | PASS | PASS | PASS | PASS | |
roundtrip | PASS | PASS | FAIL | PASS | PASS | PASS | PASS | |
roundtrip | FAIL | FAIL | FAIL | FAIL | FAIL | FAIL | FAIL | |
roundtrip | FAIL | FAIL | FAIL | FAIL | FAIL | FAIL | FAIL | |
invalid_out | PASS | PASS | PASS | PASS | PASS | PASS | FAIL | |
invalid_in | PASS | PASS | PASS | PASS | PASS | PASS | PASS | |
invalid_in | PASS | PASS | PASS | PASS | PASS | PASS | PASS |
๐ map_keys.json
Description | Type | go-ipld-prime | js-dag-cbor | atcute | dag-cbrrr | python-libipld | go-ipld-cbor | serde_ipld_dagcbor |
---|---|---|---|---|---|---|---|---|
roundtrip | PASS | PASS | PASS | PASS | PASS | PASS | PASS | |
invalid_in | PASS | PASS | PASS | PASS | PASS | PASS | FAIL | |
invalid_out | PASS | FAIL | PASS | PASS | PASS | PASS | FAIL | |
roundtrip | PASS | PASS | PASS | PASS | PASS | PASS | PASS | |
invalid_in | FAIL | FAIL | FAIL | PASS | PASS | FAIL | FAIL | |
invalid_in | PASS | PASS | FAIL | PASS | PASS | PASS | PASS |
๐ numeric_reduction.json
Description | Type | go-ipld-prime | js-dag-cbor | atcute | dag-cbrrr | python-libipld | go-ipld-cbor | serde_ipld_dagcbor |
---|---|---|---|---|---|---|---|---|
invalid_in | FAIL | FAIL | PASS | PASS | PASS | FAIL | PASS | |
invalid_in | FAIL | FAIL | PASS | PASS | PASS | FAIL | PASS | |
roundtrip | FAIL | FAIL | FAIL | FAIL | FAIL | FAIL | FAIL | |
roundtrip | PASS | PASS | FAIL | PASS | PASS | PASS | PASS |
๐ recursion.json
๐ short_form.json
Description | Type | go-ipld-prime | js-dag-cbor | atcute | dag-cbrrr | python-libipld | go-ipld-cbor | serde_ipld_dagcbor |
---|---|---|---|---|---|---|---|---|
roundtrip | PASS | PASS | PASS | PASS | PASS | PASS | PASS | |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL | |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL | |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL | |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL | |
roundtrip | PASS | PASS | PASS | PASS | PASS | PASS | PASS | |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL | |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL | |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL | |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL | |
roundtrip | PASS | PASS | PASS | PASS | PASS | PASS | PASS | |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL | |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL | |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL | |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL | |
roundtrip | PASS | PASS | PASS | PASS | PASS | PASS | PASS | |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL | |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL | |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL | |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL | |
roundtrip | PASS | PASS | PASS | PASS | PASS | PASS | PASS | |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL | |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL | |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL | |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL | |
roundtrip | PASS | PASS | PASS | PASS | PASS | PASS | PASS | |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL | |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL | |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL | |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL | |
invalid_in | PASS | PASS | PASS | PASS | PASS | PASS | PASS | |
invalid_in | PASS | PASS | PASS | PASS | PASS | PASS | PASS |
๐ simple.json
Description | Type | go-ipld-prime | js-dag-cbor | atcute | dag-cbrrr | python-libipld | go-ipld-cbor | serde_ipld_dagcbor |
---|---|---|---|---|---|---|---|---|
invalid_in | FAIL | FAIL | PASS | PASS | PASS | FAIL | PASS | |
invalid_out | FAIL | PASS | PASS | PASS | PASS | FAIL | FAIL | |
invalid_in | PASS | PASS | PASS | PASS | PASS | PASS | PASS | |
roundtrip | PASS | PASS | PASS | PASS | PASS | PASS | PASS |
๐ tags.json
Description | Type | go-ipld-prime | js-dag-cbor | atcute | dag-cbrrr | python-libipld | go-ipld-cbor | serde_ipld_dagcbor |
---|---|---|---|---|---|---|---|---|
invalid_in | FAIL | PASS | PASS | PASS | PASS | PASS | PASS | |
invalid_out | FAIL | PASS | PASS | PASS | PASS | PASS | FAIL |
๐ utf8.json
๐ basic
Description | Type | go-ipld-prime | js-dag-cbor | atcute | dag-cbrrr | python-libipld | go-ipld-cbor | serde_ipld_dagcbor |
---|---|---|---|---|---|---|---|---|
invalid CIDFile: cid.json Description: this is tagged as a CID but is not valid, only containing a single zero byte |
invalid_in | PASS | PASS | FAIL | FAIL | PASS | PASS | PASS |
invalid hash size
Data: File: cid.json Description: a CIDv1 with a stated hash size of 32 bytes, but only 31 bytes provided |
invalid_in | PASS | PASS | FAIL | FAIL | PASS | PASS | PASS |
roundtrip | PASS | PASS | PASS | PASS | PASS | PASS | PASS | |
64-bit subnormal numberFile: floats.json Description: subnormal numbers are reduced to zero in some floating point implementations, but should not be here |
roundtrip | PASS | PASS | PASS | PASS | PASS | PASS | PASS |
largest CBOR integer, 2^64-1File: integer_range.json Description: the largest possible value for CBOR's positive integer type |
roundtrip | PASS | PASS | FAIL | PASS | PASS | FAIL | PASS |
smallest CBOR integer, -(2^64)File: integer_range.json Description: the smallest possible value for CBOR's negative integer type |
roundtrip | FAIL | PASS | FAIL | PASS | PASS | FAIL | PASS |
max safe JS integer, 2^53-1File: integer_range.json Description: the largest integer considered safe for use in JavaScript |
roundtrip | PASS | PASS | PASS | PASS | PASS | PASS | PASS |
2^53+1, unrepresentable in JSFile: integer_range.json Description: an integer that can't be represented in JavaScript (without BigInt) |
roundtrip | PASS | PASS | FAIL | PASS | PASS | PASS | PASS |
min safe JS integer, -(2^53-1)File: integer_range.json Description: the smallest integer considered safe for use in JavaScript |
roundtrip | PASS | PASS | PASS | PASS | PASS | PASS | PASS |
-(2^53+1), unrepresentable in JSFile: integer_range.json Description: a negative integer that can't be represented in JavaScript (without BigInt) |
roundtrip | PASS | PASS | FAIL | PASS | PASS | PASS | PASS |
roundtrip | PASS | PASS | PASS | PASS | PASS | PASS | PASS | |
duplicate map keysFile: map_keys.json Description: a map with duplicate string keys which is invalid by the CBOR spec |
invalid_in | PASS | PASS | FAIL | PASS | PASS | PASS | PASS |
deeply nested object
Data: File: recursion.json Description: this CBOR object has many nested arrays which can trigger recursion depth issues for some parsers |
roundtrip | PASS | FAIL | PASS | PASS | FAIL | PASS | FAIL |
unassigned simple valueFile: simple.json Description: this simple value is unassigned by the spec and must be invalid |
invalid_in | PASS | PASS | PASS | PASS | PASS | PASS | PASS |
simple value 'null'File: simple.json Description: the null value should be supported by all implementations |
roundtrip | PASS | PASS | PASS | PASS | PASS | PASS | PASS |
complex UTF-8 string
Data: File: utf8.json Description: this string contains many different kinds of Unicode characters (English, Arabic, Chinese, emoji, etc) to ensure that implementations don't alter data or struggle with this |
roundtrip | PASS | PASS | PASS | PASS | PASS | PASS | PASS |
commonly escaped charactersFile: utf8.json Description: commonly escaped characters like newlines or tabs are not escaped in CBOR |
roundtrip | PASS | PASS | PASS | PASS | PASS | PASS | PASS |
invalid UTF-8File: utf8.json Description: CBOR strings are required to be valid UTF-8, this invalid string tests whether libraries check for this |
invalid_in | FAIL | FAIL | FAIL | PASS | PASS | FAIL | PASS |
๐ dag-cbor
Description | Type | go-ipld-prime | js-dag-cbor | atcute | dag-cbrrr | python-libipld | go-ipld-cbor | serde_ipld_dagcbor |
---|---|---|---|---|---|---|---|---|
long CID tag
Data: File: cid.json Description: a longer than necessary CBOR representation of the CID tag is used, which is invalid in dag-cbor |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL |
valid CID with short tag
Data: File: cid.json Description: a valid CID (raw, SHA-256) using the correct short CBOR representation of the CID tag |
roundtrip | PASS | PASS | PASS | PASS | PASS | PASS | PASS |
concatenated objects / CBOR sequenceFile: concat.json Description: a CBOR sequence of two zeros, invalid in the DAG-CBOR spec |
invalid_in | PASS | PASS | PASS | PASS | PASS | FAIL | PASS |
64-bit floats onlyFile: floats.json Description: a 64-bit float, the only valid float representation for dag-cbor |
roundtrip | PASS | PASS | PASS | PASS | PASS | PASS | PASS |
invalid_in | FAIL | FAIL | PASS | PASS | PASS | FAIL | PASS | |
long NaNFile: floats.json Description: an invalid NaN representation, too long (RFC 8949) or because NaNs are invalid (dag-cbor) |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL |
negative zero float64File: floats.json Description: testing that negative zero can be roundtripped without becoming positive or an integer |
roundtrip | PASS | FAIL | FAIL | PASS | PASS | PASS | PASS |
roundtrip | PASS | FAIL | FAIL | PASS | PASS | PASS | PASS | |
invalid_in | FAIL | PASS | PASS | PASS | PASS | FAIL | PASS | |
invalid_in | FAIL | PASS | PASS | PASS | PASS | FAIL | PASS | |
invalid_in | FAIL | PASS | PASS | PASS | PASS | FAIL | FAIL | |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL | |
invalid_in | FAIL | PASS | PASS | PASS | PASS | FAIL | PASS | |
invalid_in | FAIL | PASS | PASS | PASS | PASS | FAIL | FAIL | |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL | |
invalid_out | FAIL | PASS | PASS | PASS | PASS | FAIL | PASS | |
invalid_out | FAIL | PASS | PASS | PASS | PASS | FAIL | PASS | |
invalid_out | FAIL | PASS | PASS | PASS | PASS | FAIL | PASS | |
signaling NaNFile: floats.json Description: signaling NaNs are invalid in dag-cbor (like other NaNs) |
invalid_in | FAIL | PASS | PASS | PASS | PASS | FAIL | PASS |
invalid_in | FAIL | PASS | PASS | PASS | PASS | FAIL | PASS | |
invalid_in | FAIL | PASS | PASS | PASS | PASS | FAIL | PASS | |
indefinite byte stringFile: indefinite.json Description: byte strings with undefined length are banned |
invalid_in | FAIL | PASS | PASS | PASS | PASS | FAIL | PASS |
invalid_in | FAIL | PASS | PASS | PASS | PASS | FAIL | PASS | |
invalid_out | PASS | PASS | PASS | PASS | PASS | PASS | FAIL | |
invalid_in | PASS | PASS | PASS | PASS | PASS | PASS | PASS | |
bignum with small valueFile: integer_range.json Description: an bignum with a value in the valid range is still banned in dag-cbor, and improper in RFC 8949 preferred serialization |
invalid_in | PASS | PASS | PASS | PASS | PASS | PASS | PASS |
map with int keyFile: map_keys.json Description: a map with an integer key, invalid to decode dag-cbor |
invalid_in | PASS | PASS | PASS | PASS | PASS | PASS | FAIL |
map with int keyFile: map_keys.json Description: a map with an integer key, invalid to encode dag-cbor |
invalid_out | PASS | FAIL | PASS | PASS | PASS | PASS | FAIL |
map keys in correct orderFile: map_keys.json Description: a map with string keys, sorted by their bytes, which also sorts them by length in CBOR |
roundtrip | PASS | PASS | PASS | PASS | PASS | PASS | PASS |
map keys in incorrect orderFile: map_keys.json Description: a map with string keys, not sorted by bytes/length |
invalid_in | FAIL | FAIL | FAIL | PASS | PASS | FAIL | FAIL |
duplicate map keysFile: map_keys.json Description: a map with duplicate string keys which is invalid by the CBOR spec |
invalid_in | PASS | PASS | FAIL | PASS | PASS | PASS | PASS |
roundtrip | PASS | PASS | PASS | PASS | PASS | PASS | PASS | |
unnecessary one-byte map definitionFile: short_form.json Description: a map with a length needlessly encoded as separate byte |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL |
unnecessary two-byte map definitionFile: short_form.json Description: a map with a length needlessly encoded as two bytes |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL |
unnecessary four-byte map definitionFile: short_form.json Description: a map with a length needlessly encoded as four bytes |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL |
unnecessary eight-byte map definition
Data: File: short_form.json Description: a map with a length needlessly encoded as eight bytes |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL |
small unsigned integerFile: short_form.json Description: a valid, minimally encoded unsigned integer |
roundtrip | PASS | PASS | PASS | PASS | PASS | PASS | PASS |
unnecessary one-byte unsigned integerFile: short_form.json Description: an unsigned integer with a length needlessly encoded as separate byte |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL |
unnecessary two-byte unsigned integerFile: short_form.json Description: an unsigned integer with a length needlessly encoded as two bytes |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL |
unnecessary four-byte unsigned integerFile: short_form.json Description: an unsigned integer with a length needlessly encoded as four bytes |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL |
unnecessary eight-byte unsigned integerFile: short_form.json Description: an unsigned integer with a length needlessly encoded as eight bytes |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL |
small negative integerFile: short_form.json Description: a valid, minimally encoded negative integer |
roundtrip | PASS | PASS | PASS | PASS | PASS | PASS | PASS |
unnecessary one-byte negative integerFile: short_form.json Description: a negative integer with a length needlessly encoded as separate byte |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL |
unnecessary two-byte negative integerFile: short_form.json Description: a negative integer with a length needlessly encoded as two bytes |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL |
unnecessary four-byte negative integerFile: short_form.json Description: a negative integer with a length needlessly encoded as four bytes |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL |
unnecessary eight-byte negative integerFile: short_form.json Description: a negative integer with a length needlessly encoded as eight bytes |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL |
roundtrip | PASS | PASS | PASS | PASS | PASS | PASS | PASS | |
unnecessary one-byte byte stringFile: short_form.json Description: a byte string with a length needlessly encoded as separate byte |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL |
unnecessary two-byte byte stringFile: short_form.json Description: a byte string with a length needlessly encoded as two bytes |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL |
unnecessary four-byte byte stringFile: short_form.json Description: a byte string with a length needlessly encoded as four bytes |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL |
unnecessary eight-byte byte stringFile: short_form.json Description: a byte string with a length needlessly encoded as eight bytes |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL |
roundtrip | PASS | PASS | PASS | PASS | PASS | PASS | PASS | |
unnecessary one-byte stringFile: short_form.json Description: a string with a length needlessly encoded as separate byte |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL |
unnecessary two-byte stringFile: short_form.json Description: a string with a length needlessly encoded as two bytes |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL |
unnecessary four-byte stringFile: short_form.json Description: a string with a length needlessly encoded as four bytes |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL |
unnecessary eight-byte stringFile: short_form.json Description: a string with a length needlessly encoded as eight bytes |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL |
roundtrip | PASS | PASS | PASS | PASS | PASS | PASS | PASS | |
unnecessary one-byte arrayFile: short_form.json Description: an array with a length needlessly encoded as separate byte |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL |
unnecessary two-byte arrayFile: short_form.json Description: an array with a length needlessly encoded as two bytes |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL |
unnecessary four-byte arrayFile: short_form.json Description: an array with a length needlessly encoded as four bytes |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL |
unnecessary eight-byte arrayFile: short_form.json Description: an array with a length needlessly encoded as eight bytes |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL |
simple value 'undefined'File: simple.json Description: the CBOR value undefined is banned for decoding by some specs |
invalid_in | FAIL | FAIL | PASS | PASS | PASS | FAIL | PASS |
simple value 'undefined'File: simple.json Description: the CBOR value undefined is banned for encoding by some specs |
invalid_out | FAIL | PASS | PASS | PASS | PASS | FAIL | FAIL |
tag that isn't 42
Data: File: tags.json Description: all tags other than 42 (CID) are banned by dag-cbor |
invalid_in | FAIL | PASS | PASS | PASS | PASS | PASS | PASS |
tagged object (datetime)
Data: File: tags.json Description: an object that could be encoded as a CBOR tag (a datetime in this case) should be rejected by dag-cbor encoders |
invalid_out | FAIL | PASS | PASS | PASS | PASS | PASS | FAIL |
text not in Unicode Normalization Form CFile: utf8.json Description: all specs except dCBOR don't mention Unicode normalization, so this test ensures that libraries don't alter strings for the purpose of normalization |
roundtrip | PASS | PASS | PASS | PASS | PASS | PASS | PASS |
๐ dasl-cid
Description | Type | go-ipld-prime | js-dag-cbor | atcute | dag-cbrrr | python-libipld | go-ipld-cbor | serde_ipld_dagcbor |
---|---|---|---|---|---|---|---|---|
valid CID with short tag
Data: File: cid.json Description: a valid CID (raw, SHA-256) using the correct short CBOR representation of the CID tag |
roundtrip | PASS | PASS | PASS | PASS | PASS | PASS | PASS |
CIDv0
Data: File: cid.json Description: a valid CIDv0, which is invalid as a DASL CID |
invalid_in | FAIL | FAIL | FAIL | FAIL | FAIL | FAIL | FAIL |
Big DASL CID
Data: File: cid.json Description: a valid BLAKE3 CID, also known as Big DASL |
roundtrip | PASS | PASS | PASS | PASS | PASS | PASS | PASS |
roundtrip | PASS | PASS | PASS | PASS | PASS | PASS | PASS | |
CIDv1 that isn't raw or cbor
Data: File: cid.json Description: a valid CIDv1 that uses dag-pb, invalid in the DASL CID spec |
invalid_in | FAIL | FAIL | FAIL | FAIL | FAIL | FAIL | FAIL |
disallowed hash type (SHA-1)
Data: File: cid.json Description: a valid CIDv1 that uses the SHA-1 hash, invalid in the DASL CID spec |
invalid_in | FAIL | FAIL | FAIL | FAIL | FAIL | FAIL | FAIL |
๐ c42
Description | Type | go-ipld-prime | js-dag-cbor | atcute | dag-cbrrr | python-libipld | go-ipld-cbor | serde_ipld_dagcbor |
---|---|---|---|---|---|---|---|---|
valid CID with short tag
Data: File: cid.json Description: a valid CID (raw, SHA-256) using the correct short CBOR representation of the CID tag |
roundtrip | PASS | PASS | PASS | PASS | PASS | PASS | PASS |
64-bit floats onlyFile: floats.json Description: a 64-bit float, the only valid float representation for dag-cbor |
roundtrip | PASS | PASS | PASS | PASS | PASS | PASS | PASS |
invalid_in | FAIL | FAIL | PASS | PASS | PASS | FAIL | PASS | |
long NaNFile: floats.json Description: an invalid NaN representation, too long (RFC 8949) or because NaNs are invalid (dag-cbor) |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL |
negative zero float64File: floats.json Description: testing that negative zero can be roundtripped without becoming positive or an integer |
roundtrip | PASS | FAIL | FAIL | PASS | PASS | PASS | PASS |
roundtrip | PASS | FAIL | FAIL | PASS | PASS | PASS | PASS | |
invalid_in | FAIL | PASS | PASS | PASS | PASS | FAIL | PASS | |
invalid_in | FAIL | PASS | PASS | PASS | PASS | FAIL | PASS | |
invalid_in | FAIL | PASS | PASS | PASS | PASS | FAIL | FAIL | |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL | |
invalid_in | FAIL | PASS | PASS | PASS | PASS | FAIL | PASS | |
invalid_in | FAIL | PASS | PASS | PASS | PASS | FAIL | FAIL | |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL | |
invalid_out | FAIL | PASS | PASS | PASS | PASS | FAIL | PASS | |
invalid_out | FAIL | PASS | PASS | PASS | PASS | FAIL | PASS | |
invalid_out | FAIL | PASS | PASS | PASS | PASS | FAIL | PASS | |
signaling NaNFile: floats.json Description: signaling NaNs are invalid in dag-cbor (like other NaNs) |
invalid_in | FAIL | PASS | PASS | PASS | PASS | FAIL | PASS |
invalid_in | FAIL | PASS | PASS | PASS | PASS | FAIL | PASS | |
invalid_in | FAIL | PASS | PASS | PASS | PASS | FAIL | PASS | |
indefinite byte stringFile: indefinite.json Description: byte strings with undefined length are banned |
invalid_in | FAIL | PASS | PASS | PASS | PASS | FAIL | PASS |
invalid_in | FAIL | PASS | PASS | PASS | PASS | FAIL | PASS | |
smallest unsigned bigintFile: integer_range.json Description: the smallest positive CBOR big integer value, valid in specs that support big integers |
roundtrip | FAIL | FAIL | FAIL | FAIL | FAIL | FAIL | FAIL |
highest negative bigintFile: integer_range.json Description: the largest negative CBOR big integer value, valid in specs that support big integers |
roundtrip | FAIL | FAIL | FAIL | FAIL | FAIL | FAIL | FAIL |
map with int keyFile: map_keys.json Description: a map with an integer key, invalid to decode dag-cbor |
invalid_in | PASS | PASS | PASS | PASS | PASS | PASS | FAIL |
map with int keyFile: map_keys.json Description: a map with an integer key, invalid to encode dag-cbor |
invalid_out | PASS | FAIL | PASS | PASS | PASS | PASS | FAIL |
map keys in correct orderFile: map_keys.json Description: a map with string keys, sorted by their bytes, which also sorts them by length in CBOR |
roundtrip | PASS | PASS | PASS | PASS | PASS | PASS | PASS |
map keys in incorrect orderFile: map_keys.json Description: a map with string keys, not sorted by bytes/length |
invalid_in | FAIL | FAIL | FAIL | PASS | PASS | FAIL | FAIL |
duplicate map keysFile: map_keys.json Description: a map with duplicate string keys which is invalid by the CBOR spec |
invalid_in | PASS | PASS | FAIL | PASS | PASS | PASS | PASS |
roundtrip | PASS | PASS | PASS | PASS | PASS | PASS | PASS | |
unnecessary one-byte map definitionFile: short_form.json Description: a map with a length needlessly encoded as separate byte |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL |
unnecessary two-byte map definitionFile: short_form.json Description: a map with a length needlessly encoded as two bytes |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL |
unnecessary four-byte map definitionFile: short_form.json Description: a map with a length needlessly encoded as four bytes |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL |
unnecessary eight-byte map definition
Data: File: short_form.json Description: a map with a length needlessly encoded as eight bytes |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL |
small unsigned integerFile: short_form.json Description: a valid, minimally encoded unsigned integer |
roundtrip | PASS | PASS | PASS | PASS | PASS | PASS | PASS |
unnecessary one-byte unsigned integerFile: short_form.json Description: an unsigned integer with a length needlessly encoded as separate byte |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL |
unnecessary two-byte unsigned integerFile: short_form.json Description: an unsigned integer with a length needlessly encoded as two bytes |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL |
unnecessary four-byte unsigned integerFile: short_form.json Description: an unsigned integer with a length needlessly encoded as four bytes |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL |
unnecessary eight-byte unsigned integerFile: short_form.json Description: an unsigned integer with a length needlessly encoded as eight bytes |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL |
small negative integerFile: short_form.json Description: a valid, minimally encoded negative integer |
roundtrip | PASS | PASS | PASS | PASS | PASS | PASS | PASS |
unnecessary one-byte negative integerFile: short_form.json Description: a negative integer with a length needlessly encoded as separate byte |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL |
unnecessary two-byte negative integerFile: short_form.json Description: a negative integer with a length needlessly encoded as two bytes |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL |
unnecessary four-byte negative integerFile: short_form.json Description: a negative integer with a length needlessly encoded as four bytes |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL |
unnecessary eight-byte negative integerFile: short_form.json Description: a negative integer with a length needlessly encoded as eight bytes |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL |
roundtrip | PASS | PASS | PASS | PASS | PASS | PASS | PASS | |
unnecessary one-byte byte stringFile: short_form.json Description: a byte string with a length needlessly encoded as separate byte |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL |
unnecessary two-byte byte stringFile: short_form.json Description: a byte string with a length needlessly encoded as two bytes |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL |
unnecessary four-byte byte stringFile: short_form.json Description: a byte string with a length needlessly encoded as four bytes |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL |
unnecessary eight-byte byte stringFile: short_form.json Description: a byte string with a length needlessly encoded as eight bytes |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL |
roundtrip | PASS | PASS | PASS | PASS | PASS | PASS | PASS | |
unnecessary one-byte stringFile: short_form.json Description: a string with a length needlessly encoded as separate byte |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL |
unnecessary two-byte stringFile: short_form.json Description: a string with a length needlessly encoded as two bytes |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL |
unnecessary four-byte stringFile: short_form.json Description: a string with a length needlessly encoded as four bytes |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL |
unnecessary eight-byte stringFile: short_form.json Description: a string with a length needlessly encoded as eight bytes |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL |
roundtrip | PASS | PASS | PASS | PASS | PASS | PASS | PASS | |
unnecessary one-byte arrayFile: short_form.json Description: an array with a length needlessly encoded as separate byte |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL |
unnecessary two-byte arrayFile: short_form.json Description: an array with a length needlessly encoded as two bytes |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL |
unnecessary four-byte arrayFile: short_form.json Description: an array with a length needlessly encoded as four bytes |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL |
unnecessary eight-byte arrayFile: short_form.json Description: an array with a length needlessly encoded as eight bytes |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL |
bigint with leading zero bytes
Data: File: short_form.json Description: a big integer encoded with unnecessary leading zeros |
invalid_in | PASS | PASS | PASS | PASS | PASS | PASS | PASS |
value too small for bigintFile: short_form.json Description: a big integer encoded with a value that could be a regular integer instead |
invalid_in | PASS | PASS | PASS | PASS | PASS | PASS | PASS |
simple value 'undefined'File: simple.json Description: the CBOR value undefined is banned for decoding by some specs |
invalid_in | FAIL | FAIL | PASS | PASS | PASS | FAIL | PASS |
simple value 'undefined'File: simple.json Description: the CBOR value undefined is banned for encoding by some specs |
invalid_out | FAIL | PASS | PASS | PASS | PASS | FAIL | FAIL |
tag that isn't 42
Data: File: tags.json Description: all tags other than 42 (CID) are banned by dag-cbor |
invalid_in | FAIL | PASS | PASS | PASS | PASS | PASS | PASS |
tagged object (datetime)
Data: File: tags.json Description: an object that could be encoded as a CBOR tag (a datetime in this case) should be rejected by dag-cbor encoders |
invalid_out | FAIL | PASS | PASS | PASS | PASS | PASS | FAIL |
text not in Unicode Normalization Form CFile: utf8.json Description: all specs except dCBOR don't mention Unicode normalization, so this test ensures that libraries don't alter strings for the purpose of normalization |
roundtrip | PASS | PASS | PASS | PASS | PASS | PASS | PASS |
๐ rfc8949
Description | Type | go-ipld-prime | js-dag-cbor | atcute | dag-cbrrr | python-libipld | go-ipld-cbor | serde_ipld_dagcbor |
---|---|---|---|---|---|---|---|---|
float reductionFile: floats.json Description: a 16-bit float, a valid representation according to RFC 8949 |
roundtrip | FAIL | FAIL | FAIL | FAIL | FAIL | FAIL | FAIL |
float reductionFile: floats.json Description: a 64-bit float that could be reduced, invalid for RFC 8949 |
invalid_in | FAIL | FAIL | FAIL | FAIL | FAIL | FAIL | FAIL |
roundtrip | FAIL | FAIL | FAIL | FAIL | FAIL | FAIL | FAIL | |
long NaNFile: floats.json Description: an invalid NaN representation, too long (RFC 8949) or because NaNs are invalid (dag-cbor) |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL |
zero float16File: floats.json Description: 0.0 as a 16-bit float is valid and required for RFC 8949 |
roundtrip | FAIL | FAIL | FAIL | FAIL | FAIL | FAIL | FAIL |
invalid_in | FAIL | PASS | PASS | PASS | PASS | FAIL | PASS | |
invalid_in | FAIL | PASS | PASS | PASS | PASS | FAIL | PASS | |
indefinite byte stringFile: indefinite.json Description: byte strings with undefined length are banned |
invalid_in | FAIL | PASS | PASS | PASS | PASS | FAIL | PASS |
invalid_in | FAIL | PASS | PASS | PASS | PASS | FAIL | PASS | |
bignum with small valueFile: integer_range.json Description: an bignum with a value in the valid range is still banned in dag-cbor, and improper in RFC 8949 preferred serialization |
invalid_in | PASS | PASS | PASS | PASS | PASS | PASS | PASS |
map keys in correct orderFile: map_keys.json Description: a map with string keys, sorted by their bytes, which also sorts them by length in CBOR |
roundtrip | PASS | PASS | PASS | PASS | PASS | PASS | PASS |
map keys in incorrect orderFile: map_keys.json Description: a map with string keys, not sorted by bytes/length |
invalid_in | FAIL | FAIL | FAIL | PASS | PASS | FAIL | FAIL |
roundtrip | PASS | PASS | PASS | PASS | PASS | PASS | PASS | |
unnecessary one-byte map definitionFile: short_form.json Description: a map with a length needlessly encoded as separate byte |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL |
unnecessary two-byte map definitionFile: short_form.json Description: a map with a length needlessly encoded as two bytes |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL |
unnecessary four-byte map definitionFile: short_form.json Description: a map with a length needlessly encoded as four bytes |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL |
unnecessary eight-byte map definition
Data: File: short_form.json Description: a map with a length needlessly encoded as eight bytes |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL |
small unsigned integerFile: short_form.json Description: a valid, minimally encoded unsigned integer |
roundtrip | PASS | PASS | PASS | PASS | PASS | PASS | PASS |
unnecessary one-byte unsigned integerFile: short_form.json Description: an unsigned integer with a length needlessly encoded as separate byte |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL |
unnecessary two-byte unsigned integerFile: short_form.json Description: an unsigned integer with a length needlessly encoded as two bytes |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL |
unnecessary four-byte unsigned integerFile: short_form.json Description: an unsigned integer with a length needlessly encoded as four bytes |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL |
unnecessary eight-byte unsigned integerFile: short_form.json Description: an unsigned integer with a length needlessly encoded as eight bytes |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL |
small negative integerFile: short_form.json Description: a valid, minimally encoded negative integer |
roundtrip | PASS | PASS | PASS | PASS | PASS | PASS | PASS |
unnecessary one-byte negative integerFile: short_form.json Description: a negative integer with a length needlessly encoded as separate byte |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL |
unnecessary two-byte negative integerFile: short_form.json Description: a negative integer with a length needlessly encoded as two bytes |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL |
unnecessary four-byte negative integerFile: short_form.json Description: a negative integer with a length needlessly encoded as four bytes |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL |
unnecessary eight-byte negative integerFile: short_form.json Description: a negative integer with a length needlessly encoded as eight bytes |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL |
roundtrip | PASS | PASS | PASS | PASS | PASS | PASS | PASS | |
unnecessary one-byte byte stringFile: short_form.json Description: a byte string with a length needlessly encoded as separate byte |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL |
unnecessary two-byte byte stringFile: short_form.json Description: a byte string with a length needlessly encoded as two bytes |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL |
unnecessary four-byte byte stringFile: short_form.json Description: a byte string with a length needlessly encoded as four bytes |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL |
unnecessary eight-byte byte stringFile: short_form.json Description: a byte string with a length needlessly encoded as eight bytes |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL |
roundtrip | PASS | PASS | PASS | PASS | PASS | PASS | PASS | |
unnecessary one-byte stringFile: short_form.json Description: a string with a length needlessly encoded as separate byte |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL |
unnecessary two-byte stringFile: short_form.json Description: a string with a length needlessly encoded as two bytes |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL |
unnecessary four-byte stringFile: short_form.json Description: a string with a length needlessly encoded as four bytes |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL |
unnecessary eight-byte stringFile: short_form.json Description: a string with a length needlessly encoded as eight bytes |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL |
roundtrip | PASS | PASS | PASS | PASS | PASS | PASS | PASS | |
unnecessary one-byte arrayFile: short_form.json Description: an array with a length needlessly encoded as separate byte |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL |
unnecessary two-byte arrayFile: short_form.json Description: an array with a length needlessly encoded as two bytes |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL |
unnecessary four-byte arrayFile: short_form.json Description: an array with a length needlessly encoded as four bytes |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL |
unnecessary eight-byte arrayFile: short_form.json Description: an array with a length needlessly encoded as eight bytes |
invalid_in | FAIL | PASS | FAIL | PASS | PASS | FAIL | FAIL |
bigint with leading zero bytes
Data: File: short_form.json Description: a big integer encoded with unnecessary leading zeros |
invalid_in | PASS | PASS | PASS | PASS | PASS | PASS | PASS |
๐ CBOR-Core
Description | Type | go-ipld-prime | js-dag-cbor | atcute | dag-cbrrr | python-libipld | go-ipld-cbor | serde_ipld_dagcbor |
---|---|---|---|---|---|---|---|---|
roundtrip | FAIL | FAIL | FAIL | FAIL | FAIL | FAIL | FAIL | |
zero float16File: floats.json Description: 0.0 as a 16-bit float is valid and required for RFC 8949 |
roundtrip | FAIL | FAIL | FAIL | FAIL | FAIL | FAIL | FAIL |
NaN with payloadFile: floats.json Description: NaNs with payloads (set bits) are invalid in CBOR::Core |
invalid_in | FAIL | PASS | PASS | PASS | PASS | FAIL | PASS |
smallest unsigned bigintFile: integer_range.json Description: the smallest positive CBOR big integer value, valid in specs that support big integers |
roundtrip | FAIL | FAIL | FAIL | FAIL | FAIL | FAIL | FAIL |
highest negative bigintFile: integer_range.json Description: the largest negative CBOR big integer value, valid in specs that support big integers |
roundtrip | FAIL | FAIL | FAIL | FAIL | FAIL | FAIL | FAIL |
map with equal int and float keysFile: numeric_reduction.json Description: a map with integer and float keys that have equal value, and so the float should not be reduced to an integer |
roundtrip | FAIL | FAIL | FAIL | FAIL | FAIL | FAIL | FAIL |
text not in Unicode Normalization Form CFile: utf8.json Description: all specs except dCBOR don't mention Unicode normalization, so this test ensures that libraries don't alter strings for the purpose of normalization |
roundtrip | PASS | PASS | PASS | PASS | PASS | PASS | PASS |
๐ dCBOR
Description | Type | go-ipld-prime | js-dag-cbor | atcute | dag-cbrrr | python-libipld | go-ipld-cbor | serde_ipld_dagcbor |
---|---|---|---|---|---|---|---|---|
duplicate map keysFile: map_keys.json Description: a map with duplicate string keys which is invalid by the CBOR spec |
invalid_in | PASS | PASS | FAIL | PASS | PASS | PASS | PASS |
0.0 could be reducedFile: numeric_reduction.json Description: 0.0 could be reduced to an integer according to dCBOR |
invalid_in | FAIL | FAIL | PASS | PASS | PASS | FAIL | PASS |
-0.0 could be reducedFile: numeric_reduction.json Description: -0.0 could be reduced to integer zero according to dCBOR |
invalid_in | FAIL | FAIL | PASS | PASS | PASS | FAIL | PASS |
map with equal int and float keysFile: numeric_reduction.json Description: a map with integer and float keys that have equal value, and so the float should not be reduced to an integer |
roundtrip | FAIL | FAIL | FAIL | FAIL | FAIL | FAIL | FAIL |
too small for int reduction, <-(2^63)File: numeric_reduction.json Description: a floating point value too small to be stored in a CBOR integer should not be reduced according to dCBOR |
roundtrip | PASS | PASS | FAIL | PASS | PASS | PASS | PASS |
simple value 'undefined'File: simple.json Description: the CBOR value undefined is banned for decoding by some specs |
invalid_in | FAIL | FAIL | PASS | PASS | PASS | FAIL | PASS |
simple value 'undefined'File: simple.json Description: the CBOR value undefined is banned for encoding by some specs |
invalid_out | FAIL | PASS | PASS | PASS | PASS | FAIL | FAIL |
text not in Unicode Normalization Form CFile: utf8.json Description: dCBOR requires strings be normalized into NFC form |
invalid_in | FAIL | FAIL | FAIL | FAIL | FAIL | FAIL | FAIL |
๐ CDE
Description | Type | go-ipld-prime | js-dag-cbor | atcute | dag-cbrrr | python-libipld | go-ipld-cbor | serde_ipld_dagcbor |
---|---|---|---|---|---|---|---|---|
text not in Unicode Normalization Form CFile: utf8.json Description: all specs except dCBOR don't mention Unicode normalization, so this test ensures that libraries don't alter strings for the purpose of normalization |
roundtrip | PASS | PASS | PASS | PASS | PASS | PASS | PASS |