@@ -1669,6 +1669,14 @@ void tst_Parser::strictValidation_data()
16691669 QTest::newRow (" overlong-map-24*8" ) << (raw (" \xbb\0\0\0\0\0\0\0\x18 " ) + mapdata24) << int (CborValidateCanonicalFormat) << CborErrorOverlongEncoding;
16701670 QTest::newRow (" overlong-map-256*4" ) << (raw (" \xba\0\0\1\0 " ) + mapdata256) << int (CborValidateCanonicalFormat) << CborErrorOverlongEncoding;
16711671 QTest::newRow (" overlong-map-256*8" ) << (raw (" \xbb\0\0\0\0\0\0\1\0 " ) + mapdata256) << int (CborValidateCanonicalFormat) << CborErrorOverlongEncoding;
1672+ QTest::newRow (" unsorted-length-map-UU" ) << raw (" \xa2\1\1\0\0 " ) << int (CborValidateCanonicalFormat) << CborErrorMapNotSorted;
1673+ QTest::newRow (" unsorted-length-map-UUU" ) << raw (" \xa3\1\1\1\1\0\0 " ) << int (CborValidateCanonicalFormat) << CborErrorMapNotSorted;
1674+ QTest::newRow (" unsorted-length-map-SS" ) << raw (" \xa2\x61 z\1\x60\0 " ) << int (CborValidateCanonicalFormat) << CborErrorMapNotSorted;
1675+ QTest::newRow (" unsorted-length-map-SSS" ) << raw (" \xa3\x61 z\1\x61 z\2\x60\0 " ) << int (CborValidateCanonicalFormat) << CborErrorMapNotSorted;
1676+ QTest::newRow (" unsorted-length-map-SB" ) << raw (" \xa2\x61 z\1\x40\0 " ) << int (CborValidateCanonicalFormat) << CborErrorMapNotSorted;
1677+ QTest::newRow (" unsorted-length-map-AS" ) << raw (" \xa2\x83\0\x20\x45 Hello\1\x60\0 " ) << int (CborValidateCanonicalFormat) << CborErrorMapNotSorted;
1678+ QTest::newRow (" unsorted-content-map-SS" ) << raw (" \xa2\x61 z\1\x61 y\0 " ) << int (CborValidateCanonicalFormat) << CborErrorMapNotSorted;
1679+ QTest::newRow (" unsorted-content-map-AS" ) << raw (" \xa2\x81\x21\1\x61\x21\0 " ) << int (CborValidateCanonicalFormat) << CborErrorMapNotSorted;
16721680
16731681 QTest::newRow (" tag-0" ) << raw (" \xc0\x60 " ) << int (CborValidateCanonicalFormat) << CborNoError;
16741682 QTest::newRow (" tag-24" ) << raw (" \xd8\x18\x40 " ) << int (CborValidateCanonicalFormat) << CborNoError;
@@ -1749,6 +1757,10 @@ void tst_Parser::strictValidation_data()
17491757 QTest::newRow (" invalid-utf8-overlong-4-5" ) << raw (" \x65\xf8\x80\x84\x80\x80 " ) << int (CborValidateStrictMode) << CborErrorInvalidUtf8TextString;
17501758 QTest::newRow (" invalid-utf8-overlong-4-6" ) << raw (" \x66\xfc\x80\x80\x84\x80\x80 " ) << int (CborValidateStrictMode) << CborErrorInvalidUtf8TextString;
17511759
1760+ QTest::newRow (" nonunique-content-map-UU" ) << raw (" \xa2\0\1\0\2 " ) << int (CborValidateStrictMode) << CborErrorMapKeysNotUnique;
1761+ QTest::newRow (" nonunique-content-map-SS" ) << raw (" \xa2\x61 z\1\x61 z\2 " ) << int (CborValidateStrictMode) << CborErrorMapKeysNotUnique;
1762+ QTest::newRow (" nonunique-content-map-AA" ) << raw (" \xa2\x81\x65 Hello\1\x81\x65 Hello\2 " ) << int (CborValidateStrictMode) << CborErrorMapKeysNotUnique;
1763+
17521764 QTest::newRow (" tag-0-unsigned" ) << raw (" \xc0\x00 " ) << int (CborValidateStrictMode) << CborErrorInappropriateTagForType;
17531765 QTest::newRow (" tag-0-bytearray" ) << raw (" \xc0\x40 " ) << int (CborValidateStrictMode) << CborErrorInappropriateTagForType;
17541766 QTest::newRow (" tag-0-string" ) << raw (" \xc0\x60 " ) << int (CborValidateStrictMode) << CborNoError;
@@ -1828,6 +1840,23 @@ void tst_Parser::strictValidation_data()
18281840 QTest::newRow (" excluded-fp--inf" ) << raw (" \xfb\xff\xf0\0\0\0\0\0\0 " ) << int (CborValidateFiniteFloatingPoint) << CborErrorExcludedValue;
18291841 QTest::newRow (" excluded-fp-+inf" ) << raw (" \xfb\x7f\xf0\0\0\0\0\0\0 " ) << int (CborValidateFiniteFloatingPoint) << CborErrorExcludedValue;
18301842
1843+ // exclude non-string keys in maps
1844+ QTest::newRow (" excluded-map-unsigned" ) << raw (" \xa1\x00\1 " ) << int (CborValidateMapKeysAreString) << CborErrorMapKeyNotString;
1845+ QTest::newRow (" excluded-map-negative" ) << raw (" \xa1\x20\1 " ) << int (CborValidateMapKeysAreString) << CborErrorMapKeyNotString;
1846+ QTest::newRow (" excluded-map-bytearray" ) << raw (" \xa1\x40\1 " ) << int (CborValidateMapKeysAreString) << CborErrorMapKeyNotString;
1847+ QTest::newRow (" map-string" ) << raw (" \xa1\x60\1 " ) << int (CborValidateMapKeysAreString) << CborNoError;
1848+ QTest::newRow (" map-tag-0-string" ) << raw (" \xa1\xc0\x60\1 " ) << int (CborValidateMapKeysAreString) << CborNoError;
1849+ QTest::newRow (" excluded-map-array" ) << raw (" \xa1\x80\1 " ) << int (CborValidateMapKeysAreString) << CborErrorMapKeyNotString;
1850+ QTest::newRow (" excluded-map-map" ) << raw (" \xa1\xa0\1 " ) << int (CborValidateMapKeysAreString) << CborErrorMapKeyNotString;
1851+ QTest::newRow (" excluded-map-simple-0" ) << raw (" \xa1\xe0\1 " ) << int (CborValidateMapKeysAreString) << CborErrorMapKeyNotString;
1852+ QTest::newRow (" excluded-map-false" ) << raw (" \xa1\xf4\1 " ) << int (CborValidateMapKeysAreString) << CborErrorMapKeyNotString;
1853+ QTest::newRow (" excluded-map-true" ) << raw (" \xa1\xf5\1 " ) << int (CborValidateMapKeysAreString) << CborErrorMapKeyNotString;
1854+ QTest::newRow (" excluded-map-null" ) << raw (" \xa1\xf6\1 " ) << int (CborValidateMapKeysAreString) << CborErrorMapKeyNotString;
1855+ QTest::newRow (" excluded-map-undefined" ) << raw (" \xa1\xf7\1 " ) << int (CborValidateMapKeysAreString) << CborErrorMapKeyNotString;
1856+ QTest::newRow (" excluded-map-half" ) << raw (" \xa1\xf9\0\0\1 " ) << int (CborValidateMapKeysAreString) << CborErrorMapKeyNotString;
1857+ QTest::newRow (" excluded-map-float" ) << raw (" \xa1\xfa\0\0\0\0\1 " ) << int (CborValidateMapKeysAreString) << CborErrorMapKeyNotString;
1858+ QTest::newRow (" excluded-map-double" ) << raw (" \xa1\xfb\0\0\0\0\0\0\0\0\1 " ) << int (CborValidateMapKeysAreString) << CborErrorMapKeyNotString;
1859+
18311860 // unknown simple types
18321861 QTest::newRow (" unknown-simple-type-0" ) << raw (" \xe0 " ) << int (CborValidateNoUnknownSimpleTypes) << CborErrorUnknownSimpleType;
18331862 QTest::newRow (" unknown-simple-type-32" ) << raw (" \xf8\x20 " ) << int (CborValidateNoUnknownSimpleTypes) << CborErrorUnknownSimpleType;
0 commit comments