VirtualBox

Changeset 86399 in vbox for trunk


Ignore:
Timestamp:
Oct 1, 2020 7:47:17 PM (4 years ago)
Author:
vboxsync
Message:

tstUsbMouse: Don't leak the CFGM tree for each test instance. bugref:9841

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Devices/Input/testcase/tstUsbMouse.cpp

    r82968 r86399  
    140140                pUsbIns->pHlpR3             = &g_tstUsbHlp;
    141141                pUsbIns->pvInstanceDataR3   = pUsbIns->achInstanceData;
     142                pUsbIns->pCfg               = pCfg;
    142143                rc = g_UsbHidMou.pfnConstruct(pUsbIns, iInstance, pCfg, NULL);
    143144                if (RT_SUCCESS(rc))
     
    156157
    157158
     159static void tstMouseDestruct(RTTEST hTest, PPDMUSBINS pUsbIns)
     160{
     161    if (pUsbIns)
     162    {
     163        g_UsbHidMou.pfnDestruct(pUsbIns);
     164        CFGMR3DestroyTree(pUsbIns->pCfg);
     165        RTTestGuardedFree(hTest, pUsbIns);
     166    }
     167}
     168
     169
    158170static void testConstructAndDestruct(RTTEST hTest)
    159171{
     
    165177    PPDMUSBINS pUsbIns = NULL;
    166178    RTTEST_CHECK_RC(hTest, tstMouseConstruct(hTest, 0, "relative", 1, &pUsbIns), VINF_SUCCESS);
    167     if (pUsbIns)
    168     {
    169         g_UsbHidMou.pfnDestruct(pUsbIns);
    170         RTTestGuardedFree(hTest, pUsbIns);
    171     }
     179    tstMouseDestruct(hTest, pUsbIns);
    172180
    173181    /*
     
    205213        RTTEST_CHECK_RC(hTest, tstMouseConstruct(hTest, 0, "relative", 1, &pUsbIns, s_aVersionTests[i].uInsVersion),
    206214                        s_aVersionTests[i].rc);
    207         if (pUsbIns)
    208             RTTestGuardedFree(hTest, pUsbIns);
     215        tstMouseDestruct(hTest, pUsbIns);
    209216    }
    210217    RTAssertSetMayPanic(fSavedMayPanic);
     
    253260    }
    254261    RTTEST_CHECK_RC_OK(hTest, rc);
    255     if (pUsbIns)
    256     {
    257         g_UsbHidMou.pfnDestruct(pUsbIns);
    258         RTTestGuardedFree(hTest, pUsbIns);
    259     }
     262    tstMouseDestruct(hTest, pUsbIns);
    260263}
    261264
     
    269272    RT_ZERO(Urb);
    270273    if (RT_SUCCESS(rc))
    271     {
    272274        rc = g_UsbHidMou.pfnUsbReset(pUsbIns, false);
    273     }
    274275    if (RT_SUCCESS(rc))
    275276    {
    276277        if (g_drvTstMouse.pDrv)
    277             g_drvTstMouse.pDrv->pfnPutEventAbs(g_drvTstMouse.pDrv, 300, 200, 1,
    278                                                3, 3);
     278            g_drvTstMouse.pDrv->pfnPutEventAbs(g_drvTstMouse.pDrv, 300, 200, 1, 3, 3);
    279279        else
    280280            rc = VERR_PDM_MISSING_INTERFACE;
     
    306306    }
    307307    RTTEST_CHECK_RC_OK(hTest, rc);
    308     if (pUsbIns)
    309     {
    310         g_UsbHidMou.pfnDestruct(pUsbIns);
    311         RTTestGuardedFree(hTest, pUsbIns);
    312     }
     308    tstMouseDestruct(hTest, pUsbIns);
    313309}
    314310
     
    360356    }
    361357    RTTEST_CHECK_RC_OK(hTest, rc);
    362     if (pUsbIns)
    363     {
    364         g_UsbHidMou.pfnDestruct(pUsbIns);
    365         RTTestGuardedFree(hTest, pUsbIns);
    366     }
     358    tstMouseDestruct(hTest, pUsbIns);
    367359}
    368360#endif
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