diff options
| author | Sean Hall <r.sean.hall@gmail.com> | 2022-05-16 16:07:43 -0500 |
|---|---|---|
| committer | Sean Hall <r.sean.hall@gmail.com> | 2022-05-17 22:54:13 -0500 |
| commit | 46fb0597d4d6192833ddcf836f4bcf6295ef0aaf (patch) | |
| tree | bfe188365bb37b298c42238d39568ebfc8809dcb /src/libs | |
| parent | 0ea53e27361cbfe664df98d717e55005f329aff1 (diff) | |
| download | wix-46fb0597d4d6192833ddcf836f4bcf6295ef0aaf.tar.gz wix-46fb0597d4d6192833ddcf836f4bcf6295ef0aaf.tar.bz2 wix-46fb0597d4d6192833ddcf836f4bcf6295ef0aaf.zip | |
Keep track of when parts of verutil/WixVersions are missing.
Return null when WixVersion.TryParse returns false.
6776
Diffstat (limited to 'src/libs')
| -rw-r--r-- | src/libs/dutil/WixToolset.DUtil/inc/verutil.h | 4 | ||||
| -rw-r--r-- | src/libs/dutil/WixToolset.DUtil/verutil.cpp | 13 | ||||
| -rw-r--r-- | src/libs/dutil/test/DUtilUnitTest/VerUtilTests.cpp | 168 |
3 files changed, 185 insertions, 0 deletions
diff --git a/src/libs/dutil/WixToolset.DUtil/inc/verutil.h b/src/libs/dutil/WixToolset.DUtil/inc/verutil.h index 4fdaa522..cab18be7 100644 --- a/src/libs/dutil/WixToolset.DUtil/inc/verutil.h +++ b/src/libs/dutil/WixToolset.DUtil/inc/verutil.h | |||
| @@ -28,6 +28,10 @@ typedef struct _VERUTIL_VERSION | |||
| 28 | VERUTIL_VERSION_RELEASE_LABEL* rgReleaseLabels; | 28 | VERUTIL_VERSION_RELEASE_LABEL* rgReleaseLabels; |
| 29 | SIZE_T cchMetadataOffset; | 29 | SIZE_T cchMetadataOffset; |
| 30 | BOOL fInvalid; | 30 | BOOL fInvalid; |
| 31 | BOOL fHasMajor; | ||
| 32 | BOOL fHasMinor; | ||
| 33 | BOOL fHasPatch; | ||
| 34 | BOOL fHasRevision; | ||
| 31 | } VERUTIL_VERSION; | 35 | } VERUTIL_VERSION; |
| 32 | 36 | ||
| 33 | /******************************************************************* | 37 | /******************************************************************* |
diff --git a/src/libs/dutil/WixToolset.DUtil/verutil.cpp b/src/libs/dutil/WixToolset.DUtil/verutil.cpp index 30b979b1..276441b5 100644 --- a/src/libs/dutil/WixToolset.DUtil/verutil.cpp +++ b/src/libs/dutil/WixToolset.DUtil/verutil.cpp | |||
| @@ -196,9 +196,13 @@ DAPI_(HRESULT) VerCopyVersion( | |||
| 196 | 196 | ||
| 197 | pCopy->chPrefix = pSource->chPrefix; | 197 | pCopy->chPrefix = pSource->chPrefix; |
| 198 | pCopy->dwMajor = pSource->dwMajor; | 198 | pCopy->dwMajor = pSource->dwMajor; |
| 199 | pCopy->fHasMajor = pSource->fHasMajor; | ||
| 199 | pCopy->dwMinor = pSource->dwMinor; | 200 | pCopy->dwMinor = pSource->dwMinor; |
| 201 | pCopy->fHasMinor = pSource->fHasMinor; | ||
| 200 | pCopy->dwPatch = pSource->dwPatch; | 202 | pCopy->dwPatch = pSource->dwPatch; |
| 203 | pCopy->fHasPatch = pSource->fHasPatch; | ||
| 201 | pCopy->dwRevision = pSource->dwRevision; | 204 | pCopy->dwRevision = pSource->dwRevision; |
| 205 | pCopy->fHasRevision = pSource->fHasRevision; | ||
| 202 | 206 | ||
| 203 | if (pSource->cReleaseLabels) | 207 | if (pSource->cReleaseLabels) |
| 204 | { | 208 | { |
| @@ -370,15 +374,19 @@ DAPI_(HRESULT) VerParseVersion( | |||
| 370 | { | 374 | { |
| 371 | case 0: | 375 | case 0: |
| 372 | pVersion->dwMajor = uPart; | 376 | pVersion->dwMajor = uPart; |
| 377 | pVersion->fHasMajor = TRUE; | ||
| 373 | break; | 378 | break; |
| 374 | case 1: | 379 | case 1: |
| 375 | pVersion->dwMinor = uPart; | 380 | pVersion->dwMinor = uPart; |
| 381 | pVersion->fHasMinor = TRUE; | ||
| 376 | break; | 382 | break; |
| 377 | case 2: | 383 | case 2: |
| 378 | pVersion->dwPatch = uPart; | 384 | pVersion->dwPatch = uPart; |
| 385 | pVersion->fHasPatch = TRUE; | ||
| 379 | break; | 386 | break; |
| 380 | case 3: | 387 | case 3: |
| 381 | pVersion->dwRevision = uPart; | 388 | pVersion->dwRevision = uPart; |
| 389 | pVersion->fHasRevision = TRUE; | ||
| 382 | break; | 390 | break; |
| 383 | } | 391 | } |
| 384 | 392 | ||
| @@ -549,6 +557,11 @@ DAPI_(HRESULT) VerVersionFromQword( | |||
| 549 | pVersion->dwPatch = (WORD)(qwVersion >> 16 & 0xffff); | 557 | pVersion->dwPatch = (WORD)(qwVersion >> 16 & 0xffff); |
| 550 | pVersion->dwRevision = (WORD)(qwVersion & 0xffff); | 558 | pVersion->dwRevision = (WORD)(qwVersion & 0xffff); |
| 551 | 559 | ||
| 560 | pVersion->fHasMajor = TRUE; | ||
| 561 | pVersion->fHasMinor = TRUE; | ||
| 562 | pVersion->fHasPatch = TRUE; | ||
| 563 | pVersion->fHasRevision = TRUE; | ||
| 564 | |||
| 552 | hr = StrAllocFormatted(&pVersion->sczVersion, L"%lu.%lu.%lu.%lu", pVersion->dwMajor, pVersion->dwMinor, pVersion->dwPatch, pVersion->dwRevision); | 565 | hr = StrAllocFormatted(&pVersion->sczVersion, L"%lu.%lu.%lu.%lu", pVersion->dwMajor, pVersion->dwMinor, pVersion->dwPatch, pVersion->dwRevision); |
| 553 | ExitOnFailure(hr, "Failed to allocate and format the version string."); | 566 | ExitOnFailure(hr, "Failed to allocate and format the version string."); |
| 554 | 567 | ||
diff --git a/src/libs/dutil/test/DUtilUnitTest/VerUtilTests.cpp b/src/libs/dutil/test/DUtilUnitTest/VerUtilTests.cpp index c20b9887..3402097c 100644 --- a/src/libs/dutil/test/DUtilUnitTest/VerUtilTests.cpp +++ b/src/libs/dutil/test/DUtilUnitTest/VerUtilTests.cpp | |||
| @@ -42,6 +42,10 @@ namespace DutilTests | |||
| 42 | Assert::Equal<DWORD>(0, pVersion1->cReleaseLabels); | 42 | Assert::Equal<DWORD>(0, pVersion1->cReleaseLabels); |
| 43 | Assert::Equal<DWORD>(7, pVersion1->cchMetadataOffset); | 43 | Assert::Equal<DWORD>(7, pVersion1->cchMetadataOffset); |
| 44 | Assert::Equal<BOOL>(FALSE, pVersion1->fInvalid); | 44 | Assert::Equal<BOOL>(FALSE, pVersion1->fInvalid); |
| 45 | Assert::Equal<BOOL>(TRUE, pVersion1->fHasMajor); | ||
| 46 | Assert::Equal<BOOL>(TRUE, pVersion1->fHasMinor); | ||
| 47 | Assert::Equal<BOOL>(TRUE, pVersion1->fHasPatch); | ||
| 48 | Assert::Equal<BOOL>(TRUE, pVersion1->fHasRevision); | ||
| 45 | 49 | ||
| 46 | NativeAssert::StringEqual(wzVersion2, pVersion2->sczVersion); | 50 | NativeAssert::StringEqual(wzVersion2, pVersion2->sczVersion); |
| 47 | Assert::Equal<WCHAR>(L'\0', pVersion2->chPrefix); | 51 | Assert::Equal<WCHAR>(L'\0', pVersion2->chPrefix); |
| @@ -52,6 +56,10 @@ namespace DutilTests | |||
| 52 | Assert::Equal<DWORD>(0, pVersion2->cReleaseLabels); | 56 | Assert::Equal<DWORD>(0, pVersion2->cReleaseLabels); |
| 53 | Assert::Equal<DWORD>(5, pVersion2->cchMetadataOffset); | 57 | Assert::Equal<DWORD>(5, pVersion2->cchMetadataOffset); |
| 54 | Assert::Equal<BOOL>(FALSE, pVersion2->fInvalid); | 58 | Assert::Equal<BOOL>(FALSE, pVersion2->fInvalid); |
| 59 | Assert::Equal<BOOL>(TRUE, pVersion2->fHasMajor); | ||
| 60 | Assert::Equal<BOOL>(TRUE, pVersion2->fHasMinor); | ||
| 61 | Assert::Equal<BOOL>(TRUE, pVersion2->fHasPatch); | ||
| 62 | Assert::Equal<BOOL>(FALSE, pVersion2->fHasRevision); | ||
| 55 | 63 | ||
| 56 | NativeAssert::StringEqual(wzVersion3, pVersion3->sczVersion); | 64 | NativeAssert::StringEqual(wzVersion3, pVersion3->sczVersion); |
| 57 | Assert::Equal<WCHAR>(L'\0', pVersion3->chPrefix); | 65 | Assert::Equal<WCHAR>(L'\0', pVersion3->chPrefix); |
| @@ -62,6 +70,10 @@ namespace DutilTests | |||
| 62 | Assert::Equal<DWORD>(0, pVersion3->cReleaseLabels); | 70 | Assert::Equal<DWORD>(0, pVersion3->cReleaseLabels); |
| 63 | Assert::Equal<DWORD>(7, pVersion3->cchMetadataOffset); | 71 | Assert::Equal<DWORD>(7, pVersion3->cchMetadataOffset); |
| 64 | Assert::Equal<BOOL>(FALSE, pVersion3->fInvalid); | 72 | Assert::Equal<BOOL>(FALSE, pVersion3->fInvalid); |
| 73 | Assert::Equal<BOOL>(TRUE, pVersion3->fHasMajor); | ||
| 74 | Assert::Equal<BOOL>(TRUE, pVersion3->fHasMinor); | ||
| 75 | Assert::Equal<BOOL>(TRUE, pVersion3->fHasPatch); | ||
| 76 | Assert::Equal<BOOL>(TRUE, pVersion3->fHasRevision); | ||
| 65 | 77 | ||
| 66 | TestVerutilCompareParsedVersions(pVersion1, pVersion2, 1); | 78 | TestVerutilCompareParsedVersions(pVersion1, pVersion2, 1); |
| 67 | TestVerutilCompareParsedVersions(pVersion3, pVersion2, 0); | 79 | TestVerutilCompareParsedVersions(pVersion3, pVersion2, 0); |
| @@ -111,6 +123,10 @@ namespace DutilTests | |||
| 111 | 123 | ||
| 112 | Assert::Equal<DWORD>(7, pVersion1->cchMetadataOffset); | 124 | Assert::Equal<DWORD>(7, pVersion1->cchMetadataOffset); |
| 113 | Assert::Equal<BOOL>(FALSE, pVersion1->fInvalid); | 125 | Assert::Equal<BOOL>(FALSE, pVersion1->fInvalid); |
| 126 | Assert::Equal<BOOL>(TRUE, pVersion1->fHasMajor); | ||
| 127 | Assert::Equal<BOOL>(TRUE, pVersion1->fHasMinor); | ||
| 128 | Assert::Equal<BOOL>(FALSE, pVersion1->fHasPatch); | ||
| 129 | Assert::Equal<BOOL>(FALSE, pVersion1->fHasRevision); | ||
| 114 | 130 | ||
| 115 | NativeAssert::StringEqual(wzVersion2, pVersion2->sczVersion); | 131 | NativeAssert::StringEqual(wzVersion2, pVersion2->sczVersion); |
| 116 | Assert::Equal<WCHAR>(L'\0', pVersion2->chPrefix); | 132 | Assert::Equal<WCHAR>(L'\0', pVersion2->chPrefix); |
| @@ -127,6 +143,10 @@ namespace DutilTests | |||
| 127 | 143 | ||
| 128 | Assert::Equal<DWORD>(6, pVersion2->cchMetadataOffset); | 144 | Assert::Equal<DWORD>(6, pVersion2->cchMetadataOffset); |
| 129 | Assert::Equal<BOOL>(FALSE, pVersion2->fInvalid); | 145 | Assert::Equal<BOOL>(FALSE, pVersion2->fInvalid); |
| 146 | Assert::Equal<BOOL>(TRUE, pVersion2->fHasMajor); | ||
| 147 | Assert::Equal<BOOL>(TRUE, pVersion2->fHasMinor); | ||
| 148 | Assert::Equal<BOOL>(FALSE, pVersion2->fHasPatch); | ||
| 149 | Assert::Equal<BOOL>(FALSE, pVersion2->fHasRevision); | ||
| 130 | 150 | ||
| 131 | TestVerutilCompareParsedVersions(pVersion1, pVersion2, -1); | 151 | TestVerutilCompareParsedVersions(pVersion1, pVersion2, -1); |
| 132 | } | 152 | } |
| @@ -183,6 +203,10 @@ namespace DutilTests | |||
| 183 | Assert::Equal<DWORD>(0, pVersion1->cReleaseLabels); | 203 | Assert::Equal<DWORD>(0, pVersion1->cReleaseLabels); |
| 184 | Assert::Equal<DWORD>(3, pVersion1->cchMetadataOffset); | 204 | Assert::Equal<DWORD>(3, pVersion1->cchMetadataOffset); |
| 185 | Assert::Equal<BOOL>(TRUE, pVersion1->fInvalid); | 205 | Assert::Equal<BOOL>(TRUE, pVersion1->fInvalid); |
| 206 | Assert::Equal<BOOL>(TRUE, pVersion1->fHasMajor); | ||
| 207 | Assert::Equal<BOOL>(FALSE, pVersion1->fHasMinor); | ||
| 208 | Assert::Equal<BOOL>(FALSE, pVersion1->fHasPatch); | ||
| 209 | Assert::Equal<BOOL>(FALSE, pVersion1->fHasRevision); | ||
| 186 | 210 | ||
| 187 | NativeAssert::StringEqual(wzVersion2, pVersion2->sczVersion); | 211 | NativeAssert::StringEqual(wzVersion2, pVersion2->sczVersion); |
| 188 | Assert::Equal<WCHAR>(L'\0', pVersion2->chPrefix); | 212 | Assert::Equal<WCHAR>(L'\0', pVersion2->chPrefix); |
| @@ -193,6 +217,10 @@ namespace DutilTests | |||
| 193 | Assert::Equal<DWORD>(0, pVersion2->cReleaseLabels); | 217 | Assert::Equal<DWORD>(0, pVersion2->cReleaseLabels); |
| 194 | Assert::Equal<DWORD>(3, pVersion2->cchMetadataOffset); | 218 | Assert::Equal<DWORD>(3, pVersion2->cchMetadataOffset); |
| 195 | Assert::Equal<BOOL>(TRUE, pVersion2->fInvalid); | 219 | Assert::Equal<BOOL>(TRUE, pVersion2->fInvalid); |
| 220 | Assert::Equal<BOOL>(TRUE, pVersion2->fHasMajor); | ||
| 221 | Assert::Equal<BOOL>(FALSE, pVersion2->fHasMinor); | ||
| 222 | Assert::Equal<BOOL>(FALSE, pVersion2->fHasPatch); | ||
| 223 | Assert::Equal<BOOL>(FALSE, pVersion2->fHasRevision); | ||
| 196 | 224 | ||
| 197 | NativeAssert::StringEqual(wzVersion3, pVersion3->sczVersion); | 225 | NativeAssert::StringEqual(wzVersion3, pVersion3->sczVersion); |
| 198 | Assert::Equal<WCHAR>(L'\0', pVersion3->chPrefix); | 226 | Assert::Equal<WCHAR>(L'\0', pVersion3->chPrefix); |
| @@ -203,6 +231,10 @@ namespace DutilTests | |||
| 203 | Assert::Equal<DWORD>(0, pVersion3->cReleaseLabels); | 231 | Assert::Equal<DWORD>(0, pVersion3->cReleaseLabels); |
| 204 | Assert::Equal<DWORD>(1, pVersion3->cchMetadataOffset); | 232 | Assert::Equal<DWORD>(1, pVersion3->cchMetadataOffset); |
| 205 | Assert::Equal<BOOL>(FALSE, pVersion3->fInvalid); | 233 | Assert::Equal<BOOL>(FALSE, pVersion3->fInvalid); |
| 234 | Assert::Equal<BOOL>(TRUE, pVersion3->fHasMajor); | ||
| 235 | Assert::Equal<BOOL>(FALSE, pVersion3->fHasMinor); | ||
| 236 | Assert::Equal<BOOL>(FALSE, pVersion3->fHasPatch); | ||
| 237 | Assert::Equal<BOOL>(FALSE, pVersion3->fHasRevision); | ||
| 206 | 238 | ||
| 207 | NativeAssert::StringEqual(wzVersion4, pVersion4->sczVersion); | 239 | NativeAssert::StringEqual(wzVersion4, pVersion4->sczVersion); |
| 208 | Assert::Equal<WCHAR>(L'\0', pVersion4->chPrefix); | 240 | Assert::Equal<WCHAR>(L'\0', pVersion4->chPrefix); |
| @@ -213,6 +245,10 @@ namespace DutilTests | |||
| 213 | Assert::Equal<DWORD>(0, pVersion4->cReleaseLabels); | 245 | Assert::Equal<DWORD>(0, pVersion4->cReleaseLabels); |
| 214 | Assert::Equal<DWORD>(0, pVersion4->cchMetadataOffset); | 246 | Assert::Equal<DWORD>(0, pVersion4->cchMetadataOffset); |
| 215 | Assert::Equal<BOOL>(TRUE, pVersion4->fInvalid); | 247 | Assert::Equal<BOOL>(TRUE, pVersion4->fInvalid); |
| 248 | Assert::Equal<BOOL>(FALSE, pVersion4->fHasMajor); | ||
| 249 | Assert::Equal<BOOL>(FALSE, pVersion4->fHasMinor); | ||
| 250 | Assert::Equal<BOOL>(FALSE, pVersion4->fHasPatch); | ||
| 251 | Assert::Equal<BOOL>(FALSE, pVersion4->fHasRevision); | ||
| 216 | 252 | ||
| 217 | NativeAssert::StringEqual(wzVersion5, pVersion5->sczVersion); | 253 | NativeAssert::StringEqual(wzVersion5, pVersion5->sczVersion); |
| 218 | Assert::Equal<WCHAR>(L'\0', pVersion5->chPrefix); | 254 | Assert::Equal<WCHAR>(L'\0', pVersion5->chPrefix); |
| @@ -229,6 +265,10 @@ namespace DutilTests | |||
| 229 | 265 | ||
| 230 | Assert::Equal<DWORD>(4, pVersion5->cchMetadataOffset); | 266 | Assert::Equal<DWORD>(4, pVersion5->cchMetadataOffset); |
| 231 | Assert::Equal<BOOL>(FALSE, pVersion5->fInvalid); | 267 | Assert::Equal<BOOL>(FALSE, pVersion5->fInvalid); |
| 268 | Assert::Equal<BOOL>(TRUE, pVersion5->fHasMajor); | ||
| 269 | Assert::Equal<BOOL>(FALSE, pVersion5->fHasMinor); | ||
| 270 | Assert::Equal<BOOL>(FALSE, pVersion5->fHasPatch); | ||
| 271 | Assert::Equal<BOOL>(FALSE, pVersion5->fHasRevision); | ||
| 232 | 272 | ||
| 233 | NativeAssert::StringEqual(wzVersion6, pVersion6->sczVersion); | 273 | NativeAssert::StringEqual(wzVersion6, pVersion6->sczVersion); |
| 234 | Assert::Equal<WCHAR>(L'\0', pVersion6->chPrefix); | 274 | Assert::Equal<WCHAR>(L'\0', pVersion6->chPrefix); |
| @@ -245,6 +285,10 @@ namespace DutilTests | |||
| 245 | 285 | ||
| 246 | Assert::Equal<DWORD>(5, pVersion6->cchMetadataOffset); | 286 | Assert::Equal<DWORD>(5, pVersion6->cchMetadataOffset); |
| 247 | Assert::Equal<BOOL>(TRUE, pVersion6->fInvalid); | 287 | Assert::Equal<BOOL>(TRUE, pVersion6->fInvalid); |
| 288 | Assert::Equal<BOOL>(TRUE, pVersion6->fHasMajor); | ||
| 289 | Assert::Equal<BOOL>(FALSE, pVersion6->fHasMinor); | ||
| 290 | Assert::Equal<BOOL>(FALSE, pVersion6->fHasPatch); | ||
| 291 | Assert::Equal<BOOL>(FALSE, pVersion6->fHasRevision); | ||
| 248 | 292 | ||
| 249 | TestVerutilCompareParsedVersions(pVersion1, pVersion2, 1); | 293 | TestVerutilCompareParsedVersions(pVersion1, pVersion2, 1); |
| 250 | TestVerutilCompareParsedVersions(pVersion3, pVersion4, 1); | 294 | TestVerutilCompareParsedVersions(pVersion3, pVersion4, 1); |
| @@ -297,6 +341,10 @@ namespace DutilTests | |||
| 297 | 341 | ||
| 298 | Assert::Equal<DWORD>(7, pVersion1->cchMetadataOffset); | 342 | Assert::Equal<DWORD>(7, pVersion1->cchMetadataOffset); |
| 299 | Assert::Equal<BOOL>(FALSE, pVersion1->fInvalid); | 343 | Assert::Equal<BOOL>(FALSE, pVersion1->fInvalid); |
| 344 | Assert::Equal<BOOL>(TRUE, pVersion1->fHasMajor); | ||
| 345 | Assert::Equal<BOOL>(TRUE, pVersion1->fHasMinor); | ||
| 346 | Assert::Equal<BOOL>(TRUE, pVersion1->fHasPatch); | ||
| 347 | Assert::Equal<BOOL>(FALSE, pVersion1->fHasRevision); | ||
| 300 | 348 | ||
| 301 | NativeAssert::StringEqual(wzVersion2, pVersion2->sczVersion); | 349 | NativeAssert::StringEqual(wzVersion2, pVersion2->sczVersion); |
| 302 | Assert::Equal<WCHAR>(L'\0', pVersion2->chPrefix); | 350 | Assert::Equal<WCHAR>(L'\0', pVersion2->chPrefix); |
| @@ -313,6 +361,10 @@ namespace DutilTests | |||
| 313 | 361 | ||
| 314 | Assert::Equal<DWORD>(3, pVersion2->cchMetadataOffset); | 362 | Assert::Equal<DWORD>(3, pVersion2->cchMetadataOffset); |
| 315 | Assert::Equal<BOOL>(FALSE, pVersion2->fInvalid); | 363 | Assert::Equal<BOOL>(FALSE, pVersion2->fInvalid); |
| 364 | Assert::Equal<BOOL>(TRUE, pVersion2->fHasMajor); | ||
| 365 | Assert::Equal<BOOL>(FALSE, pVersion2->fHasMinor); | ||
| 366 | Assert::Equal<BOOL>(FALSE, pVersion2->fHasPatch); | ||
| 367 | Assert::Equal<BOOL>(FALSE, pVersion2->fHasRevision); | ||
| 316 | 368 | ||
| 317 | NativeAssert::StringEqual(wzVersion3, pVersion3->sczVersion); | 369 | NativeAssert::StringEqual(wzVersion3, pVersion3->sczVersion); |
| 318 | Assert::Equal<WCHAR>(L'\0', pVersion3->chPrefix); | 370 | Assert::Equal<WCHAR>(L'\0', pVersion3->chPrefix); |
| @@ -329,6 +381,10 @@ namespace DutilTests | |||
| 329 | 381 | ||
| 330 | Assert::Equal<DWORD>(3, pVersion3->cchMetadataOffset); | 382 | Assert::Equal<DWORD>(3, pVersion3->cchMetadataOffset); |
| 331 | Assert::Equal<BOOL>(FALSE, pVersion3->fInvalid); | 383 | Assert::Equal<BOOL>(FALSE, pVersion3->fInvalid); |
| 384 | Assert::Equal<BOOL>(TRUE, pVersion3->fHasMajor); | ||
| 385 | Assert::Equal<BOOL>(FALSE, pVersion3->fHasMinor); | ||
| 386 | Assert::Equal<BOOL>(FALSE, pVersion3->fHasPatch); | ||
| 387 | Assert::Equal<BOOL>(FALSE, pVersion3->fHasRevision); | ||
| 332 | 388 | ||
| 333 | TestVerutilCompareParsedVersions(pVersion1, pVersion2, 1); | 389 | TestVerutilCompareParsedVersions(pVersion1, pVersion2, 1); |
| 334 | TestVerutilCompareParsedVersions(pVersion1, pVersion3, -1); | 390 | TestVerutilCompareParsedVersions(pVersion1, pVersion3, -1); |
| @@ -387,6 +443,10 @@ namespace DutilTests | |||
| 387 | 443 | ||
| 388 | Assert::Equal<DWORD>(8, pVersion1->cchMetadataOffset); | 444 | Assert::Equal<DWORD>(8, pVersion1->cchMetadataOffset); |
| 389 | Assert::Equal<BOOL>(FALSE, pVersion1->fInvalid); | 445 | Assert::Equal<BOOL>(FALSE, pVersion1->fInvalid); |
| 446 | Assert::Equal<BOOL>(TRUE, pVersion1->fHasMajor); | ||
| 447 | Assert::Equal<BOOL>(TRUE, pVersion1->fHasMinor); | ||
| 448 | Assert::Equal<BOOL>(FALSE, pVersion1->fHasPatch); | ||
| 449 | Assert::Equal<BOOL>(FALSE, pVersion1->fHasRevision); | ||
| 390 | 450 | ||
| 391 | NativeAssert::StringEqual(wzVersion2, pVersion2->sczVersion); | 451 | NativeAssert::StringEqual(wzVersion2, pVersion2->sczVersion); |
| 392 | Assert::Equal<WCHAR>(L'\0', pVersion2->chPrefix); | 452 | Assert::Equal<WCHAR>(L'\0', pVersion2->chPrefix); |
| @@ -407,6 +467,10 @@ namespace DutilTests | |||
| 407 | 467 | ||
| 408 | Assert::Equal<DWORD>(9, pVersion2->cchMetadataOffset); | 468 | Assert::Equal<DWORD>(9, pVersion2->cchMetadataOffset); |
| 409 | Assert::Equal<BOOL>(FALSE, pVersion2->fInvalid); | 469 | Assert::Equal<BOOL>(FALSE, pVersion2->fInvalid); |
| 470 | Assert::Equal<BOOL>(TRUE, pVersion2->fHasMajor); | ||
| 471 | Assert::Equal<BOOL>(TRUE, pVersion2->fHasMinor); | ||
| 472 | Assert::Equal<BOOL>(TRUE, pVersion2->fHasPatch); | ||
| 473 | Assert::Equal<BOOL>(FALSE, pVersion2->fHasRevision); | ||
| 410 | 474 | ||
| 411 | NativeAssert::StringEqual(wzVersion3, pVersion3->sczVersion); | 475 | NativeAssert::StringEqual(wzVersion3, pVersion3->sczVersion); |
| 412 | Assert::Equal<WCHAR>(L'\0', pVersion3->chPrefix); | 476 | Assert::Equal<WCHAR>(L'\0', pVersion3->chPrefix); |
| @@ -431,6 +495,10 @@ namespace DutilTests | |||
| 431 | 495 | ||
| 432 | Assert::Equal<DWORD>(9, pVersion3->cchMetadataOffset); | 496 | Assert::Equal<DWORD>(9, pVersion3->cchMetadataOffset); |
| 433 | Assert::Equal<BOOL>(FALSE, pVersion3->fInvalid); | 497 | Assert::Equal<BOOL>(FALSE, pVersion3->fInvalid); |
| 498 | Assert::Equal<BOOL>(TRUE, pVersion3->fHasMajor); | ||
| 499 | Assert::Equal<BOOL>(TRUE, pVersion3->fHasMinor); | ||
| 500 | Assert::Equal<BOOL>(FALSE, pVersion3->fHasPatch); | ||
| 501 | Assert::Equal<BOOL>(FALSE, pVersion3->fHasRevision); | ||
| 434 | 502 | ||
| 435 | NativeAssert::StringEqual(wzVersion4, pVersion4->sczVersion); | 503 | NativeAssert::StringEqual(wzVersion4, pVersion4->sczVersion); |
| 436 | Assert::Equal<WCHAR>(L'\0', pVersion4->chPrefix); | 504 | Assert::Equal<WCHAR>(L'\0', pVersion4->chPrefix); |
| @@ -455,6 +523,10 @@ namespace DutilTests | |||
| 455 | 523 | ||
| 456 | Assert::Equal<DWORD>(13, pVersion4->cchMetadataOffset); | 524 | Assert::Equal<DWORD>(13, pVersion4->cchMetadataOffset); |
| 457 | Assert::Equal<BOOL>(FALSE, pVersion4->fInvalid); | 525 | Assert::Equal<BOOL>(FALSE, pVersion4->fInvalid); |
| 526 | Assert::Equal<BOOL>(TRUE, pVersion4->fHasMajor); | ||
| 527 | Assert::Equal<BOOL>(TRUE, pVersion4->fHasMinor); | ||
| 528 | Assert::Equal<BOOL>(TRUE, pVersion4->fHasPatch); | ||
| 529 | Assert::Equal<BOOL>(FALSE, pVersion4->fHasRevision); | ||
| 458 | 530 | ||
| 459 | TestVerutilCompareParsedVersions(pVersion1, pVersion2, 0); | 531 | TestVerutilCompareParsedVersions(pVersion1, pVersion2, 0); |
| 460 | TestVerutilCompareParsedVersions(pVersion3, pVersion4, 0); | 532 | TestVerutilCompareParsedVersions(pVersion3, pVersion4, 0); |
| @@ -499,6 +571,10 @@ namespace DutilTests | |||
| 499 | Assert::Equal<DWORD>(0, pVersion1->cReleaseLabels); | 571 | Assert::Equal<DWORD>(0, pVersion1->cReleaseLabels); |
| 500 | Assert::Equal<DWORD>(6, pVersion1->cchMetadataOffset); | 572 | Assert::Equal<DWORD>(6, pVersion1->cchMetadataOffset); |
| 501 | Assert::Equal<BOOL>(FALSE, pVersion1->fInvalid); | 573 | Assert::Equal<BOOL>(FALSE, pVersion1->fInvalid); |
| 574 | Assert::Equal<BOOL>(TRUE, pVersion1->fHasMajor); | ||
| 575 | Assert::Equal<BOOL>(TRUE, pVersion1->fHasMinor); | ||
| 576 | Assert::Equal<BOOL>(TRUE, pVersion1->fHasPatch); | ||
| 577 | Assert::Equal<BOOL>(FALSE, pVersion1->fHasRevision); | ||
| 502 | 578 | ||
| 503 | NativeAssert::StringEqual(wzVersion2, pVersion2->sczVersion); | 579 | NativeAssert::StringEqual(wzVersion2, pVersion2->sczVersion); |
| 504 | Assert::Equal<WCHAR>(L'\0', pVersion2->chPrefix); | 580 | Assert::Equal<WCHAR>(L'\0', pVersion2->chPrefix); |
| @@ -509,6 +585,10 @@ namespace DutilTests | |||
| 509 | Assert::Equal<DWORD>(0, pVersion2->cReleaseLabels); | 585 | Assert::Equal<DWORD>(0, pVersion2->cReleaseLabels); |
| 510 | Assert::Equal<DWORD>(6, pVersion2->cchMetadataOffset); | 586 | Assert::Equal<DWORD>(6, pVersion2->cchMetadataOffset); |
| 511 | Assert::Equal<BOOL>(TRUE, pVersion2->fInvalid); | 587 | Assert::Equal<BOOL>(TRUE, pVersion2->fInvalid); |
| 588 | Assert::Equal<BOOL>(TRUE, pVersion2->fHasMajor); | ||
| 589 | Assert::Equal<BOOL>(TRUE, pVersion2->fHasMinor); | ||
| 590 | Assert::Equal<BOOL>(TRUE, pVersion2->fHasPatch); | ||
| 591 | Assert::Equal<BOOL>(FALSE, pVersion2->fHasRevision); | ||
| 512 | 592 | ||
| 513 | NativeAssert::StringEqual(wzVersion3, pVersion3->sczVersion); | 593 | NativeAssert::StringEqual(wzVersion3, pVersion3->sczVersion); |
| 514 | Assert::Equal<WCHAR>(L'\0', pVersion3->chPrefix); | 594 | Assert::Equal<WCHAR>(L'\0', pVersion3->chPrefix); |
| @@ -519,6 +599,10 @@ namespace DutilTests | |||
| 519 | Assert::Equal<DWORD>(0, pVersion3->cReleaseLabels); | 599 | Assert::Equal<DWORD>(0, pVersion3->cReleaseLabels); |
| 520 | Assert::Equal<DWORD>(6, pVersion3->cchMetadataOffset); | 600 | Assert::Equal<DWORD>(6, pVersion3->cchMetadataOffset); |
| 521 | Assert::Equal<BOOL>(TRUE, pVersion3->fInvalid); | 601 | Assert::Equal<BOOL>(TRUE, pVersion3->fInvalid); |
| 602 | Assert::Equal<BOOL>(TRUE, pVersion3->fHasMajor); | ||
| 603 | Assert::Equal<BOOL>(TRUE, pVersion3->fHasMinor); | ||
| 604 | Assert::Equal<BOOL>(TRUE, pVersion3->fHasPatch); | ||
| 605 | Assert::Equal<BOOL>(FALSE, pVersion3->fHasRevision); | ||
| 522 | 606 | ||
| 523 | TestVerutilCompareParsedVersions(pVersion1, pVersion2, 1); | 607 | TestVerutilCompareParsedVersions(pVersion1, pVersion2, 1); |
| 524 | TestVerutilCompareParsedVersions(pVersion1, pVersion3, 1); | 608 | TestVerutilCompareParsedVersions(pVersion1, pVersion3, 1); |
| @@ -573,6 +657,10 @@ namespace DutilTests | |||
| 573 | Assert::Equal<DWORD>(0, pVersion1->cReleaseLabels); | 657 | Assert::Equal<DWORD>(0, pVersion1->cReleaseLabels); |
| 574 | Assert::Equal<DWORD>(11, pVersion1->cchMetadataOffset); | 658 | Assert::Equal<DWORD>(11, pVersion1->cchMetadataOffset); |
| 575 | Assert::Equal<BOOL>(FALSE, pVersion1->fInvalid); | 659 | Assert::Equal<BOOL>(FALSE, pVersion1->fInvalid); |
| 660 | Assert::Equal<BOOL>(TRUE, pVersion1->fHasMajor); | ||
| 661 | Assert::Equal<BOOL>(TRUE, pVersion1->fHasMinor); | ||
| 662 | Assert::Equal<BOOL>(TRUE, pVersion1->fHasPatch); | ||
| 663 | Assert::Equal<BOOL>(TRUE, pVersion1->fHasRevision); | ||
| 576 | 664 | ||
| 577 | NativeAssert::StringEqual(wzVersion1, pVersion2->sczVersion); | 665 | NativeAssert::StringEqual(wzVersion1, pVersion2->sczVersion); |
| 578 | Assert::Equal<WCHAR>(L'v', pVersion2->chPrefix); | 666 | Assert::Equal<WCHAR>(L'v', pVersion2->chPrefix); |
| @@ -583,6 +671,10 @@ namespace DutilTests | |||
| 583 | Assert::Equal<DWORD>(0, pVersion2->cReleaseLabels); | 671 | Assert::Equal<DWORD>(0, pVersion2->cReleaseLabels); |
| 584 | Assert::Equal<DWORD>(11, pVersion2->cchMetadataOffset); | 672 | Assert::Equal<DWORD>(11, pVersion2->cchMetadataOffset); |
| 585 | Assert::Equal<BOOL>(FALSE, pVersion2->fInvalid); | 673 | Assert::Equal<BOOL>(FALSE, pVersion2->fInvalid); |
| 674 | Assert::Equal<BOOL>(TRUE, pVersion2->fHasMajor); | ||
| 675 | Assert::Equal<BOOL>(TRUE, pVersion2->fHasMinor); | ||
| 676 | Assert::Equal<BOOL>(TRUE, pVersion2->fHasPatch); | ||
| 677 | Assert::Equal<BOOL>(TRUE, pVersion2->fHasRevision); | ||
| 586 | 678 | ||
| 587 | NativeAssert::StringEqual(wzVersion1, pVersion3->sczVersion); | 679 | NativeAssert::StringEqual(wzVersion1, pVersion3->sczVersion); |
| 588 | Assert::Equal<WCHAR>(L'V', pVersion3->chPrefix); | 680 | Assert::Equal<WCHAR>(L'V', pVersion3->chPrefix); |
| @@ -593,6 +685,10 @@ namespace DutilTests | |||
| 593 | Assert::Equal<DWORD>(0, pVersion3->cReleaseLabels); | 685 | Assert::Equal<DWORD>(0, pVersion3->cReleaseLabels); |
| 594 | Assert::Equal<DWORD>(11, pVersion3->cchMetadataOffset); | 686 | Assert::Equal<DWORD>(11, pVersion3->cchMetadataOffset); |
| 595 | Assert::Equal<BOOL>(FALSE, pVersion3->fInvalid); | 687 | Assert::Equal<BOOL>(FALSE, pVersion3->fInvalid); |
| 688 | Assert::Equal<BOOL>(TRUE, pVersion3->fHasMajor); | ||
| 689 | Assert::Equal<BOOL>(TRUE, pVersion3->fHasMinor); | ||
| 690 | Assert::Equal<BOOL>(TRUE, pVersion3->fHasPatch); | ||
| 691 | Assert::Equal<BOOL>(TRUE, pVersion3->fHasRevision); | ||
| 596 | 692 | ||
| 597 | NativeAssert::StringEqual(L"10.20.30.40-abc", pVersion4->sczVersion); | 693 | NativeAssert::StringEqual(L"10.20.30.40-abc", pVersion4->sczVersion); |
| 598 | Assert::Equal<WCHAR>(L'v', pVersion4->chPrefix); | 694 | Assert::Equal<WCHAR>(L'v', pVersion4->chPrefix); |
| @@ -608,6 +704,10 @@ namespace DutilTests | |||
| 608 | 704 | ||
| 609 | Assert::Equal<DWORD>(15, pVersion4->cchMetadataOffset); | 705 | Assert::Equal<DWORD>(15, pVersion4->cchMetadataOffset); |
| 610 | Assert::Equal<BOOL>(FALSE, pVersion4->fInvalid); | 706 | Assert::Equal<BOOL>(FALSE, pVersion4->fInvalid); |
| 707 | Assert::Equal<BOOL>(TRUE, pVersion4->fHasMajor); | ||
| 708 | Assert::Equal<BOOL>(TRUE, pVersion4->fHasMinor); | ||
| 709 | Assert::Equal<BOOL>(TRUE, pVersion4->fHasPatch); | ||
| 710 | Assert::Equal<BOOL>(TRUE, pVersion4->fHasRevision); | ||
| 611 | 711 | ||
| 612 | NativeAssert::StringEqual(wzVersion5, pVersion5->sczVersion); | 712 | NativeAssert::StringEqual(wzVersion5, pVersion5->sczVersion); |
| 613 | Assert::Equal<WCHAR>(L'\0', pVersion5->chPrefix); | 713 | Assert::Equal<WCHAR>(L'\0', pVersion5->chPrefix); |
| @@ -618,6 +718,10 @@ namespace DutilTests | |||
| 618 | Assert::Equal<DWORD>(0, pVersion5->cReleaseLabels); | 718 | Assert::Equal<DWORD>(0, pVersion5->cReleaseLabels); |
| 619 | Assert::Equal<DWORD>(0, pVersion5->cchMetadataOffset); | 719 | Assert::Equal<DWORD>(0, pVersion5->cchMetadataOffset); |
| 620 | Assert::Equal<BOOL>(TRUE, pVersion5->fInvalid); | 720 | Assert::Equal<BOOL>(TRUE, pVersion5->fInvalid); |
| 721 | Assert::Equal<BOOL>(FALSE, pVersion5->fHasMajor); | ||
| 722 | Assert::Equal<BOOL>(FALSE, pVersion5->fHasMinor); | ||
| 723 | Assert::Equal<BOOL>(FALSE, pVersion5->fHasPatch); | ||
| 724 | Assert::Equal<BOOL>(FALSE, pVersion5->fHasRevision); | ||
| 621 | 725 | ||
| 622 | TestVerutilCompareParsedVersions(pVersion1, pVersion2, 0); | 726 | TestVerutilCompareParsedVersions(pVersion1, pVersion2, 0); |
| 623 | TestVerutilCompareParsedVersions(pVersion1, pVersion3, 0); | 727 | TestVerutilCompareParsedVersions(pVersion1, pVersion3, 0); |
| @@ -659,6 +763,10 @@ namespace DutilTests | |||
| 659 | Assert::Equal<DWORD>(0, pVersion1->cReleaseLabels); | 763 | Assert::Equal<DWORD>(0, pVersion1->cReleaseLabels); |
| 660 | Assert::Equal<DWORD>(43, pVersion1->cchMetadataOffset); | 764 | Assert::Equal<DWORD>(43, pVersion1->cchMetadataOffset); |
| 661 | Assert::Equal<BOOL>(FALSE, pVersion1->fInvalid); | 765 | Assert::Equal<BOOL>(FALSE, pVersion1->fInvalid); |
| 766 | Assert::Equal<BOOL>(TRUE, pVersion1->fHasMajor); | ||
| 767 | Assert::Equal<BOOL>(TRUE, pVersion1->fHasMinor); | ||
| 768 | Assert::Equal<BOOL>(TRUE, pVersion1->fHasPatch); | ||
| 769 | Assert::Equal<BOOL>(TRUE, pVersion1->fHasRevision); | ||
| 662 | 770 | ||
| 663 | NativeAssert::StringEqual(wzVersion2, pVersion2->sczVersion); | 771 | NativeAssert::StringEqual(wzVersion2, pVersion2->sczVersion); |
| 664 | Assert::Equal<WCHAR>(L'\0', pVersion2->chPrefix); | 772 | Assert::Equal<WCHAR>(L'\0', pVersion2->chPrefix); |
| @@ -669,6 +777,10 @@ namespace DutilTests | |||
| 669 | Assert::Equal<DWORD>(0, pVersion2->cReleaseLabels); | 777 | Assert::Equal<DWORD>(0, pVersion2->cReleaseLabels); |
| 670 | Assert::Equal<DWORD>(0, pVersion2->cchMetadataOffset); | 778 | Assert::Equal<DWORD>(0, pVersion2->cchMetadataOffset); |
| 671 | Assert::Equal<BOOL>(TRUE, pVersion2->fInvalid); | 779 | Assert::Equal<BOOL>(TRUE, pVersion2->fInvalid); |
| 780 | Assert::Equal<BOOL>(FALSE, pVersion2->fHasMajor); | ||
| 781 | Assert::Equal<BOOL>(FALSE, pVersion2->fHasMinor); | ||
| 782 | Assert::Equal<BOOL>(FALSE, pVersion2->fHasPatch); | ||
| 783 | Assert::Equal<BOOL>(FALSE, pVersion2->fHasRevision); | ||
| 672 | 784 | ||
| 673 | TestVerutilCompareParsedVersions(pVersion1, pVersion2, 1); | 785 | TestVerutilCompareParsedVersions(pVersion1, pVersion2, 1); |
| 674 | } | 786 | } |
| @@ -705,6 +817,10 @@ namespace DutilTests | |||
| 705 | Assert::Equal<DWORD>(0, pVersion1->cReleaseLabels); | 817 | Assert::Equal<DWORD>(0, pVersion1->cReleaseLabels); |
| 706 | Assert::Equal<DWORD>(6, pVersion1->cchMetadataOffset); | 818 | Assert::Equal<DWORD>(6, pVersion1->cchMetadataOffset); |
| 707 | Assert::Equal<BOOL>(FALSE, pVersion1->fInvalid); | 819 | Assert::Equal<BOOL>(FALSE, pVersion1->fInvalid); |
| 820 | Assert::Equal<BOOL>(TRUE, pVersion1->fHasMajor); | ||
| 821 | Assert::Equal<BOOL>(TRUE, pVersion1->fHasMinor); | ||
| 822 | Assert::Equal<BOOL>(TRUE, pVersion1->fHasPatch); | ||
| 823 | Assert::Equal<BOOL>(FALSE, pVersion1->fHasRevision); | ||
| 708 | 824 | ||
| 709 | NativeAssert::StringEqual(wzVersion2, pVersion2->sczVersion); | 825 | NativeAssert::StringEqual(wzVersion2, pVersion2->sczVersion); |
| 710 | Assert::Equal<WCHAR>(L'\0', pVersion2->chPrefix); | 826 | Assert::Equal<WCHAR>(L'\0', pVersion2->chPrefix); |
| @@ -715,6 +831,10 @@ namespace DutilTests | |||
| 715 | Assert::Equal<DWORD>(0, pVersion2->cReleaseLabels); | 831 | Assert::Equal<DWORD>(0, pVersion2->cReleaseLabels); |
| 716 | Assert::Equal<DWORD>(6, pVersion2->cchMetadataOffset); | 832 | Assert::Equal<DWORD>(6, pVersion2->cchMetadataOffset); |
| 717 | Assert::Equal<BOOL>(FALSE, pVersion2->fInvalid); | 833 | Assert::Equal<BOOL>(FALSE, pVersion2->fInvalid); |
| 834 | Assert::Equal<BOOL>(TRUE, pVersion2->fHasMajor); | ||
| 835 | Assert::Equal<BOOL>(TRUE, pVersion2->fHasMinor); | ||
| 836 | Assert::Equal<BOOL>(TRUE, pVersion2->fHasPatch); | ||
| 837 | Assert::Equal<BOOL>(FALSE, pVersion2->fHasRevision); | ||
| 718 | 838 | ||
| 719 | TestVerutilCompareParsedVersions(pVersion1, pVersion2, 0); | 839 | TestVerutilCompareParsedVersions(pVersion1, pVersion2, 0); |
| 720 | } | 840 | } |
| @@ -749,6 +869,10 @@ namespace DutilTests | |||
| 749 | 869 | ||
| 750 | Assert::Equal<DWORD>(8, pSource->cchMetadataOffset); | 870 | Assert::Equal<DWORD>(8, pSource->cchMetadataOffset); |
| 751 | Assert::Equal<BOOL>(FALSE, pSource->fInvalid); | 871 | Assert::Equal<BOOL>(FALSE, pSource->fInvalid); |
| 872 | Assert::Equal<BOOL>(TRUE, pSource->fHasMajor); | ||
| 873 | Assert::Equal<BOOL>(TRUE, pSource->fHasMinor); | ||
| 874 | Assert::Equal<BOOL>(TRUE, pSource->fHasPatch); | ||
| 875 | Assert::Equal<BOOL>(TRUE, pSource->fHasRevision); | ||
| 752 | 876 | ||
| 753 | hr = VerCopyVersion(pSource, &pCopy); | 877 | hr = VerCopyVersion(pSource, &pCopy); |
| 754 | NativeAssert::Succeeded(hr, "VerCopyVersion failed"); | 878 | NativeAssert::Succeeded(hr, "VerCopyVersion failed"); |
| @@ -756,6 +880,10 @@ namespace DutilTests | |||
| 756 | Assert::False(pSource == pCopy); | 880 | Assert::False(pSource == pCopy); |
| 757 | Assert::False(pSource->sczVersion == pCopy->sczVersion); | 881 | Assert::False(pSource->sczVersion == pCopy->sczVersion); |
| 758 | Assert::Equal<WCHAR>(L'\0', pCopy->chPrefix); | 882 | Assert::Equal<WCHAR>(L'\0', pCopy->chPrefix); |
| 883 | Assert::Equal<BOOL>(TRUE, pCopy->fHasMajor); | ||
| 884 | Assert::Equal<BOOL>(TRUE, pCopy->fHasMinor); | ||
| 885 | Assert::Equal<BOOL>(TRUE, pCopy->fHasPatch); | ||
| 886 | Assert::Equal<BOOL>(TRUE, pCopy->fHasRevision); | ||
| 759 | 887 | ||
| 760 | hr = VerCompareParsedVersions(pSource, pCopy, &nResult); | 888 | hr = VerCompareParsedVersions(pSource, pCopy, &nResult); |
| 761 | NativeAssert::Succeeded(hr, "VerCompareParsedVersions failed"); | 889 | NativeAssert::Succeeded(hr, "VerCompareParsedVersions failed"); |
| @@ -814,6 +942,10 @@ namespace DutilTests | |||
| 814 | 942 | ||
| 815 | Assert::Equal<DWORD>(18, pSource->cchMetadataOffset); | 943 | Assert::Equal<DWORD>(18, pSource->cchMetadataOffset); |
| 816 | Assert::Equal<BOOL>(TRUE, pSource->fInvalid); | 944 | Assert::Equal<BOOL>(TRUE, pSource->fInvalid); |
| 945 | Assert::Equal<BOOL>(TRUE, pSource->fHasMajor); | ||
| 946 | Assert::Equal<BOOL>(TRUE, pSource->fHasMinor); | ||
| 947 | Assert::Equal<BOOL>(TRUE, pSource->fHasPatch); | ||
| 948 | Assert::Equal<BOOL>(TRUE, pSource->fHasRevision); | ||
| 817 | 949 | ||
| 818 | hr = VerCopyVersion(pSource, &pCopy); | 950 | hr = VerCopyVersion(pSource, &pCopy); |
| 819 | NativeAssert::Succeeded(hr, "VerCopyVersion failed"); | 951 | NativeAssert::Succeeded(hr, "VerCopyVersion failed"); |
| @@ -822,6 +954,10 @@ namespace DutilTests | |||
| 822 | Assert::False(pSource->sczVersion == pCopy->sczVersion); | 954 | Assert::False(pSource->sczVersion == pCopy->sczVersion); |
| 823 | Assert::False(pSource->rgReleaseLabels == pCopy->rgReleaseLabels); | 955 | Assert::False(pSource->rgReleaseLabels == pCopy->rgReleaseLabels); |
| 824 | Assert::Equal<WCHAR>(L'v', pCopy->chPrefix); | 956 | Assert::Equal<WCHAR>(L'v', pCopy->chPrefix); |
| 957 | Assert::Equal<BOOL>(TRUE, pCopy->fHasMajor); | ||
| 958 | Assert::Equal<BOOL>(TRUE, pCopy->fHasMinor); | ||
| 959 | Assert::Equal<BOOL>(TRUE, pCopy->fHasPatch); | ||
| 960 | Assert::Equal<BOOL>(TRUE, pCopy->fHasRevision); | ||
| 825 | 961 | ||
| 826 | hr = VerCompareParsedVersions(pSource, pCopy, &nResult); | 962 | hr = VerCompareParsedVersions(pSource, pCopy, &nResult); |
| 827 | NativeAssert::Succeeded(hr, "VerCompareParsedVersions failed"); | 963 | NativeAssert::Succeeded(hr, "VerCompareParsedVersions failed"); |
| @@ -886,6 +1022,10 @@ namespace DutilTests | |||
| 886 | Assert::Equal<DWORD>(0, pVersion1->cReleaseLabels); | 1022 | Assert::Equal<DWORD>(0, pVersion1->cReleaseLabels); |
| 887 | Assert::Equal<DWORD>(0, pVersion1->cchMetadataOffset); | 1023 | Assert::Equal<DWORD>(0, pVersion1->cchMetadataOffset); |
| 888 | Assert::Equal<BOOL>(TRUE, pVersion1->fInvalid); | 1024 | Assert::Equal<BOOL>(TRUE, pVersion1->fInvalid); |
| 1025 | Assert::Equal<BOOL>(FALSE, pVersion1->fHasMajor); | ||
| 1026 | Assert::Equal<BOOL>(FALSE, pVersion1->fHasMinor); | ||
| 1027 | Assert::Equal<BOOL>(FALSE, pVersion1->fHasPatch); | ||
| 1028 | Assert::Equal<BOOL>(FALSE, pVersion1->fHasRevision); | ||
| 889 | 1029 | ||
| 890 | NativeAssert::StringEqual(wzVersion2, pVersion2->sczVersion); | 1030 | NativeAssert::StringEqual(wzVersion2, pVersion2->sczVersion); |
| 891 | Assert::Equal<WCHAR>(L'\0', pVersion2->chPrefix); | 1031 | Assert::Equal<WCHAR>(L'\0', pVersion2->chPrefix); |
| @@ -896,6 +1036,10 @@ namespace DutilTests | |||
| 896 | Assert::Equal<DWORD>(0, pVersion2->cReleaseLabels); | 1036 | Assert::Equal<DWORD>(0, pVersion2->cReleaseLabels); |
| 897 | Assert::Equal<DWORD>(2, pVersion2->cchMetadataOffset); | 1037 | Assert::Equal<DWORD>(2, pVersion2->cchMetadataOffset); |
| 898 | Assert::Equal<BOOL>(TRUE, pVersion2->fInvalid); | 1038 | Assert::Equal<BOOL>(TRUE, pVersion2->fInvalid); |
| 1039 | Assert::Equal<BOOL>(TRUE, pVersion2->fHasMajor); | ||
| 1040 | Assert::Equal<BOOL>(FALSE, pVersion2->fHasMinor); | ||
| 1041 | Assert::Equal<BOOL>(FALSE, pVersion2->fHasPatch); | ||
| 1042 | Assert::Equal<BOOL>(FALSE, pVersion2->fHasRevision); | ||
| 899 | 1043 | ||
| 900 | NativeAssert::StringEqual(wzVersion3, pVersion3->sczVersion); | 1044 | NativeAssert::StringEqual(wzVersion3, pVersion3->sczVersion); |
| 901 | Assert::Equal<WCHAR>(L'\0', pVersion3->chPrefix); | 1045 | Assert::Equal<WCHAR>(L'\0', pVersion3->chPrefix); |
| @@ -906,6 +1050,10 @@ namespace DutilTests | |||
| 906 | Assert::Equal<DWORD>(0, pVersion3->cReleaseLabels); | 1050 | Assert::Equal<DWORD>(0, pVersion3->cReleaseLabels); |
| 907 | Assert::Equal<DWORD>(4, pVersion3->cchMetadataOffset); | 1051 | Assert::Equal<DWORD>(4, pVersion3->cchMetadataOffset); |
| 908 | Assert::Equal<BOOL>(TRUE, pVersion3->fInvalid); | 1052 | Assert::Equal<BOOL>(TRUE, pVersion3->fInvalid); |
| 1053 | Assert::Equal<BOOL>(TRUE, pVersion3->fHasMajor); | ||
| 1054 | Assert::Equal<BOOL>(TRUE, pVersion3->fHasMinor); | ||
| 1055 | Assert::Equal<BOOL>(FALSE, pVersion3->fHasPatch); | ||
| 1056 | Assert::Equal<BOOL>(FALSE, pVersion3->fHasRevision); | ||
| 909 | 1057 | ||
| 910 | NativeAssert::StringEqual(wzVersion4, pVersion4->sczVersion); | 1058 | NativeAssert::StringEqual(wzVersion4, pVersion4->sczVersion); |
| 911 | Assert::Equal<WCHAR>(L'\0', pVersion4->chPrefix); | 1059 | Assert::Equal<WCHAR>(L'\0', pVersion4->chPrefix); |
| @@ -916,6 +1064,10 @@ namespace DutilTests | |||
| 916 | Assert::Equal<DWORD>(0, pVersion4->cReleaseLabels); | 1064 | Assert::Equal<DWORD>(0, pVersion4->cReleaseLabels); |
| 917 | Assert::Equal<DWORD>(6, pVersion4->cchMetadataOffset); | 1065 | Assert::Equal<DWORD>(6, pVersion4->cchMetadataOffset); |
| 918 | Assert::Equal<BOOL>(TRUE, pVersion4->fInvalid); | 1066 | Assert::Equal<BOOL>(TRUE, pVersion4->fInvalid); |
| 1067 | Assert::Equal<BOOL>(TRUE, pVersion4->fHasMajor); | ||
| 1068 | Assert::Equal<BOOL>(TRUE, pVersion4->fHasMinor); | ||
| 1069 | Assert::Equal<BOOL>(TRUE, pVersion4->fHasPatch); | ||
| 1070 | Assert::Equal<BOOL>(FALSE, pVersion4->fHasRevision); | ||
| 919 | 1071 | ||
| 920 | NativeAssert::StringEqual(wzVersion5, pVersion5->sczVersion); | 1072 | NativeAssert::StringEqual(wzVersion5, pVersion5->sczVersion); |
| 921 | Assert::Equal<WCHAR>(L'\0', pVersion5->chPrefix); | 1073 | Assert::Equal<WCHAR>(L'\0', pVersion5->chPrefix); |
| @@ -926,6 +1078,10 @@ namespace DutilTests | |||
| 926 | Assert::Equal<DWORD>(0, pVersion5->cReleaseLabels); | 1078 | Assert::Equal<DWORD>(0, pVersion5->cReleaseLabels); |
| 927 | Assert::Equal<DWORD>(8, pVersion5->cchMetadataOffset); | 1079 | Assert::Equal<DWORD>(8, pVersion5->cchMetadataOffset); |
| 928 | Assert::Equal<BOOL>(TRUE, pVersion5->fInvalid); | 1080 | Assert::Equal<BOOL>(TRUE, pVersion5->fInvalid); |
| 1081 | Assert::Equal<BOOL>(TRUE, pVersion5->fHasMajor); | ||
| 1082 | Assert::Equal<BOOL>(TRUE, pVersion5->fHasMinor); | ||
| 1083 | Assert::Equal<BOOL>(TRUE, pVersion5->fHasPatch); | ||
| 1084 | Assert::Equal<BOOL>(TRUE, pVersion5->fHasRevision); | ||
| 929 | 1085 | ||
| 930 | NativeAssert::StringEqual(wzVersion6, pVersion6->sczVersion); | 1086 | NativeAssert::StringEqual(wzVersion6, pVersion6->sczVersion); |
| 931 | Assert::Equal<WCHAR>(L'\0', pVersion6->chPrefix); | 1087 | Assert::Equal<WCHAR>(L'\0', pVersion6->chPrefix); |
| @@ -936,6 +1092,10 @@ namespace DutilTests | |||
| 936 | Assert::Equal<DWORD>(0, pVersion6->cReleaseLabels); | 1092 | Assert::Equal<DWORD>(0, pVersion6->cReleaseLabels); |
| 937 | Assert::Equal<DWORD>(2, pVersion6->cchMetadataOffset); | 1093 | Assert::Equal<DWORD>(2, pVersion6->cchMetadataOffset); |
| 938 | Assert::Equal<BOOL>(TRUE, pVersion6->fInvalid); | 1094 | Assert::Equal<BOOL>(TRUE, pVersion6->fInvalid); |
| 1095 | Assert::Equal<BOOL>(TRUE, pVersion6->fHasMajor); | ||
| 1096 | Assert::Equal<BOOL>(FALSE, pVersion6->fHasMinor); | ||
| 1097 | Assert::Equal<BOOL>(FALSE, pVersion6->fHasPatch); | ||
| 1098 | Assert::Equal<BOOL>(FALSE, pVersion6->fHasRevision); | ||
| 939 | 1099 | ||
| 940 | NativeAssert::StringEqual(wzVersion7, pVersion7->sczVersion); | 1100 | NativeAssert::StringEqual(wzVersion7, pVersion7->sczVersion); |
| 941 | Assert::Equal<WCHAR>(L'\0', pVersion7->chPrefix); | 1101 | Assert::Equal<WCHAR>(L'\0', pVersion7->chPrefix); |
| @@ -951,6 +1111,10 @@ namespace DutilTests | |||
| 951 | 1111 | ||
| 952 | Assert::Equal<DWORD>(4, pVersion7->cchMetadataOffset); | 1112 | Assert::Equal<DWORD>(4, pVersion7->cchMetadataOffset); |
| 953 | Assert::Equal<BOOL>(TRUE, pVersion7->fInvalid); | 1113 | Assert::Equal<BOOL>(TRUE, pVersion7->fInvalid); |
| 1114 | Assert::Equal<BOOL>(TRUE, pVersion7->fHasMajor); | ||
| 1115 | Assert::Equal<BOOL>(FALSE, pVersion7->fHasMinor); | ||
| 1116 | Assert::Equal<BOOL>(FALSE, pVersion7->fHasPatch); | ||
| 1117 | Assert::Equal<BOOL>(FALSE, pVersion7->fHasRevision); | ||
| 954 | } | 1118 | } |
| 955 | finally | 1119 | finally |
| 956 | { | 1120 | { |
| @@ -984,6 +1148,10 @@ namespace DutilTests | |||
| 984 | Assert::Equal<DWORD>(0, pVersion1->cReleaseLabels); | 1148 | Assert::Equal<DWORD>(0, pVersion1->cReleaseLabels); |
| 985 | Assert::Equal<DWORD>(7, pVersion1->cchMetadataOffset); | 1149 | Assert::Equal<DWORD>(7, pVersion1->cchMetadataOffset); |
| 986 | Assert::Equal<BOOL>(FALSE, pVersion1->fInvalid); | 1150 | Assert::Equal<BOOL>(FALSE, pVersion1->fInvalid); |
| 1151 | Assert::Equal<BOOL>(TRUE, pVersion1->fHasMajor); | ||
| 1152 | Assert::Equal<BOOL>(TRUE, pVersion1->fHasMinor); | ||
| 1153 | Assert::Equal<BOOL>(TRUE, pVersion1->fHasPatch); | ||
| 1154 | Assert::Equal<BOOL>(TRUE, pVersion1->fHasRevision); | ||
| 987 | } | 1155 | } |
| 988 | finally | 1156 | finally |
| 989 | { | 1157 | { |
