Changeset 102466 in vbox for trunk/src/VBox/GuestHost/SharedClipboard
- Timestamp:
- Dec 5, 2023 9:42:18 AM (14 months ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/GuestHost/SharedClipboard/testcase/tstClipboardGH-X11.cpp
r100685 r102466 97 97 static SHCLEVENTSOURCE g_EventSource; 98 98 99 #if 0100 99 /* Set empty data in the simulated VBox clipboard. */ 101 100 static void tstClipEmptyVBox(PSHCLX11CTX pCtx, int retval) … … 130 129 return VINF_SUCCESS; 131 130 } 132 #endif133 131 134 132 Display *XtDisplay(Widget w) { NOREF(w); return (Display *) 0xffff; } … … 247 245 } 248 246 249 #if 0250 247 static void tstClipInvalidateFormats(void) 251 248 { 252 249 g_tst_uX11Formats = ~0; 253 250 } 254 #endif 255 251 252 static RTMSINTERVAL g_msTimeout = RT_MS_5SEC; 256 253 /* Does our clipboard code currently own the selection? */ 257 254 static bool g_tst_fOwnsSel = false; … … 279 276 } 280 277 281 #if 0282 278 void XtDisownSelection(Widget widget, Atom selection, Time time) 283 279 { … … 314 310 return true; 315 311 } 316 #endif317 312 318 313 /* Set the current X selection data */ … … 338 333 } 339 334 340 #if 0341 335 /* Configure if and how the X11 TARGETS clipboard target will fail. */ 342 336 static void tstClipSetTargetsFailure(void) … … 344 338 g_tst_cTargets = 0; 345 339 } 346 #endif347 340 348 341 char *XtMalloc(Cardinal size) … … 394 387 static int g_tst_rcCompleted = VINF_SUCCESS; 395 388 static int g_tst_cbCompleted = 0; 396 //static SHCLX11REQUEST *g_tst_pCompletedReq = NULL;397 389 static char g_tst_abCompletedBuf[TESTCASE_MAX_BUF_SIZE]; 398 390 … … 433 425 g_tst_rcCompleted = VERR_BUFFER_OVERFLOW; 434 426 g_tst_cbCompleted = cb; 435 //g_tst_pCompletedReq = pData->pReq;436 427 437 428 return VINF_SUCCESS; … … 456 447 } 457 448 458 #if 0459 449 static bool tstClipTextFormatConversion(PSHCLX11CTX pCtx) 460 450 { … … 474 464 return fSuccess; 475 465 } 476 #endif477 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 */487 466 488 467 static void tstStringFromX11(RTTEST hTest, PSHCLX11CTX pCtx, … … 499 478 uint32_t cbActual = 0; 500 479 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); 502 481 if (rc != rcExp) 503 482 RTTestFailed(hTest, "Wrong return code, expected %Rrc, got %Rrc\n", rcExp, rc); … … 534 513 } 535 514 536 #if 0537 515 static void tstLatin1FromX11(RTTEST hTest, PSHCLX11CTX pCtx, 538 516 const char *pcszExp, int rcExp) … … 545 523 else 546 524 { 547 char *pc;548 SHCLX11REQREAD *pReq = (SHCLX11REQREAD *)&pReq, *pReqRet = NULL;549 ShClX11ReadDataFromX11Async(pCtx, VBOX_SHCL_FMT_UNICODETEXT, pReq);550 int rc = VINF_SUCCESS;551 525 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); 553 528 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); 559 530 else if (RT_FAILURE(rcExp)) 560 531 retval = true; … … 570 541 { 571 542 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, 573 544 pcszExp, cbExp); 574 545 } 575 546 else 576 547 { 577 if (memcmp( pc, wcExp, cbExp) == 0)548 if (memcmp(abBuf, wcExp, cbExp) == 0) 578 549 retval = true; 579 550 else 580 551 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); 582 553 } 583 554 } … … 622 593 static void tstNoX11(PSHCLX11CTX pCtx, const char *pcszTestCtx) 623 594 { 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); 626 598 RTTESTI_CHECK_MSG(rc == VERR_NO_DATA, ("context: %s\n", pcszTestCtx)); 627 599 } … … 658 630 else 659 631 { 660 char *pc;661 SHCLX11REQREAD *pReq = (SHCLX11REQREAD *)&pReq, *pReqRet = NULL;662 ShClX11ReadDataFromX11Async(pCtx, 0xF000 /* vboxFormat */, pReq); /* Bad format. */663 int rc = VINF_SUCCESS;664 632 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); 666 635 if (rc != VERR_NOT_IMPLEMENTED) 667 636 RTTestFailed(hTest, "Wrong return code, expected VERR_NOT_IMPLEMENTED, got %Rrc\n", … … 673 642 } 674 643 } 675 #endif676 644 677 645 int main() … … 699 667 AssertRCReturn(rc, RTEXITCODE_FAILURE); 700 668 669 uint32_t cbActual = 0; 670 uint8_t abBuf[TESTCASE_MAX_BUF_SIZE]; 671 701 672 RTTESTI_CHECK_RC_OK(ShClEventSourceCreate(&g_EventSource, 0 /* ID */)); 702 673 … … 707 678 tstStringFromX11(hTest, &X11Ctx, "hello world", VINF_SUCCESS); 708 679 709 #if 0710 680 /* With an embedded carriage return */ 711 681 tstClipSetSelectionValues("text/plain;charset=UTF-8", XA_STRING, … … 772 742 * Timeout from X11 773 743 */ 774 RTTestSub(hTest, "X11 timeout");744 RTTestSub(hTest, "X11 conversion failure (timeout)"); 775 745 tstClipSetSelectionValues("UTF8_STRING", XT_CONVERT_FAIL, NULL,0, 8); 776 746 tstStringFromX11(hTest, &X11Ctx, "", VERR_NO_DATA); … … 780 750 */ 781 751 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); 786 754 RTTEST_CHECK_MSG(hTest, rc == VERR_NO_DATA, 787 755 (hTest, "Returned %Rrc instead of VERR_NO_DATA\n", 788 756 rc)); 789 RTTEST_CHECK_MSG(hTest, pReqRet == pReq,790 (hTest, "Wrong returned request data, expected %p, got %p\n",791 pReq, pReqRet));792 757 793 758 /* … … 806 771 /* Testing for 0xffff will go into handling VBOX_SHCL_FMT_UNICODETEXT, where we don't have 807 772 * 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); 810 774 RTTEST_CHECK_MSG(hTest, rc == VERR_NO_DATA, 811 775 (hTest, "Returned %Rrc instead of VERR_NO_DATA\n", 812 776 rc)); 813 RTTEST_CHECK_MSG(hTest, pReqRet == pReq,814 (hTest, "Wrong returned request data, expected %p, got %p\n",815 pReq, pReqRet));816 817 777 /* 818 778 * Targets failure from X11 … … 938 898 sizeof("hello world") * 2); 939 899 tstNoSelectionOwnership(&X11Ctx, "reading from VBox, headless clipboard"); 940 #endif 900 941 901 ShClX11Destroy(&X11Ctx); 942 902 ShClEventSourceDestroy(&g_EventSource);
Note:
See TracChangeset
for help on using the changeset viewer.