VirtualBox

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


Ignore:
Timestamp:
Sep 2, 2018 2:49:45 PM (7 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
124774
Message:

IPRT/json: Implemented support for parsing floating point values. bugref:9167

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Runtime/testcase/tstRTJson.cpp

    r73979 r74027  
    3535static const char *g_pszJson =
    3636    "{\n"
    37     "    \"number\": 100,\n"
     37    "    \"integer\": 100,\n"
     38    "    \"number\": 22.22,\n"
    3839    "    \"string\": \"test\",\n"
    3940    "    \"array\": [1, 2, 3, 4, 5, \"6\"],\n"
     
    142143    }
    143144
    144     if (enmType != RTJSONVALTYPE_NUMBER)
     145    if (enmType != RTJSONVALTYPE_INTEGER)
    145146    {
    146147        int64_t i64Num = 0;
    147148        RTTEST_CHECK_RC(hTest, RTJsonValueQueryInteger(hJsonVal, &i64Num), VERR_JSON_VALUE_INVALID_TYPE);
     149    }
     150
     151    if (enmType != RTJSONVALTYPE_NUMBER)
     152    {
     153        double rdNum = 0.0;
     154        RTTEST_CHECK_RC(hTest, RTJsonValueQueryNumber(hJsonVal, &rdNum), VERR_JSON_VALUE_INVALID_TYPE);
    148155    }
    149156
     
    174181        RTJSONVAL hJsonValItem = NIL_RTJSONVAL;
    175182        RTTEST_CHECK_RC_OK_RETV(hTest, RTJsonValueQueryByIndex(hJsonVal, i - 1, &hJsonValItem));
    176         RTTEST_CHECK(hTest, RTJsonValueGetType(hJsonValItem) == RTJSONVALTYPE_NUMBER);
     183        RTTEST_CHECK(hTest, RTJsonValueGetType(hJsonValItem) == RTJSONVALTYPE_INTEGER);
    177184        RTTEST_CHECK_RC_OK_RETV(hTest, RTJsonValueQueryInteger(hJsonValItem, &i64Num));
    178185        RTTEST_CHECK(hTest, i64Num == (int64_t)i);
     
    230237                    break;
    231238                }
     239                case RTJSONVALTYPE_INTEGER:
     240                {
     241                    RTTEST_CHECK(hTest, strcmp(pszName, "integer") == 0);
     242                    int64_t i64Num = 0;
     243                    RTTEST_CHECK_RC_OK(hTest, RTJsonValueQueryInteger(hJsonValMember, &i64Num));
     244                    RTTEST_CHECK(hTest, i64Num == 100);
     245                    break;
     246                }
    232247                case RTJSONVALTYPE_NUMBER:
    233248                {
    234249                    RTTEST_CHECK(hTest, strcmp(pszName, "number") == 0);
    235                     int64_t i64Num = 0;
    236                     RTTEST_CHECK_RC_OK(hTest, RTJsonValueQueryInteger(hJsonValMember, &i64Num));
    237                     RTTEST_CHECK(hTest, i64Num == 100);
     250                    double rdNum = 0.0;
     251                    RTTEST_CHECK_RC_OK(hTest, RTJsonValueQueryNumber(hJsonValMember, &rdNum));
     252                    double const rdExpect = 22.22;
     253                    RTTEST_CHECK(hTest, rdNum == rdExpect);
    238254                    break;
    239255                }
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