VirtualBox

Changeset 79570 in vbox for trunk/src/VBox


Ignore:
Timestamp:
Jul 7, 2019 12:40:40 AM (6 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
131860
Message:

IPRT: Added RTPathPurgeFilename for making valid filenames out of random strings. bugref:9288

Location:
trunk/src/VBox/Runtime
Files:
1 added
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Runtime/Makefile.kmk

    r79019 r79570  
    533533        common/path/RTPathParsedReassemble.cpp \
    534534        common/path/RTPathParseSimple.cpp \
     535        common/path/RTPathPurgeFilename.cpp \
    535536        common/path/RTPathRealDup.cpp \
    536537        common/path/RTPathRmCmd.cpp \
  • trunk/src/VBox/Runtime/testcase/tstRTPath.cpp

    r78702 r79570  
    251251                             i, cchParent2, cchExpected, s_aTests[i].pszPath);
    252252        }
     253    }
     254}
     255
     256
     257static void testPurgeFilename(RTTEST hTest)
     258{
     259    static struct
     260    {
     261        const char *pszIn, *pszOut;
     262        uint32_t    fFlags;
     263    } const s_aTests[] =
     264    {
     265        { "start///end",            "start___end",      RTPATH_STR_F_STYLE_UNIX },
     266        { "start///end",            "start___end",      RTPATH_STR_F_STYLE_DOS },
     267        { "start///end",            "start___end",      RTPATH_STR_F_STYLE_HOST },
     268        { "1:<>\\9",                "1:<>\\9",          RTPATH_STR_F_STYLE_UNIX },
     269        { "1:<>\\9",                "1____9",           RTPATH_STR_F_STYLE_DOS },
     270        { "\t\r\n",                 "\t\r\n",           RTPATH_STR_F_STYLE_UNIX },
     271        { "\t\r\n",                 "___",              RTPATH_STR_F_STYLE_DOS },
     272    };
     273    RTTestSub(hTest, "RTPathPurgeFilename");
     274    for (uint32_t i = 0; i < RT_ELEMENTS(s_aTests); i++)
     275    {
     276        char szPath[RTPATH_MAX];
     277        strcpy(szPath, s_aTests[i].pszIn);
     278        char *pszRet = RTPathPurgeFilename(szPath, s_aTests[i].fFlags);
     279        RTTEST_CHECK(hTest, pszRet == &szPath[0]);
     280        if (strcmp(szPath, s_aTests[i].pszOut) != 0)
     281            RTTestFailed(hTest, "sub-test #%u: got '%s', expected '%s' (style %#x)",
     282                         i, szPath, s_aTests[i].pszOut, s_aTests[i].fFlags);
    253283    }
    254284}
     
    9831013    testParserAndSplitter(hTest);
    9841014    testParentLength(hTest);
     1015    testPurgeFilename(hTest);
    9851016
    9861017    /*
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