@@ -1669,6 +1669,14 @@ void tst_Parser::strictValidation_data()
1669
1669
QTest::newRow (" overlong-map-24*8" ) << (raw (" \xbb\0\0\0\0\0\0\0\x18 " ) + mapdata24) << int (CborValidateCanonicalFormat) << CborErrorOverlongEncoding;
1670
1670
QTest::newRow (" overlong-map-256*4" ) << (raw (" \xba\0\0\1\0 " ) + mapdata256) << int (CborValidateCanonicalFormat) << CborErrorOverlongEncoding;
1671
1671
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;
1672
1680
1673
1681
QTest::newRow (" tag-0" ) << raw (" \xc0\x60 " ) << int (CborValidateCanonicalFormat) << CborNoError;
1674
1682
QTest::newRow (" tag-24" ) << raw (" \xd8\x18\x40 " ) << int (CborValidateCanonicalFormat) << CborNoError;
@@ -1749,6 +1757,10 @@ void tst_Parser::strictValidation_data()
1749
1757
QTest::newRow (" invalid-utf8-overlong-4-5" ) << raw (" \x65\xf8\x80\x84\x80\x80 " ) << int (CborValidateStrictMode) << CborErrorInvalidUtf8TextString;
1750
1758
QTest::newRow (" invalid-utf8-overlong-4-6" ) << raw (" \x66\xfc\x80\x80\x84\x80\x80 " ) << int (CborValidateStrictMode) << CborErrorInvalidUtf8TextString;
1751
1759
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
+
1752
1764
QTest::newRow (" tag-0-unsigned" ) << raw (" \xc0\x00 " ) << int (CborValidateStrictMode) << CborErrorInappropriateTagForType;
1753
1765
QTest::newRow (" tag-0-bytearray" ) << raw (" \xc0\x40 " ) << int (CborValidateStrictMode) << CborErrorInappropriateTagForType;
1754
1766
QTest::newRow (" tag-0-string" ) << raw (" \xc0\x60 " ) << int (CborValidateStrictMode) << CborNoError;
@@ -1828,6 +1840,23 @@ void tst_Parser::strictValidation_data()
1828
1840
QTest::newRow (" excluded-fp--inf" ) << raw (" \xfb\xff\xf0\0\0\0\0\0\0 " ) << int (CborValidateFiniteFloatingPoint) << CborErrorExcludedValue;
1829
1841
QTest::newRow (" excluded-fp-+inf" ) << raw (" \xfb\x7f\xf0\0\0\0\0\0\0 " ) << int (CborValidateFiniteFloatingPoint) << CborErrorExcludedValue;
1830
1842
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
+
1831
1860
// unknown simple types
1832
1861
QTest::newRow (" unknown-simple-type-0" ) << raw (" \xe0 " ) << int (CborValidateNoUnknownSimpleTypes) << CborErrorUnknownSimpleType;
1833
1862
QTest::newRow (" unknown-simple-type-32" ) << raw (" \xf8\x20 " ) << int (CborValidateNoUnknownSimpleTypes) << CborErrorUnknownSimpleType;
0 commit comments