VirtualBox

Changeset 97274 in vbox for trunk


Ignore:
Timestamp:
Oct 24, 2022 8:34:59 AM (2 years ago)
Author:
vboxsync
Message:

Validation Kit/HGCM: Added initial GuestHost/HGCMMockUtils.h. See header for docs [build fix].

Location:
trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/include/VBox/GuestHost/HGCMMockUtils.h

    r97273 r97274  
    7171#include <iprt/types.h>
    7272
     73
    7374#include <VBox/GuestHost/HGCMMock.h>
    74 
    75 
    76 /** Prototype for HGCM Mock utils context. */
    77 struct TSTHGCMUTILSCTX;
     75#include <VBox/VBoxGuestLib.h>
     76
     77
     78#if defined(IN_RING3) /* Only R3 parts implemented so far. */
     79
    7880/** Pointer to a HGCM Mock utils context. */
    79 typedef TSTHGCMUTILSCTX *PTSTHGCMUTILSCTX;
     81typedef struct TSTHGCMUTILSCTX *PTSTHGCMUTILSCTX;
    8082
    8183/**
     
    127129    {
    128130        RTTHREAD                  hThread;
    129         VBGLR3SHCLCMDCTX          CmdCtx;
    130131        volatile bool             fShutdown;
    131132        PFNTSTHGCMUTILSTHREAD     pfnThread;
     
    143144
    144145/*********************************************************************************************************************************
     146*  Prototypes.                                                                                                                   *
     147*********************************************************************************************************************************/
     148/** @name Context handling.
     149 * @{ */
     150void TstHGCMUtilsCtxInit(PTSTHGCMUTILSCTX pCtx, PTSTHGCMMOCKSVC pSvc);
     151/** @} */
     152
     153/** @name Task handling.
     154 * @{ */
     155PTSTHGCMUTILSTASK TstHGCMUtilsTaskGetCurrent(PTSTHGCMUTILSCTX pCtx);
     156int TstHGCMUtilsTaskInit(PTSTHGCMUTILSTASK pTask);
     157void TstHGCMUtilsTaskDestroy(PTSTHGCMUTILSTASK pTask);
     158int TstHGCMUtilsTaskWait(PTSTHGCMUTILSTASK pTask, RTMSINTERVAL msTimeout);
     159bool TstHGCMUtilsTaskOk(PTSTHGCMUTILSTASK pTask);
     160bool TstHGCMUtilsTaskCompleted(PTSTHGCMUTILSTASK pTask);
     161void TstHGCMUtilsTaskSignal(PTSTHGCMUTILSTASK pTask, int rc);
     162/** @} */
     163
     164/** @name Threading.
     165 * @{ */
     166int TstHGCMUtilsGuestThreadStart(PTSTHGCMUTILSCTX pCtx, PFNTSTHGCMUTILSTHREAD pFnThread, void *pvUser);
     167int TstHGCMUtilsGuestThreadStop(PTSTHGCMUTILSCTX pCtx);
     168int TstHGCMUtilsHostThreadStart(PTSTHGCMUTILSCTX pCtx, PTSTHGCMUTILSHOSTCALLBACKS pCallbacks, void *pvUser);
     169int TstHGCMUtilsHostThreadStop(PTSTHGCMUTILSCTX pCtx);
     170/** @} */
     171
     172
     173/*********************************************************************************************************************************
    145174 * Context                                                                                                                       *
    146175 ********************************************************************************************************************************/
     
    324353 * @note    Runs in the host service thread.
    325354 */
    326 DECLCALLBACK(int) tstHGCMUtilsHostThreadWorker(RTTHREAD hThread, void *pvUser)
     355static DECLCALLBACK(int) tstHGCMUtilsHostThreadWorker(RTTHREAD hThread, void *pvUser)
    327356{
    328357    RT_NOREF(hThread);
     
    393422    return rc;
    394423}
     424
     425#endif /* IN_RING3 */
     426
    395427#endif /* !VBOX_INCLUDED_GuestHost_HGCMMockUtils_h */
    396428
  • trunk/src/VBox/HostServices/SharedClipboard/testcase/tstClipboardMockHGCM.cpp

    r97272 r97274  
    108108    /** Clipboard-specific task data. */
    109109    CLIPBOARDTESTTASK Task;
     110    struct
     111    {
     112        /** The VbglR3 Shared Clipboard context to work on. */
     113        VBGLR3SHCLCMDCTX CmdCtx;
     114    } Guest;
    110115} CLIPBOARDTESTCTX;
    111116
     
    460465    }
    461466
    462     PVBGLR3SHCLCMDCTX pCmdCtx = &pCtx->HGCM.Guest.CmdCtx;
     467    PVBGLR3SHCLCMDCTX pCmdCtx = &pCtx->Guest.CmdCtx;
    463468
    464469    /* Do random chunked reads. */
     
    513518    RTThreadSleep(1000); /* Fudge; wait until the host has prepared the data for the clipboard. */
    514519
    515     RT_ZERO(pCtx->Guest.CmdCtx);
    516     RTTEST_CHECK_RC_OK(g_hTest, VbglR3ClipboardConnectEx(&pCtx->Guest.CmdCtx, VBOX_SHCL_GF_0_CONTEXT_ID));
    517 
    518     RTThreadSleep(1000); /* Fudge; wait until the host has prepared the data for the clipboard. */
    519 
    520520    PCLIPBOARDTESTCTX  pTstCtx  = (PCLIPBOARDTESTCTX)pvCtx;
    521521    AssertPtr(pTstCtx);
     522
     523    RT_ZERO(pTstCtx->Guest.CmdCtx);
     524    RTTEST_CHECK_RC_OK(g_hTest, VbglR3ClipboardConnectEx(&pTstCtx->Guest.CmdCtx, VBOX_SHCL_GF_0_CONTEXT_ID));
     525
     526    RTThreadSleep(1000); /* Fudge; wait until the host has prepared the data for the clipboard. */
     527
    522528    PCLIPBOARDTESTTASK pTstTask = (PCLIPBOARDTESTTASK)pCtx->Task.pvUser;
    523529    AssertPtr(pTstTask);
     
    527533    TstHGCMUtilsTaskSignal(&pCtx->Task, VINF_SUCCESS);
    528534
    529     RTTEST_CHECK_RC_OK(g_hTest, VbglR3ClipboardDisconnectEx(&pCtx->Guest.CmdCtx));
     535    RTTEST_CHECK_RC_OK(g_hTest, VbglR3ClipboardDisconnectEx(&pTstCtx->Guest.CmdCtx));
    530536
    531537    return 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