Changeset 100560 in vbox for trunk/src/VBox/HostServices/SharedClipboard
- Timestamp:
- Jul 13, 2023 9:31:56 AM (20 months ago)
- svn:sync-xref-src-repo-rev:
- 158386
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/HostServices/SharedClipboard/testcase/tstClipboardTransfers.cpp
r100393 r100560 243 243 RTCList<TESTTRANSFERROOTENTRY> &lstRoots, const char *pszObjPath, int rcExpected) 244 244 { 245 RT_NOREF(hTest);246 247 245 PSHCLTRANSFER pTransfer; 248 246 int rc = ShClTransferCreate(SHCLTRANSFERDIR_TO_REMOTE, SHCLSOURCE_LOCAL, NULL /* Callbacks */, &pTransfer); … … 297 295 } 298 296 299 static void testTransferBasics(RTTEST hTest) 300 { 301 RT_NOREF(hTest); 302 297 static void testEvents(void) 298 { 299 RTTestISub("Testing events"); 300 301 SHCLEVENTSOURCE Source; 302 RTTESTI_CHECK_RC_OK(ShClEventSourceCreate(&Source, 0)); 303 RTTESTI_CHECK(ShClEventSourceGetLast(&Source) == NULL); /* Should be empty. */ 304 RTTESTI_CHECK_RC_OK(ShClEventSourceDestroy(&Source)); 305 RTTESTI_CHECK_RC_OK(ShClEventSourceDestroy(&Source)); /* Destroying a second time, intentional. */ 306 307 RTTESTI_CHECK_RC_OK(ShClEventSourceCreate(&Source, 42)); 308 PSHCLEVENT pEvent; 309 RTTESTI_CHECK_RC_OK(ShClEventSourceGenerateAndRegisterEvent(&Source, &pEvent)); 310 ShClEventSourceReset(&Source); 311 RTTESTI_CHECK(ShClEventSourceGetLast(&Source) != NULL); /* Event still in, as it holds a reference. */ 312 RTTESTI_CHECK(ShClEventRelease(pEvent) == 0); 313 RTTESTI_CHECK(ShClEventRelease(pEvent) == UINT32_MAX); /* Ref count already was 0, so returns UINT32_MAX. */ 314 RTTESTI_CHECK(ShClEventRelease(pEvent) == UINT32_MAX); /* Again. */ 315 RTTESTI_CHECK(ShClEventSourceGetLast(&Source) == NULL); /* Now it should be empty. */ 316 RTTESTI_CHECK_RC_OK(ShClEventSourceDestroy(&Source)); 317 318 /* Test delayed destruction of the event by retaining it. */ 319 RTTESTI_CHECK_RC_OK(ShClEventSourceCreate(&Source, 42)); 320 RTTESTI_CHECK_RC_OK(ShClEventSourceGenerateAndRegisterEvent(&Source, &pEvent)); 321 RTTESTI_CHECK_RC_OK(ShClEventRetain(pEvent)); 322 RTTESTI_CHECK(ShClEventGetRefs(pEvent) == 2); 323 RTTESTI_CHECK_RC_OK(ShClEventSourceDestroy(&Source)); 324 RTTESTI_CHECK(ShClEventGetRefs(pEvent) == 2); /* Make sure the ref count didn't drop due to ShClEventSourceDestroy(). */ 325 RTTESTI_CHECK(ShClEventRelease(pEvent) == 1); 326 RTTESTI_CHECK(ShClEventGetRefs(pEvent) == 1); 327 RTTESTI_CHECK(ShClEventRelease(pEvent) == 0); /* Destroys event, as ref count is 0. */ 328 RTTESTI_CHECK(ShClEventRelease(pEvent) == UINT32_MAX); 329 RTTESTI_CHECK_RC_OK(ShClEventSourceDestroy(&Source)); /* Try to destruct again. */ 330 } 331 332 static void testTransferBasics(void) 333 { 303 334 RTTestISub("Testing transfer basics"); 304 335 305 SHCLEVENTSOURCE Source;306 int rc = ShClEventSourceCreate(&Source, 0);307 RTTESTI_CHECK_RC_OK(rc);308 rc = ShClEventSourceDestroy(&Source);309 RTTESTI_CHECK_RC_OK(rc);310 336 PSHCLTRANSFER pTransfer; 311 rc = ShClTransferCreate(SHCLTRANSFERDIR_TO_REMOTE, SHCLSOURCE_LOCAL, NULL /* Callbacks */, &pTransfer);337 int rc = ShClTransferCreate(SHCLTRANSFERDIR_TO_REMOTE, SHCLSOURCE_LOCAL, NULL /* Callbacks */, &pTransfer); 312 338 RTTESTI_CHECK_RC_OK(rc); 313 339 rc = ShClTransferDestroy(pTransfer); … … 400 426 RTTestBanner(hTest); 401 427 402 testTransferBasics(hTest); 428 /* For negative stuff that may assert: */ 429 bool const fMayPanic = RTAssertSetMayPanic(false); 430 bool const fQuiet = RTAssertSetQuiet(true); 431 432 testEvents(); 433 testTransferBasics(); 403 434 testTransferRootsSet(hTest); 404 435 testTransferObjOpen(hTest); … … 406 437 int rc = testRemoveTempDir(hTest); 407 438 RTTESTI_CHECK_RC(rc, VINF_SUCCESS); 439 440 RTAssertSetMayPanic(fMayPanic); 441 RTAssertSetQuiet(fQuiet); 408 442 409 443 /*
Note:
See TracChangeset
for help on using the changeset viewer.