VirtualBox

Changeset 74179 in vbox for trunk/src/VBox/Runtime/testcase


Ignore:
Timestamp:
Sep 10, 2018 10:46:31 AM (6 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
124954
Message:

IPRT/json: Added \uXXXX and surrogate pair tests. Refuse to decode U+0000, U+FFFE and U+FFFF. bugref:9167

Location:
trunk/src/VBox/Runtime/testcase
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Runtime/testcase/tstRTCRest-1.cpp

    r74176 r74179  
    11181118        RTTESTI_CHECK(obj4.isNull() == false);
    11191119
     1120        obj4.setNull();
     1121        RTTESTI_CHECK_RC(deserializeFromJson(&obj4, "\"42:\\uD801\\udC37\\ud852\\uDf62:42\"",  /* U+10437 U+24B62 */
     1122                                             &ErrInfo, RT_XSTR(__LINE__)), VINF_SUCCESS);
     1123        RTTESTI_CHECK(obj4 == "42:" "\xf0\x90\x90\xb7" "\xf0\xa4\xad\xa2" ":42");
     1124        RTTESTI_CHECK(obj4.isNull() == false);
     1125
    11201126        /* object goes to default state on failure: */
    11211127        obj4 = "asdf";
  • trunk/src/VBox/Runtime/testcase/tstRTJson.cpp

    r74027 r74179  
    8181        { "{\"positive\":20}", VINF_SUCCESS },
    8282        { "{\"negative\":-20}", VINF_SUCCESS },
     83        { "\"\\u0001\"", VINF_SUCCESS },
     84        { "\"\\u000\"", VERR_JSON_INVALID_UTF16_ESCAPE_SEQUENCE },
     85        { "\"\\u00\"", VERR_JSON_INVALID_UTF16_ESCAPE_SEQUENCE },
     86        { "\"\\u0\"", VERR_JSON_INVALID_UTF16_ESCAPE_SEQUENCE },
     87        { "\"\\u\"", VERR_JSON_INVALID_UTF16_ESCAPE_SEQUENCE },
     88        { "\"\\uGhKl\"", VERR_JSON_INVALID_UTF16_ESCAPE_SEQUENCE },
     89        { "\"\\u0000z\"", VERR_JSON_INVALID_CODEPOINT },
     90        { "\"\\uffff\"", VERR_JSON_INVALID_CODEPOINT },
     91        { "\"\\ufffe\"", VERR_JSON_INVALID_CODEPOINT },
     92        { "\"\\ufffd\"", VINF_SUCCESS},
     93        { "\"\\ufffd1\"", VINF_SUCCESS},
     94        { "\"\\ufffd12\"", VINF_SUCCESS},
     95        { "\"\\uD801\\udC37\\ud852\\uDf62\"", VINF_SUCCESS },  /* U+10437 U+24B62 */
     96        { "\"\\uD801 \\udC37\"", VERR_JSON_MISSING_SURROGATE_PAIR },
     97        { "\"\\uD801udC37\"", VERR_JSON_MISSING_SURROGATE_PAIR },
     98        { "\"\\uD801\"", VERR_JSON_MISSING_SURROGATE_PAIR },
     99        { "\"\\uD801\\\"", VERR_JSON_MISSING_SURROGATE_PAIR },
     100        { "\"\\uD801\\u\"", VERR_JSON_INVALID_UTF16_ESCAPE_SEQUENCE },
     101        { "\"\\uD801\\ud\"", VERR_JSON_INVALID_UTF16_ESCAPE_SEQUENCE },
     102        { "\"\\uD801\\udc\"", VERR_JSON_INVALID_UTF16_ESCAPE_SEQUENCE },
     103        { "\"\\uD801\\udc3\"", VERR_JSON_INVALID_UTF16_ESCAPE_SEQUENCE },
     104        { "\"\\uD801\\uDc37\"", VINF_SUCCESS},
     105        { "\"\\uDbff\\uDfff\"", VINF_SUCCESS},
    83106    };
    84107    for (unsigned iTest = 0; iTest < RT_ELEMENTS(aTests); iTest++)
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette