Changeset 93401 in vbox for trunk/src/VBox/HostServices/SharedClipboard/testcase
- Timestamp:
- Jan 21, 2022 11:41:27 PM (3 years ago)
- Location:
- trunk/src/VBox/HostServices/SharedClipboard/testcase
- Files:
-
- 4 added
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/VBox/HostServices/SharedClipboard/testcase/Makefile.kmk
r93115 r93401 53 53 $(PATH_ROOT)/src/VBox/HostServices/common/message.cpp \ 54 54 tstClipboardServiceImpl.cpp 55 tstClipboardServiceImpl_SOURCES.win = \ 56 $(PATH_ROOT)/src/VBox/GuestHost/SharedClipboard/clipboard-win.cpp 55 57 tstClipboardServiceImpl_LIBS = $(LIB_RUNTIME) 56 58 tstClipboardServiceImpl_CLEAN = $(tstClipboardServiceImpl_0_OUTDIR)/tstClipboardServiceImpl.run -
trunk/src/VBox/HostServices/SharedClipboard/testcase/tstClipboardServiceImpl.cpp
r93115 r93401 19 19 20 20 #include <VBox/HostServices/VBoxClipboardSvc.h> 21 #ifdef RT_OS_WINDOWS 22 # include <VBox/GuestHost/SharedClipboard-win.h> 23 #endif 21 24 22 25 #include <iprt/assert.h> … … 68 71 69 72 RTTestISub("Setting up client ..."); 73 RTTestIDisableAssertions(); 74 70 75 rc = setupTable(&table); 71 76 RTTESTI_CHECK_MSG_RETV(RT_SUCCESS(rc), ("rc=%Rrc\n", rc)); … … 76 81 rc = shClSvcClientInit(&g_Client, 1 /* clientId */); 77 82 RTTESTI_CHECK_RC_OK(rc); 83 84 RTTestIRestoreAssertions(); 78 85 } 86 87 #ifdef RT_OS_WINDOWS 88 # include "VBoxOrgCfHtml1.h" /* From chrome 97.0.4692.71 */ 89 # include "VBoxOrgMimeHtml1.h" 90 91 static void testHtmlCf(void) 92 { 93 RTTestISub("CF_HTML"); 94 95 char *pszOutput = NULL; 96 uint32_t cbOutput = UINT32_MAX/2; 97 RTTestIDisableAssertions(); 98 RTTESTI_CHECK_RC(SharedClipboardWinConvertCFHTMLToMIME("", 0, &pszOutput, &cbOutput), VERR_INVALID_PARAMETER); 99 RTTestIRestoreAssertions(); 100 101 pszOutput = NULL; 102 cbOutput = UINT32_MAX/2; 103 RTTESTI_CHECK_RC(SharedClipboardWinConvertCFHTMLToMIME((char *)&g_abVBoxOrgCfHtml1[0], g_cbVBoxOrgCfHtml1, 104 &pszOutput, &cbOutput), VINF_SUCCESS); 105 RTTESTI_CHECK(cbOutput == g_cbVBoxOrgMimeHtml1); 106 RTTESTI_CHECK(memcmp(pszOutput, g_abVBoxOrgMimeHtml1, cbOutput) == 0); 107 RTMemFree(pszOutput); 108 109 110 static RTSTRTUPLE const s_aRoundTrips[] = 111 { 112 { RT_STR_TUPLE("") }, 113 { RT_STR_TUPLE("1") }, 114 { RT_STR_TUPLE("12") }, 115 { RT_STR_TUPLE("123") }, 116 { RT_STR_TUPLE("1234") }, 117 { RT_STR_TUPLE("12345") }, 118 { RT_STR_TUPLE("123456") }, 119 { RT_STR_TUPLE("1234567") }, 120 { RT_STR_TUPLE("12345678") }, 121 { RT_STR_TUPLE("123456789") }, 122 { RT_STR_TUPLE("1234567890") }, 123 { RT_STR_TUPLE("<h2>asdfkjhasdflhj</h2>") }, 124 { RT_STR_TUPLE("<h2>asdfkjhasdflhj</h2>\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0") }, 125 { (const char *)g_abVBoxOrgMimeHtml1, sizeof(g_abVBoxOrgMimeHtml1) }, 126 }; 127 128 for (size_t i = 0; i < RT_ELEMENTS(s_aRoundTrips); i++) 129 { 130 int rc; 131 char *pszCfHtml = NULL; 132 uint32_t cbCfHtml = UINT32_MAX/2; 133 rc = SharedClipboardWinConvertMIMEToCFHTML(s_aRoundTrips[i].psz, s_aRoundTrips[i].cch + 1, &pszCfHtml, &cbCfHtml); 134 if (rc == VINF_SUCCESS) 135 { 136 if (strlen(pszCfHtml) + 1 != cbCfHtml) 137 RTTestIFailed("#%u: SharedClipboardWinConvertMIMEToCFHTML(%s, %#zx,,) returned incorrect length: %#x, actual %#zx", 138 i, s_aRoundTrips[i].psz, s_aRoundTrips[i].cch, cbCfHtml, strlen(pszCfHtml) + 1); 139 140 char *pszHtml = NULL; 141 uint32_t cbHtml = UINT32_MAX/4; 142 rc = SharedClipboardWinConvertCFHTMLToMIME(pszCfHtml, (uint32_t)strlen(pszCfHtml), &pszHtml, &cbHtml); 143 if (rc == VINF_SUCCESS) 144 { 145 if (strlen(pszHtml) + 1 != cbHtml) 146 RTTestIFailed("#%u: SharedClipboardWinConvertCFHTMLToMIME(%s, %#zx,,) returned incorrect length: %#x, actual %#zx", 147 i, pszHtml, strlen(pszHtml), cbHtml, strlen(pszHtml) + 1); 148 if (strcmp(pszHtml, s_aRoundTrips[i].psz) != 0) 149 RTTestIFailed("#%u: roundtrip for '%s' LB %#zx failed, ended up with '%s'", 150 i, s_aRoundTrips[i].psz, s_aRoundTrips[i].cch, pszHtml); 151 RTMemFree(pszHtml); 152 } 153 else 154 RTTestIFailed("#%u: SharedClipboardWinConvertCFHTMLToMIME(%s, %#zx,,) returned %Rrc, expected VINF_SUCCESS", 155 i, pszCfHtml, strlen(pszCfHtml), rc); 156 RTMemFree(pszCfHtml); 157 } 158 else 159 RTTestIFailed("#%u: SharedClipboardWinConvertMIMEToCFHTML(%s, %#zx,,) returned %Rrc, expected VINF_SUCCESS", 160 i, s_aRoundTrips[i].psz, s_aRoundTrips[i].cch, rc); 161 } 162 } 163 164 #endif /* RT_OS_WINDOWS */ 165 79 166 80 167 int main(int argc, char *argv[]) … … 93 180 RTTestBanner(hTest); 94 181 95 /* Don't let assertions in the host service panic (core dump) the test cases. */96 RTAssertSetMayPanic(false);97 98 182 /* 99 183 * Run the tests. 100 184 */ 101 185 testAnnounceAndReadData(); 186 #ifdef RT_OS_WINDOWS 187 testHtmlCf(); 188 #endif 102 189 103 190 /*
Note:
See TracChangeset
for help on using the changeset viewer.