VirtualBox

Ignore:
Timestamp:
Dec 5, 2023 9:42:18 AM (14 months ago)
Author:
vboxsync
Message:

Shared Clipboard/testcases: Re-enabled (+ adapted) formerly disabled testcases of tstClipboardGH-X11. bugref:10384

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/GuestHost/SharedClipboard/testcase/tstClipboardGH-X11.cpp

    r100685 r102466  
    9797static SHCLEVENTSOURCE g_EventSource;
    9898
    99 #if 0
    10099/* Set empty data in the simulated VBox clipboard. */
    101100static void tstClipEmptyVBox(PSHCLX11CTX pCtx, int retval)
     
    130129    return VINF_SUCCESS;
    131130}
    132 #endif
    133131
    134132Display *XtDisplay(Widget w) { NOREF(w); return (Display *) 0xffff; }
     
    247245}
    248246
    249 #if 0
    250247static void tstClipInvalidateFormats(void)
    251248{
    252249    g_tst_uX11Formats = ~0;
    253250}
    254 #endif
    255 
     251
     252static RTMSINTERVAL g_msTimeout = RT_MS_5SEC;
    256253/* Does our clipboard code currently own the selection? */
    257254static bool g_tst_fOwnsSel = false;
     
    279276}
    280277
    281 #if 0
    282278void XtDisownSelection(Widget widget, Atom selection, Time time)
    283279{
     
    314310    return true;
    315311}
    316 #endif
    317312
    318313/* Set the current X selection data */
     
    338333}
    339334
    340 #if 0
    341335/* Configure if and how the X11 TARGETS clipboard target will fail. */
    342336static void tstClipSetTargetsFailure(void)
     
    344338    g_tst_cTargets = 0;
    345339}
    346 #endif
    347340
    348341char *XtMalloc(Cardinal size)
     
    394387static int g_tst_rcCompleted = VINF_SUCCESS;
    395388static int g_tst_cbCompleted = 0;
    396 //static SHCLX11REQUEST *g_tst_pCompletedReq = NULL;
    397389static char g_tst_abCompletedBuf[TESTCASE_MAX_BUF_SIZE];
    398390
     
    433425        g_tst_rcCompleted = VERR_BUFFER_OVERFLOW;
    434426    g_tst_cbCompleted = cb;
    435     //g_tst_pCompletedReq = pData->pReq;
    436427
    437428    return VINF_SUCCESS;
     
    456447}
    457448
    458 #if 0
    459449static bool tstClipTextFormatConversion(PSHCLX11CTX pCtx)
    460450{
     
    474464    return fSuccess;
    475465}
    476 #endif
    477 
    478 /*
    479 static void tstClipGetCompletedRequest(int *prc, char ** ppc, uint32_t *pcb, SHCLX11REQREAD **ppReq)
    480 {
    481     *prc = g_tst_rcCompleted;
    482     *ppc = g_tst_abCompletedBuf;
    483     *pcb = g_tst_cbCompleted;
    484     *ppReq = g_tst_pCompletedReq;
    485 }
    486 */
    487466
    488467static void tstStringFromX11(RTTEST hTest, PSHCLX11CTX pCtx,
     
    499478        uint32_t cbActual = 0;
    500479        uint8_t  abBuf[TESTCASE_MAX_BUF_SIZE];
    501         int rc = ShClX11ReadDataFromX11(pCtx, &g_EventSource, RT_MS_30SEC, VBOX_SHCL_FMT_UNICODETEXT, abBuf, sizeof(abBuf), &cbActual);
     480        int rc = ShClX11ReadDataFromX11(pCtx, &g_EventSource, g_msTimeout, VBOX_SHCL_FMT_UNICODETEXT, abBuf, sizeof(abBuf), &cbActual);
    502481        if (rc != rcExp)
    503482            RTTestFailed(hTest, "Wrong return code, expected %Rrc, got %Rrc\n", rcExp, rc);
     
    534513}
    535514
    536 #if 0
    537515static void tstLatin1FromX11(RTTEST hTest, PSHCLX11CTX pCtx,
    538516                             const char *pcszExp, int rcExp)
     
    545523    else
    546524    {
    547         char *pc;
    548         SHCLX11REQREAD *pReq = (SHCLX11REQREAD *)&pReq, *pReqRet = NULL;
    549         ShClX11ReadDataFromX11Async(pCtx, VBOX_SHCL_FMT_UNICODETEXT, pReq);
    550         int rc = VINF_SUCCESS;
    551525        uint32_t cbActual = 0;
    552         tstClipGetCompletedRequest(&rc, &pc, &cbActual, &pReqRet);
     526        uint8_t  abBuf[TESTCASE_MAX_BUF_SIZE];
     527        int rc = ShClX11ReadDataFromX11(pCtx, &g_EventSource, g_msTimeout, VBOX_SHCL_FMT_UNICODETEXT, abBuf, sizeof(abBuf), &cbActual);
    553528        if (rc != rcExp)
    554             RTTestFailed(hTest, "Wrong return code, expected %Rrc, got %Rrc\n",
    555                          rcExp, rc);
    556         else if (pReqRet != pReq)
    557             RTTestFailed(hTest, "Wrong returned request data, expected %p, got %p\n",
    558                          pReq, pReqRet);
     529            RTTestFailed(hTest, "Wrong return code, expected %Rrc, got %Rrc\n", rcExp, rc);
    559530        else if (RT_FAILURE(rcExp))
    560531            retval = true;
     
    570541            {
    571542                RTTestFailed(hTest, "Returned string is the wrong size, string \"%.*ls\", size %u, expected \"%s\", size %u\n",
    572                              RT_MIN(TESTCASE_MAX_BUF_SIZE, cbActual), pc, cbActual,
     543                             RT_MIN(TESTCASE_MAX_BUF_SIZE, cbActual), abBuf, cbActual,
    573544                             pcszExp, cbExp);
    574545            }
    575546            else
    576547            {
    577                 if (memcmp(pc, wcExp, cbExp) == 0)
     548                if (memcmp(abBuf, wcExp, cbExp) == 0)
    578549                    retval = true;
    579550                else
    580551                    RTTestFailed(hTest, "Returned string \"%.*ls\" does not match expected string \"%s\"\n",
    581                                  TESTCASE_MAX_BUF_SIZE, pc, pcszExp);
     552                                 TESTCASE_MAX_BUF_SIZE, abBuf, pcszExp);
    582553            }
    583554        }
     
    622593static void tstNoX11(PSHCLX11CTX pCtx, const char *pcszTestCtx)
    623594{
    624     SHCLX11REQREAD *pReq = (SHCLX11REQREAD *)&pReq;
    625     int rc = ShClX11ReadDataFromX11Async(pCtx, VBOX_SHCL_FMT_UNICODETEXT, pReq);
     595    uint32_t cbActual = 0;
     596    uint8_t  abBuf[TESTCASE_MAX_BUF_SIZE];
     597    int rc = ShClX11ReadDataFromX11(pCtx, &g_EventSource, g_msTimeout, VBOX_SHCL_FMT_UNICODETEXT, abBuf, sizeof(abBuf), &cbActual);
    626598    RTTESTI_CHECK_MSG(rc == VERR_NO_DATA, ("context: %s\n", pcszTestCtx));
    627599}
     
    658630    else
    659631    {
    660         char *pc;
    661         SHCLX11REQREAD *pReq = (SHCLX11REQREAD *)&pReq, *pReqRet = NULL;
    662         ShClX11ReadDataFromX11Async(pCtx, 0xF000 /* vboxFormat */, pReq);  /* Bad format. */
    663         int rc = VINF_SUCCESS;
    664632        uint32_t cbActual = 0;
    665         tstClipGetCompletedRequest(&rc, &pc, &cbActual, &pReqRet);
     633        uint8_t  abBuf[TESTCASE_MAX_BUF_SIZE];
     634        int rc = ShClX11ReadDataFromX11(pCtx, &g_EventSource, g_msTimeout, 0xF000 /* vboxFormat */, abBuf, sizeof(abBuf), &cbActual);
    666635        if (rc != VERR_NOT_IMPLEMENTED)
    667636            RTTestFailed(hTest, "Wrong return code, expected VERR_NOT_IMPLEMENTED, got %Rrc\n",
     
    673642    }
    674643}
    675 #endif
    676644
    677645int main()
     
    699667    AssertRCReturn(rc, RTEXITCODE_FAILURE);
    700668
     669    uint32_t cbActual = 0;
     670    uint8_t  abBuf[TESTCASE_MAX_BUF_SIZE];
     671
    701672    RTTESTI_CHECK_RC_OK(ShClEventSourceCreate(&g_EventSource, 0 /* ID */));
    702673
     
    707678    tstStringFromX11(hTest, &X11Ctx, "hello world", VINF_SUCCESS);
    708679
    709 #if 0
    710680    /* With an embedded carriage return */
    711681    tstClipSetSelectionValues("text/plain;charset=UTF-8", XA_STRING,
     
    772742     * Timeout from X11
    773743     */
    774     RTTestSub(hTest, "X11 timeout");
     744    RTTestSub(hTest, "X11 conversion failure (timeout)");
    775745    tstClipSetSelectionValues("UTF8_STRING", XT_CONVERT_FAIL, NULL,0, 8);
    776746    tstStringFromX11(hTest, &X11Ctx, "", VERR_NO_DATA);
     
    780750     */
    781751    RTTestSub(hTest, "a data request from an empty X11 clipboard");
    782     tstClipSetSelectionValues("UTF8_STRING", XA_STRING, NULL,
    783                               0, 8);
    784     ShClX11ReadDataFromX11Async(&X11Ctx, VBOX_SHCL_FMT_UNICODETEXT, pReq);
    785     tstClipGetCompletedRequest(&rc, &pc, &cbActual, &pReqRet);
     752    tstClipSetSelectionValues("UTF8_STRING", XA_STRING, NULL, 0, 8);
     753    rc = ShClX11ReadDataFromX11(&X11Ctx, &g_EventSource, g_msTimeout, VBOX_SHCL_FMT_UNICODETEXT, abBuf, sizeof(abBuf), &cbActual);
    786754    RTTEST_CHECK_MSG(hTest, rc == VERR_NO_DATA,
    787755                     (hTest, "Returned %Rrc instead of VERR_NO_DATA\n",
    788756                      rc));
    789     RTTEST_CHECK_MSG(hTest, pReqRet == pReq,
    790                      (hTest, "Wrong returned request data, expected %p, got %p\n",
    791                      pReq, pReqRet));
    792757
    793758    /*
     
    806771    /* Testing for 0xffff will go into handling VBOX_SHCL_FMT_UNICODETEXT, where we don't have
    807772     * have any data at the moment so far, so this will return VERR_NO_DATA. */
    808     ShClX11ReadDataFromX11Async(&X11Ctx, 0xffff /* vboxFormat */, pReq);
    809     tstClipGetCompletedRequest(&rc, &pc, &cbActual, &pReqRet);
     773    rc = ShClX11ReadDataFromX11(&X11Ctx, &g_EventSource, g_msTimeout, 0xffff /* vboxFormat */, abBuf, sizeof(abBuf), &cbActual);
    810774    RTTEST_CHECK_MSG(hTest, rc == VERR_NO_DATA,
    811775                     (hTest, "Returned %Rrc instead of VERR_NO_DATA\n",
    812776                      rc));
    813     RTTEST_CHECK_MSG(hTest, pReqRet == pReq,
    814                      (hTest, "Wrong returned request data, expected %p, got %p\n",
    815                      pReq, pReqRet));
    816 
    817777    /*
    818778     * Targets failure from X11
     
    938898                        sizeof("hello world") * 2);
    939899    tstNoSelectionOwnership(&X11Ctx, "reading from VBox, headless clipboard");
    940 #endif
     900
    941901    ShClX11Destroy(&X11Ctx);
    942902    ShClEventSourceDestroy(&g_EventSource);
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