VirtualBox

Ignore:
Timestamp:
Feb 28, 2013 12:18:17 PM (12 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
84015
Message:

GuestCtrl: Infrastructure changes for handling and executing dedicated guest sessions and protocol versioning (untested, work in progress).

Location:
trunk/src/VBox
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox

    • Property svn:mergeinfo set to (toggle deleted branches)
      /branches/VBox-3.0/src/VBox58652,​70973
      /branches/VBox-3.2/src/VBox66309,​66318
      /branches/VBox-4.0/src/VBox70873
      /branches/VBox-4.1/src/VBox74233,​78414,​78691,​81841,​82127
      /branches/andy/guestctrl20/src/VBox78916,​78930
      /branches/dsen/gui/src/VBox79076-79078,​79089,​79109-79110,​79112-79113,​79127-79130,​79134,​79141,​79151,​79155,​79157-79159,​79193,​79197
      /branches/dsen/gui2/src/VBox79224,​79228,​79233,​79235,​79258,​79262-79263,​79273,​79341,​79345,​79354,​79357,​79387-79388,​79559-79569,​79572-79573,​79578,​79581-79582,​79590-79591,​79598-79599,​79602-79603,​79605-79606,​79632,​79635,​79637,​79644
      /branches/dsen/gui3/src/VBox79645-79692
  • trunk/src/VBox/HostServices/GuestControl/testcase/tstGuestControlSvc.cpp

    r36873 r44863  
    66
    77/*
    8  * Copyright (C) 2011 Oracle Corporation
     8 * Copyright (C) 2011-2013 Oracle Corporation
    99 *
    1010 * This file is part of VirtualBox Open Source Edition (OSE), as
     
    157157    static CMDHOST s_aCmdHostAll[] =
    158158    {
    159         /** No client connected, invalid command. */
    160         { 1024 /* Not existing command */, 0, 0, false, VERR_NOT_SUPPORTED },
    161         { -1 /* Invalid command */, 0, 0, false, VERR_NOT_SUPPORTED },
     159        #if 0
     160        /** No client connected. */
     161        { 1024 /* Not existing command */, 0, 0, false, VERR_NOT_FOUND },
     162        { -1 /* Invalid command */, 0, 0, false, VERR_NOT_FOUND },
    162163        { HOST_CANCEL_PENDING_WAITS, 1024, 0, false, VERR_NOT_FOUND },
    163164        { HOST_CANCEL_PENDING_WAITS, 0, &s_aParms[0], false, VERR_NOT_FOUND },
     
    166167        { HOST_CANCEL_PENDING_WAITS, 0, 0, false, VERR_NOT_FOUND },
    167168
    168         /** Client connected. */
    169         { 1024 /* Not existing command */, 0, 0, true, VERR_NOT_SUPPORTED },
    170         { -1 /* Invalid command */, 0, 0, true, VERR_NOT_SUPPORTED },
     169        /** Client connected, no parameters given. */
     170        { HOST_EXEC_SET_INPUT, 0 /* No parameters given */, 0, true, VERR_INVALID_PARAMETER },
     171        { 1024 /* Not existing command */, 0 /* No parameters given */, 0, true, VERR_INVALID_PARAMETER },
     172        { -1 /* Invalid command */, 0 /* No parameters given */, 0, true, VERR_INVALID_PARAMETER },
    171173
    172174        /** Client connected, valid parameters given. */
     
    174176        { HOST_CANCEL_PENDING_WAITS, 1024, &s_aParms[0], true, VINF_SUCCESS },
    175177        { HOST_CANCEL_PENDING_WAITS, 0, &s_aParms[0], true, VINF_SUCCESS},
     178        #endif
    176179
    177180        /** Client connected, invalid parameters given. */
    178         { HOST_CANCEL_PENDING_WAITS, 1024, 0, true, VERR_INVALID_POINTER },
    179         { HOST_CANCEL_PENDING_WAITS, 1, 0, true, VERR_INVALID_POINTER },
    180         { HOST_CANCEL_PENDING_WAITS, -1, 0, true, VERR_INVALID_POINTER },
     181        { HOST_EXEC_CMD, 1024, 0, true, VERR_INVALID_POINTER },
     182        { HOST_EXEC_CMD, 1, 0, true, VERR_INVALID_POINTER },
     183        { HOST_EXEC_CMD, -1, 0, true, VERR_INVALID_POINTER },
    181184
    182185        /** Client connected, parameters given. */
     
    184187        { HOST_EXEC_CMD, 1, &s_aParms[0], true, VINF_SUCCESS },
    185188        { HOST_EXEC_SET_INPUT, 1, &s_aParms[0], true, VINF_SUCCESS },
    186         { HOST_EXEC_GET_OUTPUT, 1, &s_aParms[0], true, VINF_SUCCESS }
     189        { HOST_EXEC_GET_OUTPUT, 1, &s_aParms[0], true, VINF_SUCCESS },
     190
     191        /** Client connected, unknown command + valid parameters given. */
     192        { -1, 1, &s_aParms[0], true, VINF_SUCCESS }
    187193    };
    188194
     
    203209        /* No commands from host yet. */
    204210        static VBOXHGCMSVCPARM s_aParmsGuest[8];
     211        s_aParmsGuest[0].setUInt32(0 /* Msg type */);
     212        s_aParmsGuest[1].setUInt32(0 /* Parameters */);
    205213        pTable->pfnCall(pTable->pvService, &callHandle, 1 /* Client ID */, NULL /* pvClient */,
    206                         GUEST_GET_HOST_MSG, 2, &s_aParmsGuest[0]);
     214                        GUEST_MSG_WAIT, 2, &s_aParmsGuest[0]);
    207215        RTTEST_CHECK_RC_RET(g_hTest, callHandle.rc, VINF_SUCCESS, callHandle.rc);
    208216
     
    211219        s_aParmsHost[0].setUInt32(1000 /* Context ID */);
    212220        s_aParmsHost[1].setString("foo.bar");
    213 
    214         rc = pTable->pfnHostCall(pTable->pvService, HOST_EXEC_CMD, 2, &s_aParmsHost[0]);
     221        s_aParmsHost[2].setString("baz");
     222
     223        rc = pTable->pfnHostCall(pTable->pvService, HOST_EXEC_CMD, 3, &s_aParmsHost[0]);
    215224        RTTEST_CHECK_RC_RET(g_hTest, rc, VINF_SUCCESS, rc);
    216 
    217         /* Client: Get host command with a invalid parameter count specified. */
    218         pTable->pfnCall(pTable->pvService, &callHandle, 1 /* Client ID */, NULL /* pvClient */,
    219                         GUEST_GET_HOST_MSG, 1024, &s_aParmsGuest[0]);
    220         RTTEST_CHECK_RC_RET(g_hTest, callHandle.rc, VERR_INVALID_PARAMETER, callHandle.rc);
    221         pTable->pfnCall(pTable->pvService, &callHandle, 1 /* Client ID */, NULL /* pvClient */,
    222                         GUEST_GET_HOST_MSG, -1, &s_aParmsGuest[0]);
    223         RTTEST_CHECK_RC_RET(g_hTest, callHandle.rc, VERR_INVALID_PARAMETER, callHandle.rc);
    224         pTable->pfnCall(pTable->pvService, &callHandle, 1 /* Client ID */, NULL /* pvClient */,
    225                         GUEST_GET_HOST_MSG, -1, NULL);
    226         RTTEST_CHECK_RC_RET(g_hTest, callHandle.rc, VERR_INVALID_PARAMETER, callHandle.rc);
    227         pTable->pfnCall(pTable->pvService, &callHandle, 1 /* Client ID */, NULL /* pvClient */,
    228                         GUEST_GET_HOST_MSG, 16, NULL);
    229         RTTEST_CHECK_RC_RET(g_hTest, callHandle.rc, VERR_INVALID_PARAMETER, callHandle.rc);
    230 
    231         /* Client: Get host command with a too small HGCM array. */
    232         pTable->pfnCall(pTable->pvService, &callHandle, 1 /* Client ID */, NULL /* pvClient */,
    233                         GUEST_GET_HOST_MSG, 0, &s_aParmsGuest[0]);
    234         RTTEST_CHECK_RC_RET(g_hTest, callHandle.rc, VERR_TOO_MUCH_DATA, callHandle.rc);
    235         pTable->pfnCall(pTable->pvService, &callHandle, 1 /* Client ID */, NULL /* pvClient */,
    236                         GUEST_GET_HOST_MSG, 1, &s_aParmsGuest[0]);
    237         RTTEST_CHECK_RC_RET(g_hTest, callHandle.rc, VERR_TOO_MUCH_DATA, callHandle.rc);
    238 
    239         /* Client: Get host command without an allocated buffer. */
    240         pTable->pfnCall(pTable->pvService, &callHandle, 1 /* Client ID */, NULL /* pvClient */,
    241                         GUEST_GET_HOST_MSG, 2, &s_aParmsGuest[0]);
    242         RTTEST_CHECK_RC_RET(g_hTest, callHandle.rc, VERR_BUFFER_OVERFLOW, callHandle.rc);
    243 
    244         /* Client: Get host command, this time with a valid buffer. */
    245         char szBuf[16];
    246         s_aParmsGuest[1].setPointer(szBuf, sizeof(szBuf));
    247         pTable->pfnCall(pTable->pvService, &callHandle, 1 /* Client ID */, NULL /* pvClient */,
    248                         GUEST_GET_HOST_MSG, 2, &s_aParmsGuest[0]);
    249         RTTEST_CHECK_RC_RET(g_hTest, callHandle.rc, VINF_SUCCESS, callHandle.rc);
    250 
    251         /* Client: Now make sure there's no host message left anymore. */
    252         pTable->pfnCall(pTable->pvService, &callHandle, 1 /* Client ID */, NULL /* pvClient */,
    253                         GUEST_GET_HOST_MSG, 2, &s_aParmsGuest[0]);
    254         RTTEST_CHECK_RC_RET(g_hTest, callHandle.rc, VINF_SUCCESS, callHandle.rc);
    255225
    256226        /* Client: Disconnect again. */
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