aboutsummaryrefslogtreecommitdiff
path: root/src/test
diff options
context:
space:
mode:
authorSean Hall <r.sean.hall@gmail.com>2021-04-16 10:09:26 -0500
committerSean Hall <r.sean.hall@gmail.com>2021-04-19 23:12:55 -0500
commit90cdf39e6e6b7d676ca33bee031fa2b865bb5fbd (patch)
tree901feb035d5ea9a13f306582cedd6668b539953f /src/test
parentc88806b89293f5bb92c42e90230e48be6b79b7f4 (diff)
downloadwix-90cdf39e6e6b7d676ca33bee031fa2b865bb5fbd.tar.gz
wix-90cdf39e6e6b7d676ca33bee031fa2b865bb5fbd.tar.bz2
wix-90cdf39e6e6b7d676ca33bee031fa2b865bb5fbd.zip
Don't plan payloads.
Contributes to #3640 and #5253
Diffstat (limited to 'src/test')
-rw-r--r--src/test/BurnUnitTest/PlanTest.cpp211
1 files changed, 41 insertions, 170 deletions
diff --git a/src/test/BurnUnitTest/PlanTest.cpp b/src/test/BurnUnitTest/PlanTest.cpp
index 2ebbca74..aa9deaf6 100644
--- a/src/test/BurnUnitTest/PlanTest.cpp
+++ b/src/test/BurnUnitTest/PlanTest.cpp
@@ -54,47 +54,30 @@ namespace Bootstrapper
54 54
55 BOOL fRollback = FALSE; 55 BOOL fRollback = FALSE;
56 DWORD dwIndex = 0; 56 DWORD dwIndex = 0;
57 DWORD dwPackageStart = 0;
58 ValidateCacheCheckpoint(pPlan, fRollback, dwIndex++, 1); 57 ValidateCacheCheckpoint(pPlan, fRollback, dwIndex++, 1);
59 dwPackageStart = ValidateCachePackageStart(pPlan, fRollback, dwIndex++, L"PackageA", 6, 2, 33743, FALSE); 58 ValidateCachePackage(pPlan, fRollback, dwIndex++, L"PackageA");
60 ValidateCacheAcquireContainer(pPlan, fRollback, dwIndex++, L"WixAttachedContainer", FALSE); 59 ValidateCacheSignalSyncpoint(pPlan, fRollback, dwIndex++);
61 ValidateCacheExtractContainer(pPlan, fRollback, dwIndex++, L"WixAttachedContainer", FALSE, dwPackageStart, 6);
62 ValidateCacheCachePayload(pPlan, fRollback, dwIndex++, L"PackageA", L"PackageA", TRUE, FALSE, dwPackageStart);
63 ValidateCacheCachePayload(pPlan, fRollback, dwIndex++, L"PackageA", L"cab9Ins_fTP3wNwq5Gxo41ch5VUPaQ", TRUE, FALSE, dwPackageStart);
64 ValidateCachePackageStop(pPlan, fRollback, dwIndex++, L"PackageA", FALSE);
65 ValidateCacheSignalSyncpoint(pPlan, fRollback, dwIndex++, FALSE);
66 ValidateCacheCheckpoint(pPlan, fRollback, dwIndex++, 9); 60 ValidateCacheCheckpoint(pPlan, fRollback, dwIndex++, 9);
67 dwPackageStart = ValidateCachePackageStart(pPlan, fRollback, dwIndex++, L"PackageB", 14, 2, 33743, FALSE); 61 ValidateCachePackage(pPlan, fRollback, dwIndex++, L"PackageB");
68 ValidateCacheAcquireContainer(pPlan, fRollback, dwIndex++, L"WixAttachedContainer", TRUE); 62 ValidateCacheSignalSyncpoint(pPlan, fRollback, dwIndex++);
69 ValidateCacheExtractContainer(pPlan, fRollback, dwIndex++, L"WixAttachedContainer", FALSE, dwPackageStart, 2);
70 ValidateCacheCachePayload(pPlan, fRollback, dwIndex++, L"PackageB", L"PackageB", TRUE, FALSE, dwPackageStart);
71 ValidateCacheCachePayload(pPlan, fRollback, dwIndex++, L"PackageB", L"cablKtJUKxAbhSMIBwQU6vJ_CDsIkE", TRUE, FALSE, dwPackageStart);
72 ValidateCachePackageStop(pPlan, fRollback, dwIndex++, L"PackageB", FALSE);
73 ValidateCacheSignalSyncpoint(pPlan, fRollback, dwIndex++, FALSE);
74 ValidateCacheCheckpoint(pPlan, fRollback, dwIndex++, 14); 63 ValidateCacheCheckpoint(pPlan, fRollback, dwIndex++, 14);
75 dwPackageStart = ValidateCachePackageStart(pPlan, fRollback, dwIndex++, L"PackageC", 22, 2, 33743, FALSE); 64 ValidateCachePackage(pPlan, fRollback, dwIndex++, L"PackageC");
76 ValidateCacheAcquireContainer(pPlan, fRollback, dwIndex++, L"WixAttachedContainer", TRUE); 65 ValidateCacheSignalSyncpoint(pPlan, fRollback, dwIndex++);
77 ValidateCacheExtractContainer(pPlan, fRollback, dwIndex++, L"WixAttachedContainer", FALSE, dwPackageStart, 2); 66 Assert::Equal(dwIndex, pPlan->cCacheActions);
78 ValidateCacheCachePayload(pPlan, fRollback, dwIndex++, L"PackageC", L"PackageC", TRUE, FALSE, dwPackageStart);
79 ValidateCacheCachePayload(pPlan, fRollback, dwIndex++, L"PackageC", L"cab3wekki1le1R8RPDV2B8_g8jcjZc", TRUE, FALSE, dwPackageStart);
80 ValidateCachePackageStop(pPlan, fRollback, dwIndex++, L"PackageC", FALSE);
81 ValidateCacheSignalSyncpoint(pPlan, fRollback, dwIndex++, FALSE);
82 Assert::Equal(24ul, pPlan->cCacheActions);
83 67
84 fRollback = TRUE; 68 fRollback = TRUE;
85 dwIndex = 0; 69 dwIndex = 0;
86 ValidateCacheCheckpoint(pPlan, fRollback, dwIndex++, 1); 70 ValidateCacheCheckpoint(pPlan, fRollback, dwIndex++, 1);
87 ValidateCacheRollbackPackage(pPlan, fRollback, dwIndex++, L"PackageA", FALSE);
88 Assert::Equal(dwIndex, pPlan->cRollbackCacheActions); 71 Assert::Equal(dwIndex, pPlan->cRollbackCacheActions);
89 72
90 Assert::Equal(107082ull, pPlan->qwEstimatedSize); 73 Assert::Equal(107082ull, pPlan->qwEstimatedSize);
91 Assert::Equal(101229ull, pPlan->qwCacheSizeTotal); 74 Assert::Equal(202458ull, pPlan->qwCacheSizeTotal);
92 75
93 fRollback = FALSE; 76 fRollback = FALSE;
94 dwIndex = 0; 77 dwIndex = 0;
95 DWORD dwExecuteCheckpointId = 2; 78 DWORD dwExecuteCheckpointId = 2;
96 ValidateExecuteRollbackBoundary(pPlan, fRollback, dwIndex++, L"WixDefaultBoundary", TRUE, FALSE); 79 ValidateExecuteRollbackBoundary(pPlan, fRollback, dwIndex++, L"WixDefaultBoundary", TRUE, FALSE);
97 ValidateExecuteWaitSyncpoint(pPlan, fRollback, dwIndex++, pPlan->rgCacheActions[7].syncpoint.hEvent); 80 ValidateExecuteWaitSyncpoint(pPlan, fRollback, dwIndex++, pPlan->rgCacheActions[2].syncpoint.hEvent);
98 ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); 81 ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++);
99 ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); 82 ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++);
100 ValidateExecutePackageProvider(pPlan, fRollback, dwIndex++, L"PackageA", BURN_DEPENDENCY_ACTION_REGISTER); 83 ValidateExecutePackageProvider(pPlan, fRollback, dwIndex++, L"PackageA", BURN_DEPENDENCY_ACTION_REGISTER);
@@ -107,7 +90,7 @@ namespace Bootstrapper
107 ValidateExecuteRollbackBoundary(pPlan, fRollback, dwIndex++, L"rbaOCA08D8ky7uBOK71_6FWz1K3TuQ", TRUE, TRUE); 90 ValidateExecuteRollbackBoundary(pPlan, fRollback, dwIndex++, L"rbaOCA08D8ky7uBOK71_6FWz1K3TuQ", TRUE, TRUE);
108 ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); 91 ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++);
109 ValidateExecuteBeginMsiTransaction(pPlan, fRollback, dwIndex++, L"rbaOCA08D8ky7uBOK71_6FWz1K3TuQ"); 92 ValidateExecuteBeginMsiTransaction(pPlan, fRollback, dwIndex++, L"rbaOCA08D8ky7uBOK71_6FWz1K3TuQ");
110 ValidateExecuteWaitSyncpoint(pPlan, fRollback, dwIndex++, pPlan->rgCacheActions[15].syncpoint.hEvent); 93 ValidateExecuteWaitSyncpoint(pPlan, fRollback, dwIndex++, pPlan->rgCacheActions[5].syncpoint.hEvent);
111 dwExecuteCheckpointId += 1; // cache checkpoints 94 dwExecuteCheckpointId += 1; // cache checkpoints
112 ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); 95 ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++);
113 ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); 96 ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++);
@@ -116,7 +99,7 @@ namespace Bootstrapper
116 ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); 99 ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++);
117 ValidateExecutePackageDependency(pPlan, fRollback, dwIndex++, L"PackageB", L"{E6469F05-BDC8-4EB8-B218-67412543EFAA}", BURN_DEPENDENCY_ACTION_REGISTER); 100 ValidateExecutePackageDependency(pPlan, fRollback, dwIndex++, L"PackageB", L"{E6469F05-BDC8-4EB8-B218-67412543EFAA}", BURN_DEPENDENCY_ACTION_REGISTER);
118 ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); 101 ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++);
119 ValidateExecuteWaitSyncpoint(pPlan, fRollback, dwIndex++, pPlan->rgCacheActions[23].syncpoint.hEvent); 102 ValidateExecuteWaitSyncpoint(pPlan, fRollback, dwIndex++, pPlan->rgCacheActions[8].syncpoint.hEvent);
120 dwExecuteCheckpointId += 1; // cache checkpoints 103 dwExecuteCheckpointId += 1; // cache checkpoints
121 ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); 104 ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++);
122 ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); 105 ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++);
@@ -314,30 +297,24 @@ namespace Bootstrapper
314 297
315 BOOL fRollback = FALSE; 298 BOOL fRollback = FALSE;
316 DWORD dwIndex = 0; 299 DWORD dwIndex = 0;
317 DWORD dwPackageStart = 0;
318 ValidateCacheCheckpoint(pPlan, fRollback, dwIndex++, 1); 300 ValidateCacheCheckpoint(pPlan, fRollback, dwIndex++, 1);
319 dwPackageStart = ValidateCachePackageStart(pPlan, fRollback, dwIndex++, L"PackageA", 5, 2, 33743, FALSE); 301 ValidateCachePackage(pPlan, fRollback, dwIndex++, L"PackageA");
320 ValidateCacheExtractContainer(pPlan, fRollback, dwIndex++, L"WixAttachedContainer", FALSE, BURN_PLAN_INVALID_ACTION_INDEX, 2); 302 ValidateCacheSignalSyncpoint(pPlan, fRollback, dwIndex++);
321 ValidateCacheCachePayload(pPlan, fRollback, dwIndex++, L"PackageA", L"PackageA", TRUE, FALSE, dwPackageStart);
322 ValidateCacheCachePayload(pPlan, fRollback, dwIndex++, L"PackageA", L"cab9Ins_fTP3wNwq5Gxo41ch5VUPaQ", TRUE, FALSE, dwPackageStart);
323 ValidateCachePackageStop(pPlan, fRollback, dwIndex++, L"PackageA", FALSE);
324 ValidateCacheSignalSyncpoint(pPlan, fRollback, dwIndex++, FALSE);
325 Assert::Equal(dwIndex, pPlan->cCacheActions); 303 Assert::Equal(dwIndex, pPlan->cCacheActions);
326 304
327 fRollback = TRUE; 305 fRollback = TRUE;
328 dwIndex = 0; 306 dwIndex = 0;
329 ValidateCacheCheckpoint(pPlan, fRollback, dwIndex++, 1); 307 ValidateCacheCheckpoint(pPlan, fRollback, dwIndex++, 1);
330 ValidateCacheRollbackPackage(pPlan, fRollback, dwIndex++, L"PackageA", FALSE);
331 Assert::Equal(dwIndex, pPlan->cRollbackCacheActions); 308 Assert::Equal(dwIndex, pPlan->cRollbackCacheActions);
332 309
333 Assert::Equal(35694ull, pPlan->qwEstimatedSize); 310 Assert::Equal(35694ull, pPlan->qwEstimatedSize);
334 Assert::Equal(33743ull, pPlan->qwCacheSizeTotal); 311 Assert::Equal(67486ull, pPlan->qwCacheSizeTotal);
335 312
336 fRollback = FALSE; 313 fRollback = FALSE;
337 dwIndex = 0; 314 dwIndex = 0;
338 DWORD dwExecuteCheckpointId = 2; 315 DWORD dwExecuteCheckpointId = 2;
339 ValidateExecuteRollbackBoundary(pPlan, fRollback, dwIndex++, L"WixDefaultBoundary", TRUE, FALSE); 316 ValidateExecuteRollbackBoundary(pPlan, fRollback, dwIndex++, L"WixDefaultBoundary", TRUE, FALSE);
340 ValidateExecuteWaitSyncpoint(pPlan, fRollback, dwIndex++, pPlan->rgCacheActions[6].syncpoint.hEvent); 317 ValidateExecuteWaitSyncpoint(pPlan, fRollback, dwIndex++, pPlan->rgCacheActions[2].syncpoint.hEvent);
341 ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); 318 ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++);
342 ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); 319 ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++);
343 ValidateExecutePackageProvider(pPlan, fRollback, dwIndex++, L"PackageA", BURN_DEPENDENCY_ACTION_REGISTER); 320 ValidateExecutePackageProvider(pPlan, fRollback, dwIndex++, L"PackageA", BURN_DEPENDENCY_ACTION_REGISTER);
@@ -401,14 +378,9 @@ namespace Bootstrapper
401 378
402 BOOL fRollback = FALSE; 379 BOOL fRollback = FALSE;
403 DWORD dwIndex = 0; 380 DWORD dwIndex = 0;
404 DWORD dwPackageStart = 0;
405 ValidateCacheCheckpoint(pPlan, fRollback, dwIndex++, 1); 381 ValidateCacheCheckpoint(pPlan, fRollback, dwIndex++, 1);
406 dwPackageStart = ValidateCachePackageStart(pPlan, fRollback, dwIndex++, L"PackageA", 5, 2, 33743, FALSE); 382 ValidateCachePackage(pPlan, fRollback, dwIndex++, L"PackageA");
407 ValidateCacheExtractContainer(pPlan, fRollback, dwIndex++, L"WixAttachedContainer", FALSE, BURN_PLAN_INVALID_ACTION_INDEX, 2); 383 ValidateCacheSignalSyncpoint(pPlan, fRollback, dwIndex++);
408 ValidateCacheCachePayload(pPlan, fRollback, dwIndex++, L"PackageA", L"PackageA", TRUE, FALSE, dwPackageStart);
409 ValidateCacheCachePayload(pPlan, fRollback, dwIndex++, L"PackageA", L"cab9Ins_fTP3wNwq5Gxo41ch5VUPaQ", TRUE, FALSE, dwPackageStart);
410 ValidateCachePackageStop(pPlan, fRollback, dwIndex++, L"PackageA", FALSE);
411 ValidateCacheSignalSyncpoint(pPlan, fRollback, dwIndex++, FALSE);
412 Assert::Equal(dwIndex, pPlan->cCacheActions); 384 Assert::Equal(dwIndex, pPlan->cCacheActions);
413 385
414 fRollback = TRUE; 386 fRollback = TRUE;
@@ -416,13 +388,13 @@ namespace Bootstrapper
416 Assert::Equal(dwIndex, pPlan->cRollbackCacheActions); 388 Assert::Equal(dwIndex, pPlan->cRollbackCacheActions);
417 389
418 Assert::Equal(33743ull, pPlan->qwEstimatedSize); 390 Assert::Equal(33743ull, pPlan->qwEstimatedSize);
419 Assert::Equal(33743ull, pPlan->qwCacheSizeTotal); 391 Assert::Equal(67486ull, pPlan->qwCacheSizeTotal);
420 392
421 fRollback = FALSE; 393 fRollback = FALSE;
422 dwIndex = 0; 394 dwIndex = 0;
423 DWORD dwExecuteCheckpointId = 2; 395 DWORD dwExecuteCheckpointId = 2;
424 ValidateExecuteRollbackBoundary(pPlan, fRollback, dwIndex++, L"WixDefaultBoundary", TRUE, FALSE); 396 ValidateExecuteRollbackBoundary(pPlan, fRollback, dwIndex++, L"WixDefaultBoundary", TRUE, FALSE);
425 ValidateExecuteWaitSyncpoint(pPlan, fRollback, dwIndex++, pPlan->rgCacheActions[6].syncpoint.hEvent); 397 ValidateExecuteWaitSyncpoint(pPlan, fRollback, dwIndex++, pPlan->rgCacheActions[2].syncpoint.hEvent);
426 ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); 398 ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++);
427 ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); 399 ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++);
428 ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); 400 ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++);
@@ -475,30 +447,24 @@ namespace Bootstrapper
475 447
476 BOOL fRollback = FALSE; 448 BOOL fRollback = FALSE;
477 DWORD dwIndex = 0; 449 DWORD dwIndex = 0;
478 DWORD dwPackageStart = 0;
479 ValidateCacheCheckpoint(pPlan, fRollback, dwIndex++, 1); 450 ValidateCacheCheckpoint(pPlan, fRollback, dwIndex++, 1);
480 dwPackageStart = ValidateCachePackageStart(pPlan, fRollback, dwIndex++, L"PackageA", 5, 2, 33743, FALSE); 451 ValidateCachePackage(pPlan, fRollback, dwIndex++, L"PackageA");
481 ValidateCacheExtractContainer(pPlan, fRollback, dwIndex++, L"WixAttachedContainer", FALSE, BURN_PLAN_INVALID_ACTION_INDEX, 2); 452 ValidateCacheSignalSyncpoint(pPlan, fRollback, dwIndex++);
482 ValidateCacheCachePayload(pPlan, fRollback, dwIndex++, L"PackageA", L"PackageA", TRUE, FALSE, dwPackageStart);
483 ValidateCacheCachePayload(pPlan, fRollback, dwIndex++, L"PackageA", L"cab9Ins_fTP3wNwq5Gxo41ch5VUPaQ", TRUE, FALSE, dwPackageStart);
484 ValidateCachePackageStop(pPlan, fRollback, dwIndex++, L"PackageA", FALSE);
485 ValidateCacheSignalSyncpoint(pPlan, fRollback, dwIndex++, FALSE);
486 Assert::Equal(dwIndex, pPlan->cCacheActions); 453 Assert::Equal(dwIndex, pPlan->cCacheActions);
487 454
488 fRollback = TRUE; 455 fRollback = TRUE;
489 dwIndex = 0; 456 dwIndex = 0;
490 ValidateCacheCheckpoint(pPlan, fRollback, dwIndex++, 1); 457 ValidateCacheCheckpoint(pPlan, fRollback, dwIndex++, 1);
491 ValidateCacheRollbackPackage(pPlan, fRollback, dwIndex++, L"PackageA", FALSE);
492 Assert::Equal(dwIndex, pPlan->cRollbackCacheActions); 458 Assert::Equal(dwIndex, pPlan->cRollbackCacheActions);
493 459
494 Assert::Equal(35694ull, pPlan->qwEstimatedSize); 460 Assert::Equal(35694ull, pPlan->qwEstimatedSize);
495 Assert::Equal(33743ull, pPlan->qwCacheSizeTotal); 461 Assert::Equal(67486ull, pPlan->qwCacheSizeTotal);
496 462
497 fRollback = FALSE; 463 fRollback = FALSE;
498 dwIndex = 0; 464 dwIndex = 0;
499 DWORD dwExecuteCheckpointId = 2; 465 DWORD dwExecuteCheckpointId = 2;
500 ValidateExecuteRollbackBoundary(pPlan, fRollback, dwIndex++, L"WixDefaultBoundary", TRUE, FALSE); 466 ValidateExecuteRollbackBoundary(pPlan, fRollback, dwIndex++, L"WixDefaultBoundary", TRUE, FALSE);
501 ValidateExecuteWaitSyncpoint(pPlan, fRollback, dwIndex++, pPlan->rgCacheActions[6].syncpoint.hEvent); 467 ValidateExecuteWaitSyncpoint(pPlan, fRollback, dwIndex++, pPlan->rgCacheActions[2].syncpoint.hEvent);
502 ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); 468 ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++);
503 ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); 469 ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++);
504 ValidateExecutePackageProvider(pPlan, fRollback, dwIndex++, L"PackageA", BURN_DEPENDENCY_ACTION_REGISTER); 470 ValidateExecutePackageProvider(pPlan, fRollback, dwIndex++, L"PackageA", BURN_DEPENDENCY_ACTION_REGISTER);
@@ -759,36 +725,28 @@ namespace Bootstrapper
759 725
760 BOOL fRollback = FALSE; 726 BOOL fRollback = FALSE;
761 DWORD dwIndex = 0; 727 DWORD dwIndex = 0;
762 DWORD dwPackageStart = 0;
763 ValidateCacheCheckpoint(pPlan, fRollback, dwIndex++, 1); 728 ValidateCacheCheckpoint(pPlan, fRollback, dwIndex++, 1);
764 dwPackageStart = ValidateCachePackageStart(pPlan, fRollback, dwIndex++, L"PatchA", 4, 1, 20480, FALSE); 729 ValidateCachePackage(pPlan, fRollback, dwIndex++, L"PatchA");
765 ValidateCacheAcquirePayload(pPlan, fRollback, dwIndex++, L"PatchA", L"PatchA", FALSE); 730 ValidateCacheSignalSyncpoint(pPlan, fRollback, dwIndex++);
766 ValidateCacheCachePayload(pPlan, fRollback, dwIndex++, L"PatchA", L"PatchA", TRUE, FALSE, dwPackageStart);
767 ValidateCachePackageStop(pPlan, fRollback, dwIndex++, L"PatchA", FALSE);
768 ValidateCacheSignalSyncpoint(pPlan, fRollback, dwIndex++, FALSE);
769 ValidateCacheCheckpoint(pPlan, fRollback, dwIndex++, 2); 731 ValidateCacheCheckpoint(pPlan, fRollback, dwIndex++, 2);
770 dwPackageStart = ValidateCachePackageStart(pPlan, fRollback, dwIndex++, L"PackageA", 10, 1, 32768, FALSE); 732 ValidateCachePackage(pPlan, fRollback, dwIndex++, L"PackageA");
771 ValidateCacheAcquirePayload(pPlan, fRollback, dwIndex++, L"PackageA", L"PackageA", FALSE); 733 ValidateCacheSignalSyncpoint(pPlan, fRollback, dwIndex++);
772 ValidateCacheCachePayload(pPlan, fRollback, dwIndex++, L"PackageA", L"PackageA", TRUE, FALSE, dwPackageStart);
773 ValidateCachePackageStop(pPlan, fRollback, dwIndex++, L"PackageA", FALSE);
774 ValidateCacheSignalSyncpoint(pPlan, fRollback, dwIndex++, FALSE);
775 Assert::Equal(dwIndex, pPlan->cCacheActions); 734 Assert::Equal(dwIndex, pPlan->cCacheActions);
776 735
777 fRollback = TRUE; 736 fRollback = TRUE;
778 dwIndex = 0; 737 dwIndex = 0;
779 ValidateCacheCheckpoint(pPlan, fRollback, dwIndex++, 2); 738 ValidateCacheCheckpoint(pPlan, fRollback, dwIndex++, 2);
780 ValidateCacheRollbackPackage(pPlan, fRollback, dwIndex++, L"PackageA", FALSE);
781 Assert::Equal(dwIndex, pPlan->cRollbackCacheActions); 739 Assert::Equal(dwIndex, pPlan->cRollbackCacheActions);
782 740
783 Assert::Equal(3055111ull, pPlan->qwEstimatedSize); 741 Assert::Equal(3055111ull, pPlan->qwEstimatedSize);
784 Assert::Equal(53248ull, pPlan->qwCacheSizeTotal); 742 Assert::Equal(106496ull, pPlan->qwCacheSizeTotal);
785 743
786 fRollback = FALSE; 744 fRollback = FALSE;
787 dwIndex = 0; 745 dwIndex = 0;
788 DWORD dwExecuteCheckpointId = 3; 746 DWORD dwExecuteCheckpointId = 3;
789 BURN_EXECUTE_ACTION* pExecuteAction = NULL; 747 BURN_EXECUTE_ACTION* pExecuteAction = NULL;
790 ValidateExecuteRollbackBoundary(pPlan, fRollback, dwIndex++, L"WixDefaultBoundary", TRUE, FALSE); 748 ValidateExecuteRollbackBoundary(pPlan, fRollback, dwIndex++, L"WixDefaultBoundary", TRUE, FALSE);
791 ValidateExecuteWaitSyncpoint(pPlan, fRollback, dwIndex++, pPlan->rgCacheActions[11].syncpoint.hEvent); 749 ValidateExecuteWaitSyncpoint(pPlan, fRollback, dwIndex++, pPlan->rgCacheActions[5].syncpoint.hEvent);
792 ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); 750 ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++);
793 ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); 751 ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++);
794 ValidateExecutePackageProvider(pPlan, fRollback, dwIndex++, L"PackageA", BURN_DEPENDENCY_ACTION_REGISTER); 752 ValidateExecutePackageProvider(pPlan, fRollback, dwIndex++, L"PackageA", BURN_DEPENDENCY_ACTION_REGISTER);
@@ -797,7 +755,7 @@ namespace Bootstrapper
797 ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); 755 ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++);
798 ValidateExecutePackageDependency(pPlan, fRollback, dwIndex++, L"PackageA", L"{22D1DDBA-284D-40A7-BD14-95EA07906F21}", BURN_DEPENDENCY_ACTION_REGISTER); 756 ValidateExecutePackageDependency(pPlan, fRollback, dwIndex++, L"PackageA", L"{22D1DDBA-284D-40A7-BD14-95EA07906F21}", BURN_DEPENDENCY_ACTION_REGISTER);
799 ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); 757 ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++);
800 ValidateExecuteWaitSyncpoint(pPlan, fRollback, dwIndex++, pPlan->rgCacheActions[5].syncpoint.hEvent); 758 ValidateExecuteWaitSyncpoint(pPlan, fRollback, dwIndex++, pPlan->rgCacheActions[2].syncpoint.hEvent);
801 ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); 759 ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++);
802 ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); 760 ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++);
803 ValidateExecutePackageProvider(pPlan, fRollback, dwIndex++, L"PatchA", BURN_DEPENDENCY_ACTION_REGISTER); 761 ValidateExecutePackageProvider(pPlan, fRollback, dwIndex++, L"PatchA", BURN_DEPENDENCY_ACTION_REGISTER);
@@ -983,7 +941,7 @@ namespace Bootstrapper
983 BURN_REGISTRATION* pRegistration = &pEngineState->registration; 941 BURN_REGISTRATION* pRegistration = &pEngineState->registration;
984 942
985 DetectReset(pRegistration, &pEngineState->packages); 943 DetectReset(pRegistration, &pEngineState->packages);
986 PlanReset(&pEngineState->plan, &pEngineState->packages); 944 PlanReset(&pEngineState->plan, &pEngineState->containers, &pEngineState->packages, &pEngineState->layoutPayloads);
987 945
988 hr = DepDependencyArrayAlloc(&pRegistration->rgIgnoredDependencies, &pRegistration->cIgnoredDependencies, pRegistration->sczProviderKey, NULL); 946 hr = DepDependencyArrayAlloc(&pRegistration->rgIgnoredDependencies, &pRegistration->cIgnoredDependencies, pRegistration->sczProviderKey, NULL);
989 NativeAssert::Succeeded(hr, "Failed to add the bundle provider key to the list of dependencies to ignore."); 947 NativeAssert::Succeeded(hr, "Failed to add the bundle provider key to the list of dependencies to ignore.");
@@ -1047,11 +1005,6 @@ namespace Bootstrapper
1047 pPackage->cacheRegistrationState = BURN_PACKAGE_REGISTRATION_STATE_PRESENT; 1005 pPackage->cacheRegistrationState = BURN_PACKAGE_REGISTRATION_STATE_PRESENT;
1048 pPackage->installRegistrationState = BURN_PACKAGE_REGISTRATION_STATE_PRESENT; 1006 pPackage->installRegistrationState = BURN_PACKAGE_REGISTRATION_STATE_PRESENT;
1049 } 1007 }
1050
1051 for (DWORD i = 0; i < pPackage->cPayloads; ++i)
1052 {
1053 pPackage->rgPayloads[i].fCached = TRUE;
1054 }
1055 } 1008 }
1056 1009
1057 void DetectPackageDependent(BURN_PACKAGE* pPackage, LPCWSTR wzId) 1010 void DetectPackageDependent(BURN_PACKAGE* pPackage, LPCWSTR wzId)
@@ -1186,34 +1139,16 @@ namespace Bootstrapper
1186 } 1139 }
1187 } 1140 }
1188 1141
1189 void ValidateCacheAcquireContainer( 1142 void ValidateCacheContainer(
1190 __in BURN_PLAN* pPlan,
1191 __in BOOL fRollback,
1192 __in DWORD dwIndex,
1193 __in LPCWSTR wzContainerId,
1194 __in BOOL fSkipUntilRetried
1195 )
1196 {
1197 BURN_CACHE_ACTION* pAction = ValidateCacheActionExists(pPlan, fRollback, dwIndex);
1198 Assert::Equal<DWORD>(BURN_CACHE_ACTION_TYPE_ACQUIRE_CONTAINER, pAction->type);
1199 NativeAssert::StringEqual(wzContainerId, pAction->resolveContainer.pContainer->sczId);
1200 Assert::Equal<BOOL>(fSkipUntilRetried, pAction->fSkipUntilRetried);
1201 }
1202
1203 void ValidateCacheAcquirePayload(
1204 __in BURN_PLAN* pPlan, 1143 __in BURN_PLAN* pPlan,
1205 __in BOOL fRollback, 1144 __in BOOL fRollback,
1206 __in DWORD dwIndex, 1145 __in DWORD dwIndex,
1207 __in LPCWSTR wzPackageId, 1146 __in LPCWSTR wzContainerId
1208 __in LPCWSTR wzPayloadId,
1209 __in BOOL fSkipUntilRetried
1210 ) 1147 )
1211 { 1148 {
1212 BURN_CACHE_ACTION* pAction = ValidateCacheActionExists(pPlan, fRollback, dwIndex); 1149 BURN_CACHE_ACTION* pAction = ValidateCacheActionExists(pPlan, fRollback, dwIndex);
1213 Assert::Equal<DWORD>(BURN_CACHE_ACTION_TYPE_ACQUIRE_PAYLOAD, pAction->type); 1150 Assert::Equal<DWORD>(BURN_CACHE_ACTION_TYPE_CONTAINER, pAction->type);
1214 NativeAssert::StringEqual(wzPackageId, pAction->resolvePayload.pPackage->sczId); 1151 NativeAssert::StringEqual(wzContainerId, pAction->container.pContainer->sczId);
1215 NativeAssert::StringEqual(wzPayloadId, pAction->resolvePayload.pPayload->sczKey);
1216 Assert::Equal<BOOL>(fSkipUntilRetried, pAction->fSkipUntilRetried);
1217 } 1152 }
1218 1153
1219 BURN_CACHE_ACTION* ValidateCacheActionExists(BURN_PLAN* pPlan, BOOL fRollback, DWORD dwIndex) 1154 BURN_CACHE_ACTION* ValidateCacheActionExists(BURN_PLAN* pPlan, BOOL fRollback, DWORD dwIndex)
@@ -1222,26 +1157,6 @@ namespace Bootstrapper
1222 return (fRollback ? pPlan->rgRollbackCacheActions : pPlan->rgCacheActions) + dwIndex; 1157 return (fRollback ? pPlan->rgRollbackCacheActions : pPlan->rgCacheActions) + dwIndex;
1223 } 1158 }
1224 1159
1225 void ValidateCacheCachePayload(
1226 __in BURN_PLAN* pPlan,
1227 __in BOOL fRollback,
1228 __in DWORD dwIndex,
1229 __in LPCWSTR wzPackageId,
1230 __in LPCWSTR wzPayloadId,
1231 __in BOOL fMove,
1232 __in BOOL fSkipUntilRetried,
1233 __in DWORD iTryAgainAction
1234 )
1235 {
1236 BURN_CACHE_ACTION* pAction = ValidateCacheActionExists(pPlan, fRollback, dwIndex);
1237 Assert::Equal<DWORD>(BURN_CACHE_ACTION_TYPE_CACHE_PAYLOAD, pAction->type);
1238 NativeAssert::StringEqual(wzPackageId, pAction->cachePayload.pPackage->sczId);
1239 NativeAssert::StringEqual(wzPayloadId, pAction->cachePayload.pPayload->sczKey);
1240 Assert::Equal<BOOL>(fMove, pAction->cachePayload.fMove);
1241 Assert::Equal<BOOL>(fSkipUntilRetried, pAction->fSkipUntilRetried);
1242 Assert::Equal(iTryAgainAction, pAction->cachePayload.iTryAgainAction);
1243 }
1244
1245 void ValidateCacheCheckpoint( 1160 void ValidateCacheCheckpoint(
1246 __in BURN_PLAN* pPlan, 1161 __in BURN_PLAN* pPlan,
1247 __in BOOL fRollback, 1162 __in BOOL fRollback,
@@ -1254,84 +1169,40 @@ namespace Bootstrapper
1254 Assert::Equal(dwId, pAction->checkpoint.dwId); 1169 Assert::Equal(dwId, pAction->checkpoint.dwId);
1255 } 1170 }
1256 1171
1257 void ValidateCacheExtractContainer( 1172 DWORD ValidateCachePackage(
1258 __in BURN_PLAN* pPlan,
1259 __in BOOL fRollback,
1260 __in DWORD dwIndex,
1261 __in LPCWSTR wzContainerId,
1262 __in BOOL fSkipUntilRetried,
1263 __in DWORD iSkipUntilAcquiredByAction,
1264 __in DWORD cPayloads
1265 )
1266 {
1267 BURN_CACHE_ACTION* pAction = ValidateCacheActionExists(pPlan, fRollback, dwIndex);
1268 Assert::Equal<DWORD>(BURN_CACHE_ACTION_TYPE_EXTRACT_CONTAINER, pAction->type);
1269 NativeAssert::StringEqual(wzContainerId, pAction->extractContainer.pContainer->sczId);
1270 Assert::Equal<BOOL>(fSkipUntilRetried, pAction->fSkipUntilRetried);
1271 Assert::Equal(iSkipUntilAcquiredByAction, pAction->extractContainer.iSkipUntilAcquiredByAction);
1272 Assert::Equal(cPayloads, pAction->extractContainer.cPayloads);
1273 }
1274
1275 DWORD ValidateCachePackageStart(
1276 __in BURN_PLAN* pPlan, 1173 __in BURN_PLAN* pPlan,
1277 __in BOOL fRollback, 1174 __in BOOL fRollback,
1278 __in DWORD dwIndex, 1175 __in DWORD dwIndex,
1279 __in LPCWSTR wzPackageId, 1176 __in LPCWSTR wzPackageId
1280 __in DWORD iPackageCompleteAction,
1281 __in DWORD cCachePayloads,
1282 __in DWORD64 qwCachePayloadSizeTotal,
1283 __in BOOL fSkipUntilRetried
1284 ) 1177 )
1285 { 1178 {
1286 BURN_CACHE_ACTION* pAction = ValidateCacheActionExists(pPlan, fRollback, dwIndex); 1179 BURN_CACHE_ACTION* pAction = ValidateCacheActionExists(pPlan, fRollback, dwIndex);
1287 Assert::Equal<DWORD>(BURN_CACHE_ACTION_TYPE_PACKAGE_START, pAction->type); 1180 Assert::Equal<DWORD>(BURN_CACHE_ACTION_TYPE_PACKAGE, pAction->type);
1288 NativeAssert::StringEqual(wzPackageId, pAction->packageStart.pPackage->sczId); 1181 NativeAssert::StringEqual(wzPackageId, pAction->package.pPackage->sczId);
1289 Assert::Equal(iPackageCompleteAction, pAction->packageStart.iPackageCompleteAction);
1290 Assert::Equal(cCachePayloads, pAction->packageStart.cCachePayloads);
1291 Assert::Equal(qwCachePayloadSizeTotal, pAction->packageStart.qwCachePayloadSizeTotal);
1292 Assert::Equal<BOOL>(fSkipUntilRetried, pAction->fSkipUntilRetried);
1293 return dwIndex + 1; 1182 return dwIndex + 1;
1294 } 1183 }
1295 1184
1296 void ValidateCachePackageStop(
1297 __in BURN_PLAN* pPlan,
1298 __in BOOL fRollback,
1299 __in DWORD dwIndex,
1300 __in LPCWSTR wzPackageId,
1301 __in BOOL fSkipUntilRetried
1302 )
1303 {
1304 BURN_CACHE_ACTION* pAction = ValidateCacheActionExists(pPlan, fRollback, dwIndex);
1305 Assert::Equal<DWORD>(BURN_CACHE_ACTION_TYPE_PACKAGE_STOP, pAction->type);
1306 NativeAssert::StringEqual(wzPackageId, pAction->packageStop.pPackage->sczId);
1307 Assert::Equal<BOOL>(fSkipUntilRetried, pAction->fSkipUntilRetried);
1308 }
1309
1310 void ValidateCacheRollbackPackage( 1185 void ValidateCacheRollbackPackage(
1311 __in BURN_PLAN* pPlan, 1186 __in BURN_PLAN* pPlan,
1312 __in BOOL fRollback, 1187 __in BOOL fRollback,
1313 __in DWORD dwIndex, 1188 __in DWORD dwIndex,
1314 __in LPCWSTR wzPackageId, 1189 __in LPCWSTR wzPackageId
1315 __in BOOL fSkipUntilRetried
1316 ) 1190 )
1317 { 1191 {
1318 BURN_CACHE_ACTION* pAction = ValidateCacheActionExists(pPlan, fRollback, dwIndex); 1192 BURN_CACHE_ACTION* pAction = ValidateCacheActionExists(pPlan, fRollback, dwIndex);
1319 Assert::Equal<DWORD>(BURN_CACHE_ACTION_TYPE_ROLLBACK_PACKAGE, pAction->type); 1193 Assert::Equal<DWORD>(BURN_CACHE_ACTION_TYPE_ROLLBACK_PACKAGE, pAction->type);
1320 NativeAssert::StringEqual(wzPackageId, pAction->rollbackPackage.pPackage->sczId); 1194 NativeAssert::StringEqual(wzPackageId, pAction->rollbackPackage.pPackage->sczId);
1321 Assert::Equal<BOOL>(fSkipUntilRetried, pAction->fSkipUntilRetried);
1322 } 1195 }
1323 1196
1324 void ValidateCacheSignalSyncpoint( 1197 void ValidateCacheSignalSyncpoint(
1325 __in BURN_PLAN* pPlan, 1198 __in BURN_PLAN* pPlan,
1326 __in BOOL fRollback, 1199 __in BOOL fRollback,
1327 __in DWORD dwIndex, 1200 __in DWORD dwIndex
1328 __in BOOL fSkipUntilRetried
1329 ) 1201 )
1330 { 1202 {
1331 BURN_CACHE_ACTION* pAction = ValidateCacheActionExists(pPlan, fRollback, dwIndex); 1203 BURN_CACHE_ACTION* pAction = ValidateCacheActionExists(pPlan, fRollback, dwIndex);
1332 Assert::Equal<DWORD>(BURN_CACHE_ACTION_TYPE_SIGNAL_SYNCPOINT, pAction->type); 1204 Assert::Equal<DWORD>(BURN_CACHE_ACTION_TYPE_SIGNAL_SYNCPOINT, pAction->type);
1333 Assert::NotEqual((DWORD_PTR)NULL, (DWORD_PTR)pAction->syncpoint.hEvent); 1205 Assert::NotEqual((DWORD_PTR)NULL, (DWORD_PTR)pAction->syncpoint.hEvent);
1334 Assert::Equal<BOOL>(fSkipUntilRetried, pAction->fSkipUntilRetried);
1335 } 1206 }
1336 1207
1337 void ValidateCleanAction( 1208 void ValidateCleanAction(