VirtualBox

Changeset 103262 in vbox for trunk/src/VBox/Devices/VMMDev


Ignore:
Timestamp:
Feb 8, 2024 12:00:32 AM (13 months ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
161553
Message:

IPRT,VMMDev,Bs3Kit: Added support for sub-sub-tests to better deal with bs3-cpu-generated-1 and others with too many sub-tests for the test manager.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/VMMDev/VMMDevTesting.cpp

    r103245 r103262  
    384384                case VMMDEV_TESTING_CMD_INIT:
    385385                case VMMDEV_TESTING_CMD_SUB_NEW:
     386                case VMMDEV_TESTING_CMD_SUBSUB_NEW:
    386387                case VMMDEV_TESTING_CMD_FAILED:
    387388                case VMMDEV_TESTING_CMD_SKIPPED:
     
    413414                                    if (pThisCC->hTestingTest != NIL_RTTEST)
    414415                                        RTTestSub(pThisCC->hTestingTest, pThis->TestingData.String.sz);
     416                                    break;
     417                                case VMMDEV_TESTING_CMD_SUBSUB_NEW:
     418                                    VMMDEV_TESTING_OUTPUT(("testing: SUBSUB_NEW  '%s'\n", pThis->TestingData.String.sz));
     419                                    if (pThisCC->hTestingTest != NIL_RTTEST)
     420                                        RTTestSubSub(pThisCC->hTestingTest, pThis->TestingData.String.sz);
    415421                                    break;
    416422                                case VMMDEV_TESTING_CMD_FAILED:
     
    445451                case VMMDEV_TESTING_CMD_TERM:
    446452                case VMMDEV_TESTING_CMD_SUB_DONE:
     453                case VMMDEV_TESTING_CMD_SUBSUB_DONE:
    447454                    if (cb == 2)
    448455                    {
     
    469476#ifdef IN_RING3
    470477                        pThis->TestingData.Error.c = u32;
     478
     479                        /* Bring the error count up to the right level (a bit stupid way
     480                           to do it, but it gets the job done). */
     481                        if (pThisCC->hTestingTest != NIL_RTTEST)
     482                        {
     483                            uint32_t cShort = uCmd == VMMDEV_TESTING_CMD_TERM     ? RTTestErrorCount(pThisCC->hTestingTest)
     484                                            : uCmd == VMMDEV_TESTING_CMD_SUB_DONE ? RTTestSubErrorCount(pThisCC->hTestingTest)
     485                                            :                                       RTTestSubSubErrorCount(pThisCC->hTestingTest);
     486                            cShort = u32 > cShort ? u32 - cShort : 0;
     487                            while (cShort-- > 0)
     488                                RTTestErrorInc(pThisCC->hTestingTest);
     489                        }
     490
    471491                        if (uCmd == VMMDEV_TESTING_CMD_TERM)
    472492                        {
    473493                            if (pThisCC->hTestingTest != NIL_RTTEST)
    474494                            {
    475                                 while (RTTestErrorCount(pThisCC->hTestingTest) < u32)
    476                                     RTTestErrorInc(pThisCC->hTestingTest); /* A bit stupid, but does the trick. */
    477495                                RTTestSubDone(pThisCC->hTestingTest);
    478496                                RTTestSummaryAndDestroy(pThisCC->hTestingTest);
     
    481499                            VMMDEV_TESTING_OUTPUT(("testing: TERM - %u errors\n", u32));
    482500                        }
     501                        else if (uCmd == VMMDEV_TESTING_CMD_SUBSUB_DONE)
     502                        {
     503                            if (pThisCC->hTestingTest != NIL_RTTEST)
     504                                RTTestSubSubDone(pThisCC->hTestingTest);
     505                            VMMDEV_TESTING_OUTPUT(("testing: SUBSUB_DONE - %u errors\n", u32));
     506                        }
    483507                        else
    484508                        {
    485509                            if (pThisCC->hTestingTest != NIL_RTTEST)
    486                             {
    487                                 while (RTTestSubErrorCount(pThisCC->hTestingTest) < u32)
    488                                     RTTestErrorInc(pThisCC->hTestingTest); /* A bit stupid, but does the trick. */
    489510                                RTTestSubDone(pThisCC->hTestingTest);
    490                             }
    491511                            VMMDEV_TESTING_OUTPUT(("testing: SUB_DONE - %u errors\n", u32));
    492512                        }
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