diff options
| author | Sean Hall <r.sean.hall@gmail.com> | 2020-12-15 20:02:53 -0600 |
|---|---|---|
| committer | Sean Hall <r.sean.hall@gmail.com> | 2020-12-15 20:06:52 -0600 |
| commit | 8701b06765803d1af0672df7cff533662990a82e (patch) | |
| tree | be1a7c698d77515b8cb9d20b735d1ed9ff6127ff /src/test/BurnUnitTest/PlanTest.cpp | |
| parent | 6ac2cf5c3dc2df77ba8be2cf12c624e1c4a20e18 (diff) | |
| download | wix-8701b06765803d1af0672df7cff533662990a82e.tar.gz wix-8701b06765803d1af0672df7cff533662990a82e.tar.bz2 wix-8701b06765803d1af0672df7cff533662990a82e.zip | |
WIXBUG:4539 - Fix overall Cache action planning with related bundles.
Diffstat (limited to 'src/test/BurnUnitTest/PlanTest.cpp')
| -rw-r--r-- | src/test/BurnUnitTest/PlanTest.cpp | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/src/test/BurnUnitTest/PlanTest.cpp b/src/test/BurnUnitTest/PlanTest.cpp index d3b10678..5b3dca8d 100644 --- a/src/test/BurnUnitTest/PlanTest.cpp +++ b/src/test/BurnUnitTest/PlanTest.cpp | |||
| @@ -398,6 +398,78 @@ namespace Bootstrapper | |||
| 398 | } | 398 | } |
| 399 | 399 | ||
| 400 | [Fact] | 400 | [Fact] |
| 401 | void SingleMsiCacheTest() | ||
| 402 | { | ||
| 403 | HRESULT hr = S_OK; | ||
| 404 | BURN_ENGINE_STATE engineState = { }; | ||
| 405 | BURN_ENGINE_STATE* pEngineState = &engineState; | ||
| 406 | BURN_PLAN* pPlan = &engineState.plan; | ||
| 407 | |||
| 408 | InitializeEngineStateForCorePlan(wzSingleMsiManifest, pEngineState); | ||
| 409 | DetectAttachedContainerAsAttached(pEngineState); | ||
| 410 | DetectPackagesAsAbsent(pEngineState); | ||
| 411 | DetectUpgradeBundle(pEngineState, L"{FD9920AD-DBCA-4C6C-8CD5-B47431CE8D21}", L"0.9.0.0"); | ||
| 412 | |||
| 413 | hr = CorePlan(pEngineState, BOOTSTRAPPER_ACTION_CACHE); | ||
| 414 | NativeAssert::Succeeded(hr, "CorePlan failed"); | ||
| 415 | |||
| 416 | Assert::Equal<DWORD>(BOOTSTRAPPER_ACTION_CACHE, pPlan->action); | ||
| 417 | Assert::Equal<BOOL>(TRUE, pPlan->fPerMachine); | ||
| 418 | Assert::Equal<BOOL>(FALSE, pPlan->fDisableRollback); | ||
| 419 | Assert::Equal<BOOL>(FALSE, pPlan->fKeepRegistrationDefault); | ||
| 420 | |||
| 421 | BOOL fRollback = FALSE; | ||
| 422 | DWORD dwIndex = 0; | ||
| 423 | DWORD dwPackageStart = 0; | ||
| 424 | ValidateCacheCheckpoint(pPlan, fRollback, dwIndex++, 1); | ||
| 425 | dwPackageStart = ValidateCachePackageStart(pPlan, fRollback, dwIndex++, L"PackageE", 5, 2, 33741, FALSE); | ||
| 426 | ValidateCacheExtractContainer(pPlan, fRollback, dwIndex++, L"WixAttachedContainer", FALSE, BURN_PLAN_INVALID_ACTION_INDEX, 2); | ||
| 427 | ValidateCacheCachePayload(pPlan, fRollback, dwIndex++, L"PackageE", L"PackageE", TRUE, FALSE, dwPackageStart); | ||
| 428 | ValidateCacheCachePayload(pPlan, fRollback, dwIndex++, L"PackageE", L"cabkAPka1fWa1PyiVdoVPuoB6Qvs3k", TRUE, FALSE, dwPackageStart); | ||
| 429 | ValidateCachePackageStop(pPlan, fRollback, dwIndex++, L"PackageE", FALSE); | ||
| 430 | ValidateCacheSignalSyncpoint(pPlan, fRollback, dwIndex++, FALSE); | ||
| 431 | Assert::Equal(dwIndex, pPlan->cCacheActions); | ||
| 432 | |||
| 433 | fRollback = TRUE; | ||
| 434 | dwIndex = 0; | ||
| 435 | Assert::Equal(dwIndex, pPlan->cRollbackCacheActions); | ||
| 436 | |||
| 437 | Assert::Equal(0ull, pPlan->qwEstimatedSize); | ||
| 438 | Assert::Equal(33741ull, pPlan->qwCacheSizeTotal); | ||
| 439 | |||
| 440 | fRollback = FALSE; | ||
| 441 | dwIndex = 0; | ||
| 442 | DWORD dwExecuteCheckpointId = 2; | ||
| 443 | ValidateExecuteRollbackBoundary(pPlan, fRollback, dwIndex++, L"WixDefaultBoundary", TRUE, FALSE); | ||
| 444 | ValidateExecuteWaitSyncpoint(pPlan, fRollback, dwIndex++, pPlan->rgCacheActions[6].syncpoint.hEvent); | ||
| 445 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); | ||
| 446 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); | ||
| 447 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); | ||
| 448 | Assert::Equal(dwIndex, pPlan->cExecuteActions); | ||
| 449 | |||
| 450 | fRollback = TRUE; | ||
| 451 | dwIndex = 0; | ||
| 452 | dwExecuteCheckpointId = 2; | ||
| 453 | ValidateExecuteRollbackBoundary(pPlan, fRollback, dwIndex++, L"WixDefaultBoundary", TRUE, FALSE); | ||
| 454 | ValidateExecuteUncachePackage(pPlan, fRollback, dwIndex++, L"PackageE"); | ||
| 455 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); | ||
| 456 | ValidateExecutePackageProvider(pPlan, fRollback, dwIndex++, L"PackageE", BURN_DEPENDENCY_ACTION_UNREGISTER); | ||
| 457 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); | ||
| 458 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); | ||
| 459 | Assert::Equal(dwIndex, pPlan->cRollbackActions); | ||
| 460 | |||
| 461 | Assert::Equal(0ul, pPlan->cExecutePackagesTotal); | ||
| 462 | Assert::Equal(1ul, pPlan->cOverallProgressTicksTotal); | ||
| 463 | |||
| 464 | dwIndex = 0; | ||
| 465 | Assert::Equal(dwIndex, pPlan->cCleanActions); | ||
| 466 | |||
| 467 | UINT uIndex = 0; | ||
| 468 | ValidatePlannedProvider(pPlan, uIndex++, L"{4a04385a-0081-44ba-acd1-9e4e95cfc97f}", NULL); | ||
| 469 | Assert::Equal(uIndex, pPlan->cPlannedProviders); | ||
| 470 | } | ||
| 471 | |||
| 472 | [Fact] | ||
| 401 | void SingleMsiInstallTest() | 473 | void SingleMsiInstallTest() |
| 402 | { | 474 | { |
| 403 | HRESULT hr = S_OK; | 475 | HRESULT hr = S_OK; |
