VirtualBox

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


Ignore:
Timestamp:
Mar 13, 2019 7:47:02 PM (6 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
129330
Message:

tstRTFileOpenEx-1: Cleanup and one more case. ticketref:9276

File:
1 edited

Legend:

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

    r77681 r77689  
    4343
    4444
     45/** @note FsPerf have a copy of this code.   */
     46static void tstOpenExTest(unsigned uLine, int cbExist, int cbNext, const char *pszFilename, uint64_t fAction,
     47                          int rcExpect, RTFILEACTION enmActionExpected)
     48{
     49    uint64_t const  fCreateMode = (0644 << RTFILE_O_CREATE_MODE_SHIFT);
     50    RTFILE          hFile;
     51    int             rc;
     52
     53    /*
     54     * File existence and size.
     55     */
     56    bool fOkay = false;
     57    RTFSOBJINFO ObjInfo;
     58    rc = RTPathQueryInfoEx(pszFilename, &ObjInfo, RTFSOBJATTRADD_NOTHING, RTPATH_F_ON_LINK);
     59    if (RT_SUCCESS(rc))
     60        fOkay = cbExist == (int64_t)ObjInfo.cbObject;
     61    else
     62        fOkay = rc == VERR_FILE_NOT_FOUND && cbExist < 0;
     63    if (!fOkay)
     64    {
     65        if (cbExist >= 0)
     66        {
     67            rc = RTFileOpen(&hFile, pszFilename, RTFILE_O_WRITE | RTFILE_O_CREATE_REPLACE | RTFILE_O_DENY_NONE | fCreateMode);
     68            if (RT_SUCCESS(rc))
     69            {
     70                while (cbExist > 0)
     71                {
     72                    size_t cbToWrite = strlen(pszFilename);
     73                    if ((ssize_t)cbToWrite > cbExist)
     74                        cbToWrite = cbExist;
     75                    rc = RTFileWrite(hFile, pszFilename, cbToWrite, NULL);
     76                    if (RT_FAILURE(rc))
     77                    {
     78                        RTTestIFailed("%u: RTFileWrite(%s,%#x) -> %Rrc\n", uLine, pszFilename, cbToWrite, rc);
     79                        break;
     80                    }
     81                    cbExist -= cbToWrite;
     82                }
     83
     84                RTTESTI_CHECK_RC(RTFileClose(hFile), VINF_SUCCESS);
     85            }
     86            else
     87                RTTestIFailed("%u: RTFileDelete(%s) -> %Rrc\n", uLine, pszFilename, rc);
     88
     89        }
     90        else
     91        {
     92            rc = RTFileDelete(pszFilename);
     93            if (rc != VINF_SUCCESS && rc != VERR_FILE_NOT_FOUND)
     94                RTTestIFailed("%u: RTFileDelete(%s) -> %Rrc\n", uLine, pszFilename, rc);
     95        }
     96    }
     97
     98    /*
     99     * The actual test.
     100     */
     101    RTFILEACTION enmActuallyTaken = RTFILEACTION_END;
     102    hFile = NIL_RTFILE;
     103    rc = RTFileOpenEx(pszFilename, fAction | RTFILE_O_READWRITE | RTFILE_O_DENY_NONE | fCreateMode, &hFile, &enmActuallyTaken);
     104    if (   rc != rcExpect
     105        || enmActuallyTaken != enmActionExpected
     106        || (RT_SUCCESS(rc) ? hFile == NIL_RTFILE : hFile != NIL_RTFILE))
     107        RTTestIFailed("%u: RTFileOpenEx(%s, %#llx) -> %Rrc + %d  (hFile=%p), expected %Rrc + %d\n",
     108                      uLine, pszFilename, fAction, rc, enmActuallyTaken, hFile, rcExpect, enmActionExpected);
     109    if (RT_SUCCESS(rc))
     110    {
     111        if (   enmActionExpected == RTFILEACTION_REPLACED
     112            || enmActionExpected == RTFILEACTION_TRUNCATED)
     113        {
     114            uint8_t abBuf[16];
     115            rc = RTFileRead(hFile, abBuf, 1, NULL);
     116            if (rc != VERR_EOF)
     117                RTTestIFailed("%u: RTFileRead(%s,,1,) -> %Rrc, expected VERR_EOF\n", uLine, pszFilename, rc);
     118        }
     119
     120        while (cbNext > 0)
     121        {
     122            size_t cbToWrite = strlen(pszFilename);
     123            if ((ssize_t)cbToWrite > cbNext)
     124                cbToWrite = cbNext;
     125            rc = RTFileWrite(hFile, pszFilename, cbToWrite, NULL);
     126            if (RT_FAILURE(rc))
     127            {
     128                RTTestIFailed("%u: RTFileWrite(%s,%#x) -> %Rrc\n", uLine, pszFilename, cbToWrite, rc);
     129                break;
     130            }
     131            cbNext -= cbToWrite;
     132        }
     133
     134        rc = RTFileClose(hFile);
     135        if (RT_FAILURE(rc))
     136            RTTestIFailed("%u: RTFileClose(%p) -> %Rrc\n", uLine, hFile, rc);
     137    }
     138}
     139
     140
     141/** @note FsPerf have a copy of this code.   */
    45142void tstFileActionTaken(RTTEST hTest)
    46143{
    47     uint64_t const  fMode = (0644 << RTFILE_O_CREATE_MODE_SHIFT);
    48     RTFILE          hFile;
    49     RTFILEACTION    enmTaken;
    50     int             rc;
    51     uint8_t         abBuf[512];
    52 
    53144    RTTestSub(hTest, "Action taken");
    54     RTFileDelete(g_szTestFile);
    55145
    56146    /*
     
    58148     */
    59149    /* RTFILE_O_OPEN - non-existing: */
    60     RTTEST_CHECK(hTest, !RTPathExists(g_szTestFile));
    61     hFile = NIL_RTFILE;
    62     enmTaken = RTFILEACTION_END;
    63     rc = RTFileOpenEx(g_szTestFile, RTFILE_O_READWRITE | RTFILE_O_OPEN | RTFILE_O_DENY_NONE, &hFile, &enmTaken);
    64     if (rc != VERR_FILE_NOT_FOUND && rc != VERR_OPEN_FAILED)
    65         RTTestFailed(hTest, "RTFileOpenEx+RTFILE_O_OPEN(#1) -> %Rrc, expected VERR_FILE_NOT_FOUND or VERR_OPEN_FAILED", rc);
    66     if (enmTaken != RTFILEACTION_INVALID)
    67         RTTestFailed(hTest, "RTFileOpenEx+RTFILE_O_OPEN(#1) -> enmTaken=%d, expected %d (RTFILEACTION_INVALID)",
    68                      enmTaken, RTFILEACTION_INVALID);
    69     if (hFile != NIL_RTFILE)
    70         RTTestFailed(hTest, "RTFileOpenEx+RTFILE_O_OPEN(#1) -> hFile=%p, expected %p (NIL_RTFILE)", hFile, NIL_RTFILE);
     150    tstOpenExTest(__LINE__, -1, -1, g_szTestFile, RTFILE_O_OPEN,                         VERR_FILE_NOT_FOUND, RTFILEACTION_INVALID);
    71151
    72152    /* RTFILE_O_OPEN_CREATE - non-existing: */
    73     RTTEST_CHECK(hTest, !RTPathExists(g_szTestFile));
    74     hFile    = NIL_RTFILE;
    75     enmTaken = RTFILEACTION_END;
    76     rc = RTFileOpenEx(g_szTestFile, RTFILE_O_READWRITE | RTFILE_O_OPEN_CREATE | RTFILE_O_DENY_NONE | fMode, &hFile, &enmTaken);
    77     if (rc != VINF_SUCCESS)
    78         RTTestFailed(hTest, "RTFileOpenEx+RTFILE_O_OPEN_CREATE(#1) -> %Rrc, expected VINF_SUCCESS", rc);
    79     if (enmTaken != RTFILEACTION_CREATED)
    80         RTTestFailed(hTest, "RTFileOpenEx+RTFILE_O_OPEN_CREATE(#1) -> enmTaken=%d, expected %d (RTFILEACTION_CREATED)",
    81                      enmTaken, RTFILEACTION_CREATED);
    82     if (hFile == NIL_RTFILE)
    83         RTTestFailed(hTest, "RTFileOpenEx+RTFILE_O_OPEN_CREATE(#1) -> hFile=%p (NIL_RTFILE)", hFile);
    84     RTTESTI_CHECK_RC(RTFileClose(hFile), VINF_SUCCESS);
     153    tstOpenExTest(__LINE__, -1, -1, g_szTestFile, RTFILE_O_OPEN_CREATE,                         VINF_SUCCESS, RTFILEACTION_CREATED);
    85154
    86155    /* RTFILE_O_OPEN_CREATE - existing: */
    87     RTTEST_CHECK(hTest, RTPathExists(g_szTestFile));
    88     hFile    = NIL_RTFILE;
    89     enmTaken = RTFILEACTION_END;
    90     rc = RTFileOpenEx(g_szTestFile, RTFILE_O_READWRITE | RTFILE_O_OPEN_CREATE | RTFILE_O_DENY_NONE | fMode, &hFile, &enmTaken);
    91     if (rc != VINF_SUCCESS)
    92         RTTestFailed(hTest, "RTFileOpenEx+RTFILE_O_OPEN_CREATE(#2) -> %Rrc, expected VINF_SUCCESS", rc);
    93     if (enmTaken != RTFILEACTION_OPENED)
    94         RTTestFailed(hTest, "RTFileOpenEx+RTFILE_O_OPEN_CREATE(#2) -> enmTaken=%d, expected %d (RTFILEACTION_OPENED)",
    95                      enmTaken, RTFILEACTION_OPENED);
    96     if (hFile == NIL_RTFILE)
    97         RTTestFailed(hTest, "RTFileOpenEx+RTFILE_O_OPEN_CREATE(#2) -> hFile=%p (NIL_RTFILE)", hFile);
    98     RTTESTI_CHECK_RC(RTFileClose(hFile), VINF_SUCCESS);
     156    tstOpenExTest(__LINE__,  0,  0, g_szTestFile, RTFILE_O_OPEN_CREATE,                         VINF_SUCCESS, RTFILEACTION_OPENED);
    99157
    100158    /* RTFILE_O_OPEN - existing: */
    101     RTTEST_CHECK(hTest, RTPathExists(g_szTestFile));
    102     hFile    = NIL_RTFILE;
    103     enmTaken = RTFILEACTION_END;
    104     rc = RTFileOpenEx(g_szTestFile, RTFILE_O_READWRITE | RTFILE_O_OPEN | RTFILE_O_DENY_NONE, &hFile, &enmTaken);
    105     if (rc != VINF_SUCCESS)
    106         RTTestFailed(hTest, "RTFileOpenEx+RTFILE_O_OPEN(#2) -> %Rrc, expected VINF_SUCCESS", rc);
    107     if (enmTaken != RTFILEACTION_OPENED)
    108         RTTestFailed(hTest, "RTFileOpenEx+RTFILE_O_OPEN(#2) -> enmTaken=%d, expected %d (RTFILEACTION_OPENED)",
    109                      enmTaken, RTFILEACTION_OPENED);
    110     if (hFile == NIL_RTFILE)
    111         RTTestFailed(hTest, "RTFileOpenEx+RTFILE_O_OPEN(#3) -> hFile=%p (NIL_RTFILE)", hFile);
    112     RTTESTI_CHECK_RC(RTFileClose(hFile), VINF_SUCCESS);
    113 
     159    tstOpenExTest(__LINE__,  0,  0, g_szTestFile, RTFILE_O_OPEN,                                VINF_SUCCESS, RTFILEACTION_OPENED);
    114160
    115161    /*
     
    117163     */
    118164    /* RTFILE_O_OPEN + TRUNCATE - existing zero sized file: */
    119     RTTEST_CHECK(hTest, RTPathExists(g_szTestFile));
    120     hFile    = NIL_RTFILE;
    121     enmTaken = RTFILEACTION_END;
    122     rc = RTFileOpenEx(g_szTestFile, RTFILE_O_READWRITE | RTFILE_O_OPEN | RTFILE_O_TRUNCATE | RTFILE_O_DENY_NONE, &hFile, &enmTaken);
    123     if (rc != VINF_SUCCESS)
    124         RTTestFailed(hTest, "RTFileOpenEx+RTFILE_O_OPEN+TRUNCATE(#1) -> %Rrc, expected VINF_SUCCESS", rc);
    125     if (enmTaken != RTFILEACTION_TRUNCATED)
    126         RTTestFailed(hTest, "RTFileOpenEx+RTFILE_O_OPEN+TRUNCATE(#1) -> enmTaken=%d, expected %d (RTFILEACTION_TRUNCATED)",
    127                      enmTaken, RTFILEACTION_TRUNCATED);
    128     if (hFile == NIL_RTFILE)
    129         RTTestFailed(hTest, "RTFileOpenEx+RTFILE_O_OPEN+TRUNCATE(#1) -> hFile=%p (NIL_RTFILE)", hFile);
    130     RTTESTI_CHECK_RC(RTFileClose(hFile), VINF_SUCCESS);
     165    tstOpenExTest(__LINE__,  0,  0, g_szTestFile, RTFILE_O_OPEN | RTFILE_O_TRUNCATE,            VINF_SUCCESS, RTFILEACTION_TRUNCATED);
    131166
    132167    /* RTFILE_O_OPEN_CREATE + TRUNCATE - existing zero sized file: */
    133     RTTEST_CHECK(hTest, RTPathExists(g_szTestFile));
    134     hFile    = NIL_RTFILE;
    135     enmTaken = RTFILEACTION_END;
    136     rc = RTFileOpenEx(g_szTestFile, RTFILE_O_READWRITE | RTFILE_O_OPEN_CREATE | RTFILE_O_TRUNCATE | RTFILE_O_DENY_NONE, &hFile, &enmTaken);
    137     if (rc != VINF_SUCCESS)
    138         RTTestFailed(hTest, "RTFileOpenEx+RTFILE_O_OPEN_CREATE+TRUNCATE(#1) -> %Rrc, expected VINF_SUCCESS", rc);
    139     if (enmTaken != RTFILEACTION_TRUNCATED)
    140         RTTestFailed(hTest, "RTFileOpenEx+RTFILE_O_OPEN_CREATE+TRUNCATE(#1) -> enmTaken=%d, expected %d (RTFILEACTION_TRUNCATED)",
    141                      enmTaken, RTFILEACTION_TRUNCATED);
    142     if (hFile == NIL_RTFILE)
    143         RTTestFailed(hTest, "RTFileOpenEx+RTFILE_O_OPEN_CREATE+TRUNCATE(#1) -> hFile=%p (NIL_RTFILE)", hFile);
    144     RTTESTI_CHECK_RC(RTFileRead(hFile, abBuf, 1, NULL), VERR_EOF); /* check that it was truncated */
    145     RTTESTI_CHECK_RC(RTFileWrite(hFile, RT_STR_TUPLE("test"),  NULL), VINF_SUCCESS); /* for the trunction in the next test  */
    146     RTTESTI_CHECK_RC(RTFileClose(hFile), VINF_SUCCESS);
     168    tstOpenExTest(__LINE__,  0, 10, g_szTestFile, RTFILE_O_OPEN_CREATE | RTFILE_O_TRUNCATE,     VINF_SUCCESS, RTFILEACTION_TRUNCATED);
    147169
    148170    /* RTFILE_O_OPEN_CREATE + TRUNCATE - existing non-zero sized file: */
    149     RTTEST_CHECK(hTest, RTPathExists(g_szTestFile));
    150     hFile    = NIL_RTFILE;
    151     enmTaken = RTFILEACTION_END;
    152     rc = RTFileOpenEx(g_szTestFile, RTFILE_O_READWRITE | RTFILE_O_OPEN_CREATE | RTFILE_O_TRUNCATE | RTFILE_O_DENY_NONE, &hFile, &enmTaken);
    153     if (rc != VINF_SUCCESS)
    154         RTTestFailed(hTest, "RTFileOpenEx+RTFILE_O_OPEN_CREATE+TRUNCATE(#2) -> %Rrc, expected VINF_SUCCESS", rc);
    155     if (enmTaken != RTFILEACTION_TRUNCATED)
    156         RTTestFailed(hTest, "RTFileOpenEx+RTFILE_O_OPEN_CREATE+TRUNCATE(#2) -> enmTaken=%d, expected %d (RTFILEACTION_TRUNCATED)",
    157                      enmTaken, RTFILEACTION_TRUNCATED);
    158     if (hFile == NIL_RTFILE)
    159         RTTestFailed(hTest, "RTFileOpenEx+RTFILE_O_OPEN_CREATE+TRUNCATE(#2) -> hFile=%p (NIL_RTFILE)", hFile);
    160     RTTESTI_CHECK_RC(RTFileRead(hFile, abBuf, 1, NULL), VERR_EOF); /* check that it was truncated */
    161     RTTESTI_CHECK_RC(RTFileWrite(hFile, RT_STR_TUPLE("test"),  NULL), VINF_SUCCESS); /* for the trunction in the next test  */
    162     RTTESTI_CHECK_RC(RTFileClose(hFile), VINF_SUCCESS);
     171    tstOpenExTest(__LINE__, 10, 10, g_szTestFile, RTFILE_O_OPEN_CREATE | RTFILE_O_TRUNCATE,     VINF_SUCCESS, RTFILEACTION_TRUNCATED);
     172
     173    /* RTFILE_O_OPEN + TRUNCATE - existing non-zero sized file: */
     174    tstOpenExTest(__LINE__, 10, -1, g_szTestFile, RTFILE_O_OPEN | RTFILE_O_TRUNCATE,            VINF_SUCCESS, RTFILEACTION_TRUNCATED);
     175
     176    /* RTFILE_O_OPEN + TRUNCATE - non-existing file: */
     177    tstOpenExTest(__LINE__, -1, -1, g_szTestFile, RTFILE_O_OPEN | RTFILE_O_TRUNCATE,     VERR_FILE_NOT_FOUND, RTFILEACTION_INVALID);
    163178
    164179    /* RTFILE_O_OPEN_CREATE + TRUNCATE - non-existing file: */
    165     RTTEST_CHECK_RC(hTest, RTFileDelete(g_szTestFile), VINF_SUCCESS);
    166     RTTEST_CHECK(hTest, !RTPathExists(g_szTestFile));
    167     hFile    = NIL_RTFILE;
    168     enmTaken = RTFILEACTION_END;
    169     rc = RTFileOpenEx(g_szTestFile, RTFILE_O_READWRITE | RTFILE_O_OPEN_CREATE | RTFILE_O_TRUNCATE | RTFILE_O_DENY_NONE, &hFile, &enmTaken);
    170     if (rc != VINF_SUCCESS)
    171         RTTestFailed(hTest, "RTFileOpenEx+RTFILE_O_OPEN_CREATE+TRUNCATE(#2) -> %Rrc, expected VINF_SUCCESS", rc);
    172     if (enmTaken != RTFILEACTION_CREATED)
    173         RTTestFailed(hTest, "RTFileOpenEx+RTFILE_O_OPEN_CREATE+TRUNCATE(#2) -> enmTaken=%d, expected %d (RTFILEACTION_CREATED)",
    174                      enmTaken, RTFILEACTION_CREATED);
    175     if (hFile == NIL_RTFILE)
    176         RTTestFailed(hTest, "RTFileOpenEx+RTFILE_O_OPEN_CREATE+TRUNCATE(#2) -> hFile=%p (NIL_RTFILE)", hFile);
    177     RTTESTI_CHECK_RC(RTFileWrite(hFile, RT_STR_TUPLE("test"),  NULL), VINF_SUCCESS); /* for the trunction in the next test  */
    178     RTTESTI_CHECK_RC(RTFileClose(hFile), VINF_SUCCESS);
    179 
    180     /* RTFILE_O_OPEN + TRUNCATE - existing non-zero sized file: */
    181     RTTEST_CHECK(hTest, RTPathExists(g_szTestFile));
    182     hFile    = NIL_RTFILE;
    183     enmTaken = RTFILEACTION_END;
    184     rc = RTFileOpenEx(g_szTestFile, RTFILE_O_READWRITE | RTFILE_O_OPEN | RTFILE_O_TRUNCATE | RTFILE_O_DENY_NONE, &hFile, &enmTaken);
    185     if (rc != VINF_SUCCESS)
    186         RTTestFailed(hTest, "RTFileOpenEx+RTFILE_O_OPEN+TRUNCATE(#2) -> %Rrc, expected VINF_SUCCESS", rc);
    187     if (enmTaken != RTFILEACTION_TRUNCATED)
    188         RTTestFailed(hTest, "RTFileOpenEx+RTFILE_O_OPEN+TRUNCATE(#2) -> enmTaken=%d, expected %d (RTFILEACTION_TRUNCATED)",
    189                      enmTaken, RTFILEACTION_TRUNCATED);
    190     if (hFile == NIL_RTFILE)
    191         RTTestFailed(hTest, "RTFileOpenEx+RTFILE_O_OPEN+TRUNCATE(#2) -> hFile=%p (NIL_RTFILE)", hFile);
    192     RTTESTI_CHECK_RC(RTFileRead(hFile, abBuf, 1, NULL), VERR_EOF); /* check that it was truncated */
    193     RTTESTI_CHECK_RC(RTFileWrite(hFile, RT_STR_TUPLE("test"),  NULL), VINF_SUCCESS); /* for the replacement in the next test  */
    194     RTTESTI_CHECK_RC(RTFileClose(hFile), VINF_SUCCESS);
    195 
     180    tstOpenExTest(__LINE__, -1,  0, g_szTestFile, RTFILE_O_OPEN_CREATE | RTFILE_O_TRUNCATE,     VINF_SUCCESS, RTFILEACTION_CREATED);
    196181
    197182    /*
     
    199184     */
    200185    /* RTFILE_O_CREATE_REPLACE - existing: */
    201     RTTEST_CHECK(hTest, RTPathExists(g_szTestFile));
    202     hFile    = NIL_RTFILE;
    203     enmTaken = RTFILEACTION_END;
    204     rc = RTFileOpenEx(g_szTestFile, RTFILE_O_READWRITE | RTFILE_O_CREATE_REPLACE | RTFILE_O_DENY_NONE | fMode, &hFile, &enmTaken);
    205     if (rc != VINF_SUCCESS)
    206         RTTestFailed(hTest, "RTFileOpenEx+RTFILE_O_CREATE_REPLACE(#1) -> %Rrc, expected VINF_SUCCESS", rc);
    207     if (enmTaken != RTFILEACTION_REPLACED)
    208         RTTestFailed(hTest, "RTFileOpenEx+RTFILE_O_CREATE_REPLACE(#1) -> enmTaken=%d, expected %d (RTFILEACTION_REPLACED)",
    209                      enmTaken, RTFILEACTION_REPLACED);
    210     if (hFile == NIL_RTFILE)
    211         RTTestFailed(hTest, "RTFileOpenEx+RTFILE_O_CREATE_REPLACE(#1) -> hFile=%p (NIL_RTFILE)", hFile);
    212     RTTESTI_CHECK_RC(RTFileRead(hFile, abBuf, 1, NULL), VERR_EOF); /* check that it was replaced */
    213     RTTESTI_CHECK_RC(RTFileClose(hFile), VINF_SUCCESS);
     186    tstOpenExTest(__LINE__,  0, -1, g_szTestFile, RTFILE_O_CREATE_REPLACE,                      VINF_SUCCESS, RTFILEACTION_REPLACED);
    214187
    215188    /* RTFILE_O_CREATE_REPLACE - non-existing: */
    216     RTTESTI_CHECK_RC(RTFileDelete(g_szTestFile), VINF_SUCCESS);
    217     RTTEST_CHECK(hTest, !RTPathExists(g_szTestFile));
    218     hFile    = NIL_RTFILE;
    219     enmTaken = RTFILEACTION_END;
    220     rc = RTFileOpenEx(g_szTestFile, RTFILE_O_READWRITE | RTFILE_O_CREATE_REPLACE | RTFILE_O_DENY_NONE | fMode, &hFile, &enmTaken);
    221     if (rc != VINF_SUCCESS)
    222         RTTestFailed(hTest, "RTFileOpenEx+RTFILE_O_CREATE_REPLACE(#2) -> %Rrc, expected VINF_SUCCESS", rc);
    223     if (enmTaken != RTFILEACTION_CREATED)
    224         RTTestFailed(hTest, "RTFileOpenEx+RTFILE_O_CREATE_REPLACE(#2) -> enmTaken=%d, expected %d (RTFILEACTION_CREATED)",
    225                      enmTaken, RTFILEACTION_CREATED);
    226     if (hFile == NIL_RTFILE)
    227         RTTestFailed(hTest, "RTFileOpenEx+RTFILE_O_CREATE_REPLACE(#2) -> hFile=%p (NIL_RTFILE)", hFile);
    228     RTTESTI_CHECK_RC(RTFileClose(hFile), VINF_SUCCESS);
     189    tstOpenExTest(__LINE__, -1,  0, g_szTestFile, RTFILE_O_CREATE_REPLACE,                      VINF_SUCCESS, RTFILEACTION_CREATED);
    229190
    230191    /* RTFILE_O_CREATE - existing: */
    231     RTTEST_CHECK(hTest, RTPathExists(g_szTestFile));
    232     hFile    = NIL_RTFILE;
    233     enmTaken = RTFILEACTION_END;
    234     rc = RTFileOpenEx(g_szTestFile, RTFILE_O_READWRITE | RTFILE_O_CREATE | RTFILE_O_DENY_NONE | fMode, &hFile, &enmTaken);
    235     if (rc != VERR_ALREADY_EXISTS && rc != VERR_OPEN_FAILED)
    236         RTTestFailed(hTest, "RTFileOpenEx+RTFILE_O_CREATE(#1) -> %Rrc, expected VERR_ALREADY_EXISTS or VERR_OPEN_FAILED", rc);
    237     if (enmTaken != RTFILEACTION_ALREADY_EXISTS)
    238         RTTestFailed(hTest, "RTFileOpenEx+RTFILE_O_CREATE(#1) -> enmTaken=%d, expected %d (RTFILEACTION_ALREADY_EXISTS)",
    239                      enmTaken, RTFILEACTION_ALREADY_EXISTS);
    240     if (hFile != NIL_RTFILE)
    241         RTTestFailed(hTest, "RTFileOpenEx+RTFILE_O_CREATE(#1) -> hFile=%p, expected %p (NIL_RTFILE)", hFile, NIL_RTFILE);
     192    tstOpenExTest(__LINE__,  0, -1, g_szTestFile, RTFILE_O_CREATE,                       VERR_ALREADY_EXISTS, RTFILEACTION_ALREADY_EXISTS);
    242193
    243194    /* RTFILE_O_CREATE - non-existing: */
    244     RTTESTI_CHECK_RC(RTFileDelete(g_szTestFile), VINF_SUCCESS);
    245     RTTEST_CHECK(hTest, !RTPathExists(g_szTestFile));
    246     hFile    = NIL_RTFILE;
    247     enmTaken = RTFILEACTION_END;
    248     rc = RTFileOpenEx(g_szTestFile, RTFILE_O_READWRITE | RTFILE_O_CREATE | RTFILE_O_DENY_NONE | fMode, &hFile, &enmTaken);
    249     if (rc != VINF_SUCCESS)
    250         RTTestFailed(hTest, "RTFileOpenEx+RTFILE_O_CREATE(#2) -> %Rrc, expected VINF_SUCCESS", rc);
    251     if (enmTaken != RTFILEACTION_CREATED)
    252         RTTestFailed(hTest, "RTFileOpenEx+RTFILE_O_CREATE(#2) -> enmTaken=%d, expected %d (RTFILEACTION_CREATED)",
    253                      enmTaken, RTFILEACTION_CREATED);
    254     if (hFile == NIL_RTFILE)
    255         RTTestFailed(hTest, "RTFileOpenEx+RTFILE_O_CREATE(#2) -> hFile=%p (NIL_RTFILE)", hFile);
    256     RTTESTI_CHECK_RC(RTFileClose(hFile), VINF_SUCCESS);
     195    tstOpenExTest(__LINE__, -1, -1, g_szTestFile, RTFILE_O_CREATE,                              VINF_SUCCESS, RTFILEACTION_CREATED);
    257196
    258197    /*
     
    260199     */
    261200    /* RTFILE_O_CREATE+TRUNCATE - non-existing: */
    262     RTTESTI_CHECK_RC(RTFileDelete(g_szTestFile), VINF_SUCCESS);
    263     RTTEST_CHECK(hTest, !RTPathExists(g_szTestFile));
    264     hFile    = NIL_RTFILE;
    265     enmTaken = RTFILEACTION_END;
    266     rc = RTFileOpenEx(g_szTestFile, RTFILE_O_READWRITE | RTFILE_O_CREATE | RTFILE_O_TRUNCATE | RTFILE_O_DENY_NONE | fMode, &hFile, &enmTaken);
    267     if (rc != VINF_SUCCESS)
    268         RTTestFailed(hTest, "RTFileOpenEx+RTFILE_O_CREATE+TRUNCATE(#1) -> %Rrc, expected VINF_SUCCESS", rc);
    269     if (enmTaken != RTFILEACTION_CREATED)
    270         RTTestFailed(hTest, "RTFileOpenEx+RTFILE_O_CREATE+TRUNCATE(#1) -> enmTaken=%d, expected %d (RTFILEACTION_CREATED)",
    271                      enmTaken, RTFILEACTION_CREATED);
    272     if (hFile == NIL_RTFILE)
    273         RTTestFailed(hTest, "RTFileOpenEx+RTFILE_O_CREATE+TRUNCATE(#1) -> hFile=%p (NIL_RTFILE)", hFile);
    274     RTTESTI_CHECK_RC(RTFileClose(hFile), VINF_SUCCESS);
     201    tstOpenExTest(__LINE__, -1, 10, g_szTestFile, RTFILE_O_CREATE | RTFILE_O_TRUNCATE,          VINF_SUCCESS, RTFILEACTION_CREATED);
    275202
    276203    /* RTFILE_O_CREATE+TRUNCATE - existing: */
    277     RTTEST_CHECK(hTest, RTPathExists(g_szTestFile));
    278     hFile    = NIL_RTFILE;
    279     enmTaken = RTFILEACTION_END;
    280     rc = RTFileOpenEx(g_szTestFile, RTFILE_O_READWRITE | RTFILE_O_CREATE | RTFILE_O_TRUNCATE | RTFILE_O_DENY_NONE | fMode, &hFile, &enmTaken);
    281     if (rc != VERR_ALREADY_EXISTS && rc != VERR_OPEN_FAILED)
    282         RTTestFailed(hTest, "RTFileOpenEx+RTFILE_O_CREATE+TRUNCATE(#2) -> %Rrc, expected VERR_ALREADY_EXISTS or VERR_OPEN_FAILED", rc);
    283     if (enmTaken != RTFILEACTION_ALREADY_EXISTS)
    284         RTTestFailed(hTest, "RTFileOpenEx+RTFILE_O_CREATE+TRUNCATE(#2) -> enmTaken=%d, expected %d (RTFILEACTION_ALREADY_EXISTS)",
    285                      enmTaken, RTFILEACTION_ALREADY_EXISTS);
    286     if (hFile != NIL_RTFILE)
    287         RTTestFailed(hTest, "RTFileOpenEx+RTFILE_O_CREATE+TRUNCATE(#2) -> hFile=%p, expected %p (NIL_RTFILE)", hFile, NIL_RTFILE);
     204    tstOpenExTest(__LINE__, 10, 10, g_szTestFile,  RTFILE_O_CREATE | RTFILE_O_TRUNCATE,  VERR_ALREADY_EXISTS, RTFILEACTION_ALREADY_EXISTS);
    288205
    289206    /* RTFILE_O_CREATE_REPLACE+TRUNCATE - existing: */
    290     RTTEST_CHECK(hTest, RTPathExists(g_szTestFile));
    291     hFile    = NIL_RTFILE;
    292     enmTaken = RTFILEACTION_END;
    293     rc = RTFileOpenEx(g_szTestFile, RTFILE_O_READWRITE | RTFILE_O_CREATE_REPLACE | RTFILE_O_TRUNCATE | RTFILE_O_DENY_NONE | fMode, &hFile, &enmTaken);
    294     if (rc != VINF_SUCCESS)
    295         RTTestFailed(hTest, "RTFileOpenEx+RTFILE_O_CREATE_REPLACE+TRUNCATE(#1) -> %Rrc, expected VINF_SUCCESS", rc);
    296     if (enmTaken != RTFILEACTION_REPLACED)
    297         RTTestFailed(hTest, "RTFileOpenEx+RTFILE_O_CREATE_REPLACE+TRUNCATE(#1) -> enmTaken=%d, expected %d (RTFILEACTION_REPLACED)",
    298                      enmTaken, RTFILEACTION_REPLACED);
    299     if (hFile == NIL_RTFILE)
    300         RTTestFailed(hTest, "RTFileOpenEx+RTFILE_O_CREATE_REPLACE+TRUNCATE(#1) -> hFile=%p (NIL_RTFILE)", hFile);
    301     RTTESTI_CHECK_RC(RTFileClose(hFile), VINF_SUCCESS);
     207    tstOpenExTest(__LINE__, 10, -1, g_szTestFile,  RTFILE_O_CREATE_REPLACE | RTFILE_O_TRUNCATE, VINF_SUCCESS, RTFILEACTION_REPLACED);
     208
     209    /* RTFILE_O_CREATE_REPLACE+TRUNCATE - non-existing: */
     210    tstOpenExTest(__LINE__, -1, -1, g_szTestFile, RTFILE_O_CREATE_REPLACE | RTFILE_O_TRUNCATE,  VINF_SUCCESS, RTFILEACTION_CREATED);
    302211
    303212    RTTESTI_CHECK_RC(RTFileDelete(g_szTestFile), VINF_SUCCESS);
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