VirtualBox

Changeset 19946 in vbox for trunk/src/VBox


Ignore:
Timestamp:
May 23, 2009 10:07:30 PM (16 years ago)
Author:
vboxsync
Message:

tstBase64: Converted to RTTest.

File:
1 edited

Legend:

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

    r16774 r19946  
    3333*******************************************************************************/
    3434#include <iprt/base64.h>
     35
    3536#include <iprt/err.h>
    3637#include <iprt/initterm.h>
     38#include <iprt/stdarg.h>
    3739#include <iprt/stream.h>
    3840#include <iprt/string.h>
    39 #include <iprt/stdarg.h>
     41#include <iprt/test.h>
    4042
    4143
     
    5355*   Global Variables                                                           *
    5456*******************************************************************************/
    55 static int g_cErrors = 0;
    56 
    57 
    58 static void tstBase64(const void *pvData, size_t cbData, const char *pszEnc, size_t cchEnc,
    59                       int fTextData, int fNormalEnc, const char *pszTestFmt, ...)
     57
     58
     59static void tstBase64(const void *pvData, size_t cbData,
     60                      const char *pszEnc, size_t cchEnc,
     61                      int fTextData, int fNormalEnc)
    6062{
    6163    char    szOut[0x10000];
    6264    size_t  cchOut = 0;
    6365
    64     /* Format the test name first. */
    65     va_list va;
    66     va_start(va, pszTestFmt);
    67     char szTest[32];
    68     RTStrPrintfV(szTest, sizeof(szTest), pszTestFmt, va);
    69     va_end(va);
    70 
    7166    /*
    7267     * Test decoding.
     
    7469    int rc = RTBase64Decode(pszEnc, szOut, cbData, &cchOut, NULL);
    7570    if (RT_FAILURE(rc))
    76     {
    77         RTPrintf("tstBase64: FAILURE - %s: RTBase64Decode -> %Rrc\n", szTest, rc);
    78         g_cErrors++;
    79     }
     71        RTTestIFailed("RTBase64Decode -> %Rrc", rc);
    8072    else if (cchOut != cbData)
    81     {
    82         RTPrintf("tstBase64: FAILURE - %s: RTBase64Decode returned %zu bytes, expected %zu.\n",
    83                  szTest, cchOut, cbData);
    84         g_cErrors++;
    85     }
     73        RTTestIFailed("RTBase64Decode returned %zu bytes, expected %zu.",
     74                      cchOut, cbData);
    8675    else if (memcmp(szOut, pvData, cchOut))
    8776    {
    8877        if (fTextData)
    89             RTPrintf("tstBase64: FAILURE - %s: RTBase64Decode returned:\n%.*s\nexpected:\n%s\n",
    90                      szTest, (int)cchOut, szOut, pvData);
     78            RTTestIFailed("RTBase64Decode returned:\n%.*s\nexpected:\n%s\n",
     79                         (int)cchOut, szOut, pvData);
    9180        else
    92             RTPrintf("tstBase64: FAILURE - %s: RTBase64Decode return mismatching output\n", szTest);
    93         g_cErrors++;
     81            RTTestIFailed("RTBase64Decode return mismatching output\n");
    9482    }
    9583
    9684    cchOut = RTBase64DecodedSize(pszEnc, NULL);
    9785    if (cchOut != cbData)
    98     {
    99         RTPrintf("tstBase64: FAILURE - %s: RTBase64DecodedSize returned %zu bytes, expected %zu.\n",
    100                  szTest, cchOut, cbData);
    101         g_cErrors++;
    102     }
     86        RTTestIFailed("RTBase64DecodedSize returned %zu bytes, expected %zu.\n",
     87                      cchOut, cbData);
    10388
    10489    /*
     
    10792    rc = RTBase64Encode(pvData, cbData, szOut, cchEnc + 1, &cchOut);
    10893    if (RT_FAILURE(rc))
    109     {
    110         RTPrintf("tstBase64: FAILURE - %s: RTBase64Encode -> %Rrc\n", szTest, rc);
    111         g_cErrors++;
    112     }
     94        RTTestIFailed("RTBase64Encode -> %Rrc\n", rc);
    11395    else if (fNormalEnc && cchOut != cchEnc)
    114     {
    115         RTPrintf("tstBase64: FAILURE - %s: RTBase64Encode returned %zu bytes, expected %zu.\n",
    116                  szTest, cchOut, cchEnc);
    117         g_cErrors++;
    118     }
     96        RTTestIFailed("RTBase64Encode returned %zu bytes, expected %zu.\n",
     97                      cchOut, cchEnc);
    11998    else if (fNormalEnc && memcmp(szOut, pszEnc, cchOut + 1))
    120     {
    121         RTPrintf("tstBase64: FAILURE - %s: RTBase64Encode returned:\n%*s\nexpected:\n%s\n",
    122                  szTest, szOut, pszEnc);
    123         g_cErrors++;
    124     }
     99        RTTestIFailed("RTBase64Encode returned:\n%*s\nexpected:\n%s\n",
     100                      szOut, pszEnc);
    125101
    126102    size_t cchOut2 = RTBase64EncodedLength(cbData);
    127103    if (cchOut != cchOut2)
    128     {
    129         RTPrintf("tstBase64: FAILURE - %s: RTBase64EncodedLength returned %zu bytes, expected %zu.\n",
    130                  szTest, cchOut2, cchOut);
    131         g_cErrors++;
    132     }
     104        RTTestIFailed("RTBase64EncodedLength returned %zu bytes, expected %zu.\n",
     105                      cchOut2, cchOut);
    133106
    134107    /** @todo negative testing. */
     
    138111int main()
    139112{
    140     RTR3Init();
    141 
     113    int rc = RTR3Init();
     114    if (RT_FAILURE(rc))
     115        return 1;
     116    RTTEST hTest;
     117    rc = RTTestCreate("tstRTBase64", &hTest);
     118    if (RT_FAILURE(rc))
     119        return 1;
     120    RTTestBanner(hTest);
    142121
    143122    /*
    144123     * Series of simple tests.
    145124     */
    146     RTPrintf("tstBase64: TESTING - Test 1\n");
    147125    static const struct
    148126    {
     
    173151
    174152    for (unsigned i = 0; i < RT_ELEMENTS(g_aTests); i++)
     153    {
     154        RTTestSubF(hTest, "Test 1-%u", i);
    175155        tstBase64(g_aTests[i].pszText, g_aTests[i].cchText,
    176156                  g_aTests[i].pszEnc, g_aTests[i].cchEnc,
    177                   1 /* fTextData */, 1 /* fNormalEnc */, "Test 1-#u", i);
     157                  1 /* fTextData */, 1 /* fNormalEnc */);
     158    }
    178159
    179160    /*
    180161     * Try with some more junk in the encoding and different line length.
    181162     */
    182     RTPrintf("tstBase64: TESTING - Test 2\n");
     163    RTTestSub(hTest, "Test 2");
    183164    static const char s_szText2[] =
    184165        "Man is distinguished, not only by his reason, but by this singular passion "
     
    196177    tstBase64(s_szText2, sizeof(s_szText2) - 1,
    197178              s_szEnc2,  sizeof(s_szEnc2) - 1,
    198               1 /* fTextData */, 0 /* fNormalEnc */, "Test 2");
     179              1 /* fTextData */, 0 /* fNormalEnc */);
    199180
    200181    /*
    201182     * Finally, a more extensive test.
    202183     */
    203     RTPrintf("tstBase64: TESTING - Test 3\n");
     184    RTTestSub(hTest, "Test 3");
    204185    static uint8_t s_abData3[12*256];
    205186    for (unsigned i = 0; i < 256; i++)
     
    288269    tstBase64(s_abData3, sizeof(s_abData3),
    289270              s_szEnc3,  sizeof(s_szEnc3) - 1,
    290               0 /* fTextData */, 0 /* fNormalEnc */, "Test 3");
     271              0 /* fTextData */, 0 /* fNormalEnc */);
    291272
    292273    /*
    293274     * Summary.
    294275     */
    295     if (!g_cErrors)
    296         RTPrintf("tstBase64: SUCCESS\n");
    297     else
    298         RTPrintf("tstBase64: FAILURE - %d errors\n", g_cErrors);
    299     return !!g_cErrors;
     276    return RTTestSummaryAndDestroy(hTest);
    300277}
    301278
Note: See TracChangeset for help on using the changeset viewer.

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