diff options
Diffstat (limited to 'src/test/BurnUnitTest/PlanTest.cpp')
| -rw-r--r-- | src/test/BurnUnitTest/PlanTest.cpp | 300 |
1 files changed, 118 insertions, 182 deletions
diff --git a/src/test/BurnUnitTest/PlanTest.cpp b/src/test/BurnUnitTest/PlanTest.cpp index 5b3dca8d..71e455c3 100644 --- a/src/test/BurnUnitTest/PlanTest.cpp +++ b/src/test/BurnUnitTest/PlanTest.cpp | |||
| @@ -9,118 +9,8 @@ static HRESULT WINAPI PlanTestBAProc( | |||
| 9 | __in_opt LPVOID pvContext | 9 | __in_opt LPVOID pvContext |
| 10 | ); | 10 | ); |
| 11 | 11 | ||
| 12 | static LPCWSTR wzMsiTransactionManifest = | 12 | static LPCWSTR wzMsiTransactionManifestFileName = L"MsiTransaction_BundleAv1_manifest.xml"; |
| 13 | L"<Bundle>" | 13 | static LPCWSTR wzSingleMsiManifestFileName = L"BasicFunctionality_BundleA_manifest.xml"; |
| 14 | L" <Log PathVariable='WixBundleLog' Prefix='~manual_BundleA' Extension='log' />" | ||
| 15 | L" <RelatedBundle Id='{90ED10D5-B187-4470-B498-05D80DAB729A}' Action='Upgrade' />" | ||
| 16 | L" <Variable Id='TestName' Value='MsiTransaction' Type='string' Hidden='no' Persisted='no' />" | ||
| 17 | L" <Variable Id='WixBundleName' Hidden='no' Persisted='yes' />" | ||
| 18 | L" <Variable Id='WixBundleOriginalSource' Hidden='no' Persisted='yes' />" | ||
| 19 | L" <Variable Id='WixBundleOriginalSourceFolder' Hidden='no' Persisted='yes' />" | ||
| 20 | L" <Variable Id='WixBundleLastUsedSource' Hidden='no' Persisted='yes' />" | ||
| 21 | L" <UX>" | ||
| 22 | L" <Payload Id='WixStandardBootstrapperApplication.RtfLicense' FilePath='wixstdba.dll' FileSize='1312768' Hash='B331BC5C819F019981D2524C48CC370DE2BFE9F8' Packaging='embedded' SourcePath='u0' />" | ||
| 23 | L" <Payload Id='payF3wjO.aj6M8ftq9wrfYB1N4aw4g' FilePath='thm.xml' FileSize='8048' Hash='A712A9E1427A4EE1D0B68343A54019A3FC9967CB' Packaging='embedded' SourcePath='u1' />" | ||
| 24 | L" <Payload Id='payViPRdlZD7MPIBgwmX2Hv5C6oKt4' FilePath='thm.wxl' FileSize='3926' Hash='B88FAB9B6C2B52FBE017F91B0915781C6B76058E' Packaging='embedded' SourcePath='u2' />" | ||
| 25 | L" <Payload Id='payjqSD44latbvJnf4vAQuVMUST73A' FilePath='logo.png' FileSize='852' Hash='239F10674BF6022854C1F1BF7C91955BDE34D3E4' Packaging='embedded' SourcePath='u3' />" | ||
| 26 | L" <Payload Id='pay60yHh1x6HODo4M_38Pud7jhl2Ig' FilePath='license.rtf' FileSize='4908' Hash='383034848F8CC4F3C8E795CC0F4D716A285E9465' Packaging='embedded' SourcePath='u4' />" | ||
| 27 | L" <Payload Id='uxTxMXPVMXwQrPTMIGa5WGt93w0Ns' FilePath='BootstrapperApplicationData.xml' FileSize='6870' Hash='5302818DB5BD565463715D3C7099FE5123474476' Packaging='embedded' SourcePath='u5' />" | ||
| 28 | L" </UX>" | ||
| 29 | L" <Container Id='WixAttachedContainer' FileSize='9198' Hash='D932DEBC15B7EC41B3EB64DD075A1C7148C2BD6D' FilePath='BundleA.exe' AttachedIndex='1' Attached='yes' Primary='yes' />" | ||
| 30 | L" <Payload Id='PackageA' FilePath='~manual_PackageA.msi' FileSize='32768' Hash='4011C700186B4C162B2A50D981C895108AD67EBB' Packaging='embedded' SourcePath='a0' Container='WixAttachedContainer' />" | ||
| 31 | L" <Payload Id='PackageB' FilePath='~manual_PackageB.msi' FileSize='32768' Hash='0DA2766C6B5D2253A37675D89E6F15A70EDD18EB' Packaging='embedded' SourcePath='a1' Container='WixAttachedContainer' />" | ||
| 32 | L" <Payload Id='PackageC' FilePath='~manual_PackageC.msi' FileSize='32768' Hash='B5E1B37DCF08B7D88F2EB45D063513BDE052E5E4' Packaging='embedded' SourcePath='a2' Container='WixAttachedContainer' />" | ||
| 33 | L" <Payload Id='cab1QmlL013Hqv_44W64R0cvnHn_2c' FilePath='cab1.cab' FileSize='973' Hash='7A51FCEDBCD0A697A94F0C47A89BDD5EFCC0CB4B' Packaging='embedded' SourcePath='a3' Container='WixAttachedContainer' />" | ||
| 34 | L" <Payload Id='cabQH1Sgh7w2K8tLIftUaaWVhMWt0s' FilePath='cab1.cab' FileSize='985' Hash='32EFE9983CB1FF0905A3725B901D0BBD5334E616' Packaging='embedded' SourcePath='a4' Container='WixAttachedContainer' />" | ||
| 35 | L" <Payload Id='cabRT8kdm93olnEAQB2GSO3u0400VI' FilePath='cab1.cab' FileSize='971' Hash='1D20203378E2AEC4AD728F7849A5CC7F6E7D094D' Packaging='embedded' SourcePath='a5' Container='WixAttachedContainer' />" | ||
| 36 | L" <RollbackBoundary Id='WixDefaultBoundary' Vital='yes' Transaction='no' />" | ||
| 37 | L" <RollbackBoundary Id='rbaOCA08D8ky7uBOK71_6FWz1K3TuQ' Vital='yes' Transaction='yes' />" | ||
| 38 | L" <Registration Id='{c096190a-8bf3-4342-a1d2-94ea9cb853d6}' ExecutableName='BundleA.exe' PerMachine='yes' Tag='' Version='1.0.0.0' ProviderKey='{c096190a-8bf3-4342-a1d2-94ea9cb853d6}'>" | ||
| 39 | L" <Arp Register='yes' DisplayName='~manual - Bundle A' DisplayVersion='1.0.0.0' />" | ||
| 40 | L" </Registration>" | ||
| 41 | L" <Chain>" | ||
| 42 | L" <MsiPackage Id='PackageA' Cache='yes' CacheId='{196E43EA-EF92-4FF8-B9AC-A0FD0D225BB4}v1.0.0.0' InstallSize='1634' Size='33741' PerMachine='yes' Permanent='no' Vital='yes' RollbackBoundaryForward='WixDefaultBoundary' RollbackBoundaryBackward='WixDefaultBoundary' LogPathVariable='WixBundleLog_PackageA' RollbackLogPathVariable='WixBundleRollbackLog_PackageA' ProductCode='{196E43EA-EF92-4FF8-B9AC-A0FD0D225BB4}' Language='1033' Version='1.0.0.0' UpgradeCode='{5B6AB1CF-5DD5-4BB1-851A-9C7E789BCDC7}'>" | ||
| 43 | L" <MsiProperty Id='ARPSYSTEMCOMPONENT' Value='1' />" | ||
| 44 | L" <MsiProperty Id='MSIFASTINSTALL' Value='7' />" | ||
| 45 | L" <Provides Key='{196E43EA-EF92-4FF8-B9AC-A0FD0D225BB4}' DisplayName='~manual - A' />" | ||
| 46 | L" <RelatedPackage Id='{5B6AB1CF-5DD5-4BB1-851A-9C7E789BCDC7}' MaxVersion='1.0.0.0' MaxInclusive='no' OnlyDetect='no' LangInclusive='yes'>" | ||
| 47 | L" <Language Id='1033' />" | ||
| 48 | L" </RelatedPackage>" | ||
| 49 | L" <RelatedPackage Id='{5B6AB1CF-5DD5-4BB1-851A-9C7E789BCDC7}' MinVersion='1.0.0.0' MinInclusive='no' OnlyDetect='yes' LangInclusive='yes'>" | ||
| 50 | L" <Language Id='1033' />" | ||
| 51 | L" </RelatedPackage>" | ||
| 52 | L" <PayloadRef Id='PackageA' />" | ||
| 53 | L" <PayloadRef Id='cab1QmlL013Hqv_44W64R0cvnHn_2c' />" | ||
| 54 | L" </MsiPackage>" | ||
| 55 | L" <MsiPackage Id='PackageB' Cache='yes' CacheId='{388E4963-13AD-4EE7-B907-AA8888F50E54}v1.0.0.0' InstallSize='1665' Size='33753' PerMachine='yes' Permanent='no' Vital='yes' RollbackBoundaryForward='rbaOCA08D8ky7uBOK71_6FWz1K3TuQ' LogPathVariable='WixBundleLog_PackageB' RollbackLogPathVariable='WixBundleRollbackLog_PackageB' ProductCode='{388E4963-13AD-4EE7-B907-AA8888F50E54}' Language='1033' Version='1.0.0.0' UpgradeCode='{04ABCDBB-2C66-4338-9B1D-DE2AC9B0D1C2}'>" | ||
| 56 | L" <MsiProperty Id='ARPSYSTEMCOMPONENT' Value='1' />" | ||
| 57 | L" <MsiProperty Id='MSIFASTINSTALL' Value='7' />" | ||
| 58 | L" <Provides Key='{388E4963-13AD-4EE7-B907-AA8888F50E54}' DisplayName='~manual - B' />" | ||
| 59 | L" <RelatedPackage Id='{04ABCDBB-2C66-4338-9B1D-DE2AC9B0D1C2}' MaxVersion='1.0.0.0' MaxInclusive='yes' OnlyDetect='no' LangInclusive='yes'>" | ||
| 60 | L" <Language Id='1033' />" | ||
| 61 | L" </RelatedPackage>" | ||
| 62 | L" <RelatedPackage Id='{04ABCDBB-2C66-4338-9B1D-DE2AC9B0D1C2}' MinVersion='1.0.0.0' MinInclusive='no' OnlyDetect='yes' LangInclusive='yes'>" | ||
| 63 | L" <Language Id='1033' />" | ||
| 64 | L" </RelatedPackage>" | ||
| 65 | L" <PayloadRef Id='PackageB' />" | ||
| 66 | L" <PayloadRef Id='cabQH1Sgh7w2K8tLIftUaaWVhMWt0s' />" | ||
| 67 | L" </MsiPackage>" | ||
| 68 | L" <MsiPackage Id='PackageC' Cache='yes' CacheId='{BE27CF2B-9E5F-4500-BAE3-5E0E522FB962}v1.0.0.0' InstallSize='1634' Size='33739' PerMachine='yes' Permanent='no' Vital='yes' RollbackBoundaryBackward='rbaOCA08D8ky7uBOK71_6FWz1K3TuQ' LogPathVariable='WixBundleLog_PackageC' RollbackLogPathVariable='WixBundleRollbackLog_PackageC' ProductCode='{BE27CF2B-9E5F-4500-BAE3-5E0E522FB962}' Language='1033' Version='1.0.0.0' UpgradeCode='{3F8C1522-741D-499E-9137-7E192405E01A}'>" | ||
| 69 | L" <MsiProperty Id='ARPSYSTEMCOMPONENT' Value='1' />" | ||
| 70 | L" <MsiProperty Id='MSIFASTINSTALL' Value='7' />" | ||
| 71 | L" <Provides Key='{BE27CF2B-9E5F-4500-BAE3-5E0E522FB962}' DisplayName='~manual - C' />" | ||
| 72 | L" <RelatedPackage Id='{3F8C1522-741D-499E-9137-7E192405E01A}' MaxVersion='1.0.0.0' MaxInclusive='no' OnlyDetect='no' LangInclusive='yes'>" | ||
| 73 | L" <Language Id='1033' />" | ||
| 74 | L" </RelatedPackage>" | ||
| 75 | L" <RelatedPackage Id='{3F8C1522-741D-499E-9137-7E192405E01A}' MinVersion='1.0.0.0' MinInclusive='no' OnlyDetect='yes' LangInclusive='yes'>" | ||
| 76 | L" <Language Id='1033' />" | ||
| 77 | L" </RelatedPackage>" | ||
| 78 | L" <PayloadRef Id='PackageC' />" | ||
| 79 | L" <PayloadRef Id='cabRT8kdm93olnEAQB2GSO3u0400VI' />" | ||
| 80 | L" </MsiPackage>" | ||
| 81 | L" </Chain>" | ||
| 82 | L"</Bundle>"; | ||
| 83 | |||
| 84 | static LPCWSTR wzSingleMsiManifest = | ||
| 85 | L"<Bundle>" | ||
| 86 | L" <Log PathVariable='WixBundleLog' Prefix='~manual_BundleB' Extension='log' />" | ||
| 87 | L" <RelatedBundle Id='{CAAD4202-2097-4065-82BB-83F9F3FF61CE}' Action='Upgrade' />" | ||
| 88 | L" <Variable Id='TestName' Value='SingleMsi' Type='string' Hidden='no' Persisted='no' />" | ||
| 89 | L" <Variable Id='WixBundleName' Hidden='no' Persisted='yes' />" | ||
| 90 | L" <Variable Id='WixBundleOriginalSource' Hidden='no' Persisted='yes' />" | ||
| 91 | L" <Variable Id='WixBundleOriginalSourceFolder' Hidden='no' Persisted='yes' />" | ||
| 92 | L" <Variable Id='WixBundleLastUsedSource' Hidden='no' Persisted='yes' />" | ||
| 93 | L" <UX>" | ||
| 94 | L" <Payload Id='WixStandardBootstrapperApplication.RtfLicense' FilePath='wixstdba.dll' FileSize='1312768' Hash='B331BC5C819F019981D2524C48CC370DE2BFE9F8' Packaging='embedded' SourcePath='u0' />" | ||
| 95 | L" <Payload Id='payF3wjO.aj6M8ftq9wrfYB1N4aw4g' FilePath='thm.xml' FileSize='8048' Hash='A712A9E1427A4EE1D0B68343A54019A3FC9967CB' Packaging='embedded' SourcePath='u1' />" | ||
| 96 | L" <Payload Id='payViPRdlZD7MPIBgwmX2Hv5C6oKt4' FilePath='thm.wxl' FileSize='3926' Hash='B88FAB9B6C2B52FBE017F91B0915781C6B76058E' Packaging='embedded' SourcePath='u2' />" | ||
| 97 | L" <Payload Id='payjqSD44latbvJnf4vAQuVMUST73A' FilePath='logo.png' FileSize='852' Hash='239F10674BF6022854C1F1BF7C91955BDE34D3E4' Packaging='embedded' SourcePath='u3' />" | ||
| 98 | L" <Payload Id='pay60yHh1x6HODo4M_38Pud7jhl2Ig' FilePath='license.rtf' FileSize='4908' Hash='383034848F8CC4F3C8E795CC0F4D716A285E9465' Packaging='embedded' SourcePath='u4' />" | ||
| 99 | L" <Payload Id='uxTxMXPVMXwQrPTMIGa5WGt93w0Ns' FilePath='BootstrapperApplicationData.xml' FileSize='3854' Hash='2807D2AB42585125D18B7DCE49DB6454A1AFC367' Packaging='embedded' SourcePath='u5' />" | ||
| 100 | L" </UX>" | ||
| 101 | L" <Container Id='WixAttachedContainer' FileSize='6486' Hash='944E8702BD8DCDB1E41C47033115B690CED42033' FilePath='BundleC.exe' AttachedIndex='1' Attached='yes' Primary='yes' />" | ||
| 102 | L" <Payload Id='PackageE' FilePath='~manual_PackageE.msi' FileSize='32768' Hash='EB5B931CFCD724391A014A93A9B41037AEE57EC5' Packaging='embedded' SourcePath='a0' Container='WixAttachedContainer' />" | ||
| 103 | L" <Payload Id='cabkAPka1fWa1PyiVdoVPuoB6Qvs3k' FilePath='cab1.cab' FileSize='973' Hash='A0D42DE329CFCF0AF60D5FFA902C7E53DD5F3B4F' Packaging='embedded' SourcePath='a1' Container='WixAttachedContainer' />" | ||
| 104 | L" <RollbackBoundary Id='WixDefaultBoundary' Vital='yes' Transaction='no' />" | ||
| 105 | L" <Registration Id='{4a04385a-0081-44ba-acd1-9e4e95cfc97f}' ExecutableName='BundleC.exe' PerMachine='yes' Tag='' Version='1.0.0.0' ProviderKey='{4a04385a-0081-44ba-acd1-9e4e95cfc97f}'>" | ||
| 106 | L" <Arp Register='yes' DisplayName='~manual - Bundle B' DisplayVersion='1.0.0.0' />" | ||
| 107 | L" </Registration>" | ||
| 108 | L" <Chain>" | ||
| 109 | L" <MsiPackage Id='PackageE' Cache='yes' CacheId='{284F56B6-B6C7-404A-B9B5-78F63BF79494}v1.0.0.0' InstallSize='1640' Size='33741' PerMachine='yes' Permanent='no' Vital='yes' RollbackBoundaryForward='WixDefaultBoundary' RollbackBoundaryBackward='WixDefaultBoundary' LogPathVariable='WixBundleLog_PackageE' RollbackLogPathVariable='WixBundleRollbackLog_PackageE' ProductCode='{284F56B6-B6C7-404A-B9B5-78F63BF79494}' Language='1033' Version='1.0.0.0' UpgradeCode='{04ABCDBB-2C66-4338-9B1D-DE2AC9B0D1C2}'>" | ||
| 110 | L" <MsiProperty Id='ARPSYSTEMCOMPONENT' Value='1' />" | ||
| 111 | L" <MsiProperty Id='MSIFASTINSTALL' Value='7' />" | ||
| 112 | L" <Provides Key='{284F56B6-B6C7-404A-B9B5-78F63BF79494}' DisplayName='~manual - E' />" | ||
| 113 | L" <RelatedPackage Id='{04ABCDBB-2C66-4338-9B1D-DE2AC9B0D1C2}' MaxVersion='1.0.0.0' MaxInclusive='no' OnlyDetect='no' LangInclusive='yes'>" | ||
| 114 | L" <Language Id='1033' />" | ||
| 115 | L" </RelatedPackage>" | ||
| 116 | L" <RelatedPackage Id='{04ABCDBB-2C66-4338-9B1D-DE2AC9B0D1C2}' MinVersion='1.0.0.0' MinInclusive='no' OnlyDetect='yes' LangInclusive='yes'>" | ||
| 117 | L" <Language Id='1033' />" | ||
| 118 | L" </RelatedPackage>" | ||
| 119 | L" <PayloadRef Id='PackageE' />" | ||
| 120 | L" <PayloadRef Id='cabkAPka1fWa1PyiVdoVPuoB6Qvs3k' />" | ||
| 121 | L" </MsiPackage>" | ||
| 122 | L" </Chain>" | ||
| 123 | L"</Bundle>"; | ||
| 124 | 14 | ||
| 125 | namespace Microsoft | 15 | namespace Microsoft |
| 126 | { | 16 | { |
| @@ -150,7 +40,7 @@ namespace Bootstrapper | |||
| 150 | BURN_ENGINE_STATE* pEngineState = &engineState; | 40 | BURN_ENGINE_STATE* pEngineState = &engineState; |
| 151 | BURN_PLAN* pPlan = &engineState.plan; | 41 | BURN_PLAN* pPlan = &engineState.plan; |
| 152 | 42 | ||
| 153 | InitializeEngineStateForCorePlan(wzMsiTransactionManifest, pEngineState); | 43 | InitializeEngineStateForCorePlan(wzMsiTransactionManifestFileName, pEngineState); |
| 154 | DetectPackagesAsAbsent(pEngineState); | 44 | DetectPackagesAsAbsent(pEngineState); |
| 155 | DetectUpgradeBundle(pEngineState, L"{FD9920AD-DBCA-4C6C-8CD5-B47431CE8D21}", L"1.0.0.0"); | 45 | DetectUpgradeBundle(pEngineState, L"{FD9920AD-DBCA-4C6C-8CD5-B47431CE8D21}", L"1.0.0.0"); |
| 156 | 46 | ||
| @@ -166,27 +56,27 @@ namespace Bootstrapper | |||
| 166 | DWORD dwIndex = 0; | 56 | DWORD dwIndex = 0; |
| 167 | DWORD dwPackageStart = 0; | 57 | DWORD dwPackageStart = 0; |
| 168 | ValidateCacheCheckpoint(pPlan, fRollback, dwIndex++, 1); | 58 | ValidateCacheCheckpoint(pPlan, fRollback, dwIndex++, 1); |
| 169 | dwPackageStart = ValidateCachePackageStart(pPlan, fRollback, dwIndex++, L"PackageA", 6, 2, 33741, FALSE); | 59 | dwPackageStart = ValidateCachePackageStart(pPlan, fRollback, dwIndex++, L"PackageA", 6, 2, 33743, FALSE); |
| 170 | ValidateCacheAcquireContainer(pPlan, fRollback, dwIndex++, L"WixAttachedContainer", FALSE); | 60 | ValidateCacheAcquireContainer(pPlan, fRollback, dwIndex++, L"WixAttachedContainer", FALSE); |
| 171 | ValidateCacheExtractContainer(pPlan, fRollback, dwIndex++, L"WixAttachedContainer", FALSE, dwPackageStart, 6); | 61 | ValidateCacheExtractContainer(pPlan, fRollback, dwIndex++, L"WixAttachedContainer", FALSE, dwPackageStart, 6); |
| 172 | ValidateCacheCachePayload(pPlan, fRollback, dwIndex++, L"PackageA", L"PackageA", TRUE, FALSE, dwPackageStart); | 62 | ValidateCacheCachePayload(pPlan, fRollback, dwIndex++, L"PackageA", L"PackageA", TRUE, FALSE, dwPackageStart); |
| 173 | ValidateCacheCachePayload(pPlan, fRollback, dwIndex++, L"PackageA", L"cab1QmlL013Hqv_44W64R0cvnHn_2c", TRUE, FALSE, dwPackageStart); | 63 | ValidateCacheCachePayload(pPlan, fRollback, dwIndex++, L"PackageA", L"cab9Ins_fTP3wNwq5Gxo41ch5VUPaQ", TRUE, FALSE, dwPackageStart); |
| 174 | ValidateCachePackageStop(pPlan, fRollback, dwIndex++, L"PackageA", FALSE); | 64 | ValidateCachePackageStop(pPlan, fRollback, dwIndex++, L"PackageA", FALSE); |
| 175 | ValidateCacheSignalSyncpoint(pPlan, fRollback, dwIndex++, FALSE); | 65 | ValidateCacheSignalSyncpoint(pPlan, fRollback, dwIndex++, FALSE); |
| 176 | ValidateCacheCheckpoint(pPlan, fRollback, dwIndex++, 9); | 66 | ValidateCacheCheckpoint(pPlan, fRollback, dwIndex++, 9); |
| 177 | dwPackageStart = ValidateCachePackageStart(pPlan, fRollback, dwIndex++, L"PackageB", 14, 2, 33753, FALSE); | 67 | dwPackageStart = ValidateCachePackageStart(pPlan, fRollback, dwIndex++, L"PackageB", 14, 2, 33743, FALSE); |
| 178 | ValidateCacheAcquireContainer(pPlan, fRollback, dwIndex++, L"WixAttachedContainer", TRUE); | 68 | ValidateCacheAcquireContainer(pPlan, fRollback, dwIndex++, L"WixAttachedContainer", TRUE); |
| 179 | ValidateCacheExtractContainer(pPlan, fRollback, dwIndex++, L"WixAttachedContainer", FALSE, dwPackageStart, 2); | 69 | ValidateCacheExtractContainer(pPlan, fRollback, dwIndex++, L"WixAttachedContainer", FALSE, dwPackageStart, 2); |
| 180 | ValidateCacheCachePayload(pPlan, fRollback, dwIndex++, L"PackageB", L"PackageB", TRUE, FALSE, dwPackageStart); | 70 | ValidateCacheCachePayload(pPlan, fRollback, dwIndex++, L"PackageB", L"PackageB", TRUE, FALSE, dwPackageStart); |
| 181 | ValidateCacheCachePayload(pPlan, fRollback, dwIndex++, L"PackageB", L"cabQH1Sgh7w2K8tLIftUaaWVhMWt0s", TRUE, FALSE, dwPackageStart); | 71 | ValidateCacheCachePayload(pPlan, fRollback, dwIndex++, L"PackageB", L"cablKtJUKxAbhSMIBwQU6vJ_CDsIkE", TRUE, FALSE, dwPackageStart); |
| 182 | ValidateCachePackageStop(pPlan, fRollback, dwIndex++, L"PackageB", FALSE); | 72 | ValidateCachePackageStop(pPlan, fRollback, dwIndex++, L"PackageB", FALSE); |
| 183 | ValidateCacheSignalSyncpoint(pPlan, fRollback, dwIndex++, FALSE); | 73 | ValidateCacheSignalSyncpoint(pPlan, fRollback, dwIndex++, FALSE); |
| 184 | ValidateCacheCheckpoint(pPlan, fRollback, dwIndex++, 14); | 74 | ValidateCacheCheckpoint(pPlan, fRollback, dwIndex++, 14); |
| 185 | dwPackageStart = ValidateCachePackageStart(pPlan, fRollback, dwIndex++, L"PackageC", 22, 2, 33739, FALSE); | 75 | dwPackageStart = ValidateCachePackageStart(pPlan, fRollback, dwIndex++, L"PackageC", 22, 2, 33743, FALSE); |
| 186 | ValidateCacheAcquireContainer(pPlan, fRollback, dwIndex++, L"WixAttachedContainer", TRUE); | 76 | ValidateCacheAcquireContainer(pPlan, fRollback, dwIndex++, L"WixAttachedContainer", TRUE); |
| 187 | ValidateCacheExtractContainer(pPlan, fRollback, dwIndex++, L"WixAttachedContainer", FALSE, dwPackageStart, 2); | 77 | ValidateCacheExtractContainer(pPlan, fRollback, dwIndex++, L"WixAttachedContainer", FALSE, dwPackageStart, 2); |
| 188 | ValidateCacheCachePayload(pPlan, fRollback, dwIndex++, L"PackageC", L"PackageC", TRUE, FALSE, dwPackageStart); | 78 | ValidateCacheCachePayload(pPlan, fRollback, dwIndex++, L"PackageC", L"PackageC", TRUE, FALSE, dwPackageStart); |
| 189 | ValidateCacheCachePayload(pPlan, fRollback, dwIndex++, L"PackageC", L"cabRT8kdm93olnEAQB2GSO3u0400VI", TRUE, FALSE, dwPackageStart); | 79 | ValidateCacheCachePayload(pPlan, fRollback, dwIndex++, L"PackageC", L"cab3wekki1le1R8RPDV2B8_g8jcjZc", TRUE, FALSE, dwPackageStart); |
| 190 | ValidateCachePackageStop(pPlan, fRollback, dwIndex++, L"PackageC", FALSE); | 80 | ValidateCachePackageStop(pPlan, fRollback, dwIndex++, L"PackageC", FALSE); |
| 191 | ValidateCacheSignalSyncpoint(pPlan, fRollback, dwIndex++, FALSE); | 81 | ValidateCacheSignalSyncpoint(pPlan, fRollback, dwIndex++, FALSE); |
| 192 | Assert::Equal(24ul, pPlan->cCacheActions); | 82 | Assert::Equal(24ul, pPlan->cCacheActions); |
| @@ -197,8 +87,8 @@ namespace Bootstrapper | |||
| 197 | ValidateCacheRollbackPackage(pPlan, fRollback, dwIndex++, L"PackageA", FALSE); | 87 | ValidateCacheRollbackPackage(pPlan, fRollback, dwIndex++, L"PackageA", FALSE); |
| 198 | Assert::Equal(dwIndex, pPlan->cRollbackCacheActions); | 88 | Assert::Equal(dwIndex, pPlan->cRollbackCacheActions); |
| 199 | 89 | ||
| 200 | Assert::Equal(106166ull, pPlan->qwEstimatedSize); | 90 | Assert::Equal(107082ull, pPlan->qwEstimatedSize); |
| 201 | Assert::Equal(101233ull, pPlan->qwCacheSizeTotal); | 91 | Assert::Equal(101229ull, pPlan->qwCacheSizeTotal); |
| 202 | 92 | ||
| 203 | fRollback = FALSE; | 93 | fRollback = FALSE; |
| 204 | dwIndex = 0; | 94 | dwIndex = 0; |
| @@ -212,7 +102,7 @@ namespace Bootstrapper | |||
| 212 | ValidateExecuteMsiPackage(pPlan, fRollback, dwIndex++, L"PackageA", BOOTSTRAPPER_ACTION_STATE_INSTALL, BURN_MSI_PROPERTY_INSTALL, INSTALLUILEVEL_NONE, FALSE, 0); | 102 | ValidateExecuteMsiPackage(pPlan, fRollback, dwIndex++, L"PackageA", BOOTSTRAPPER_ACTION_STATE_INSTALL, BURN_MSI_PROPERTY_INSTALL, INSTALLUILEVEL_NONE, FALSE, 0); |
| 213 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); | 103 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); |
| 214 | ValidateExecuteRegistration(pPlan, fRollback, dwIndex++, TRUE); | 104 | ValidateExecuteRegistration(pPlan, fRollback, dwIndex++, TRUE); |
| 215 | ValidateExecutePackageDependency(pPlan, fRollback, dwIndex++, L"PackageA", L"{c096190a-8bf3-4342-a1d2-94ea9cb853d6}", BURN_DEPENDENCY_ACTION_REGISTER); | 105 | ValidateExecutePackageDependency(pPlan, fRollback, dwIndex++, L"PackageA", L"{E6469F05-BDC8-4EB8-B218-67412543EFAA}", BURN_DEPENDENCY_ACTION_REGISTER); |
| 216 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); | 106 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); |
| 217 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); | 107 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); |
| 218 | ValidateExecuteRollbackBoundary(pPlan, fRollback, dwIndex++, L"rbaOCA08D8ky7uBOK71_6FWz1K3TuQ", TRUE, TRUE); | 108 | ValidateExecuteRollbackBoundary(pPlan, fRollback, dwIndex++, L"rbaOCA08D8ky7uBOK71_6FWz1K3TuQ", TRUE, TRUE); |
| @@ -225,7 +115,7 @@ namespace Bootstrapper | |||
| 225 | ValidateExecutePackageProvider(pPlan, fRollback, dwIndex++, L"PackageB", BURN_DEPENDENCY_ACTION_REGISTER); | 115 | ValidateExecutePackageProvider(pPlan, fRollback, dwIndex++, L"PackageB", BURN_DEPENDENCY_ACTION_REGISTER); |
| 226 | ValidateExecuteMsiPackage(pPlan, fRollback, dwIndex++, L"PackageB", BOOTSTRAPPER_ACTION_STATE_INSTALL, BURN_MSI_PROPERTY_INSTALL, INSTALLUILEVEL_NONE, FALSE, 0); | 116 | ValidateExecuteMsiPackage(pPlan, fRollback, dwIndex++, L"PackageB", BOOTSTRAPPER_ACTION_STATE_INSTALL, BURN_MSI_PROPERTY_INSTALL, INSTALLUILEVEL_NONE, FALSE, 0); |
| 227 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); | 117 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); |
| 228 | ValidateExecutePackageDependency(pPlan, fRollback, dwIndex++, L"PackageB", L"{c096190a-8bf3-4342-a1d2-94ea9cb853d6}", BURN_DEPENDENCY_ACTION_REGISTER); | 118 | ValidateExecutePackageDependency(pPlan, fRollback, dwIndex++, L"PackageB", L"{E6469F05-BDC8-4EB8-B218-67412543EFAA}", BURN_DEPENDENCY_ACTION_REGISTER); |
| 229 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); | 119 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); |
| 230 | ValidateExecuteWaitSyncpoint(pPlan, fRollback, dwIndex++, pPlan->rgCacheActions[23].syncpoint.hEvent); | 120 | ValidateExecuteWaitSyncpoint(pPlan, fRollback, dwIndex++, pPlan->rgCacheActions[23].syncpoint.hEvent); |
| 231 | dwExecuteCheckpointId += 1; // cache checkpoints | 121 | dwExecuteCheckpointId += 1; // cache checkpoints |
| @@ -234,7 +124,7 @@ namespace Bootstrapper | |||
| 234 | ValidateExecutePackageProvider(pPlan, fRollback, dwIndex++, L"PackageC", BURN_DEPENDENCY_ACTION_REGISTER); | 124 | ValidateExecutePackageProvider(pPlan, fRollback, dwIndex++, L"PackageC", BURN_DEPENDENCY_ACTION_REGISTER); |
| 235 | ValidateExecuteMsiPackage(pPlan, fRollback, dwIndex++, L"PackageC", BOOTSTRAPPER_ACTION_STATE_INSTALL, BURN_MSI_PROPERTY_INSTALL, INSTALLUILEVEL_NONE, FALSE, 0); | 125 | ValidateExecuteMsiPackage(pPlan, fRollback, dwIndex++, L"PackageC", BOOTSTRAPPER_ACTION_STATE_INSTALL, BURN_MSI_PROPERTY_INSTALL, INSTALLUILEVEL_NONE, FALSE, 0); |
| 236 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); | 126 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); |
| 237 | ValidateExecutePackageDependency(pPlan, fRollback, dwIndex++, L"PackageC", L"{c096190a-8bf3-4342-a1d2-94ea9cb853d6}", BURN_DEPENDENCY_ACTION_REGISTER); | 127 | ValidateExecutePackageDependency(pPlan, fRollback, dwIndex++, L"PackageC", L"{E6469F05-BDC8-4EB8-B218-67412543EFAA}", BURN_DEPENDENCY_ACTION_REGISTER); |
| 238 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); | 128 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); |
| 239 | ValidateExecuteCommitMsiTransaction(pPlan, fRollback, dwIndex++, L"rbaOCA08D8ky7uBOK71_6FWz1K3TuQ"); | 129 | ValidateExecuteCommitMsiTransaction(pPlan, fRollback, dwIndex++, L"rbaOCA08D8ky7uBOK71_6FWz1K3TuQ"); |
| 240 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); | 130 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); |
| @@ -253,7 +143,7 @@ namespace Bootstrapper | |||
| 253 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); | 143 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); |
| 254 | ValidateExecuteMsiPackage(pPlan, fRollback, dwIndex++, L"PackageA", BOOTSTRAPPER_ACTION_STATE_UNINSTALL, BURN_MSI_PROPERTY_UNINSTALL, INSTALLUILEVEL_NONE, FALSE, 0); | 144 | ValidateExecuteMsiPackage(pPlan, fRollback, dwIndex++, L"PackageA", BOOTSTRAPPER_ACTION_STATE_UNINSTALL, BURN_MSI_PROPERTY_UNINSTALL, INSTALLUILEVEL_NONE, FALSE, 0); |
| 255 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); | 145 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); |
| 256 | ValidateExecutePackageDependency(pPlan, fRollback, dwIndex++, L"PackageA", L"{c096190a-8bf3-4342-a1d2-94ea9cb853d6}", BURN_DEPENDENCY_ACTION_UNREGISTER); | 146 | ValidateExecutePackageDependency(pPlan, fRollback, dwIndex++, L"PackageA", L"{E6469F05-BDC8-4EB8-B218-67412543EFAA}", BURN_DEPENDENCY_ACTION_UNREGISTER); |
| 257 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); | 147 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); |
| 258 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); | 148 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); |
| 259 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); | 149 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); |
| @@ -264,7 +154,7 @@ namespace Bootstrapper | |||
| 264 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); | 154 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); |
| 265 | ValidateExecutePackageProvider(pPlan, fRollback, dwIndex++, L"PackageB", BURN_DEPENDENCY_ACTION_UNREGISTER); | 155 | ValidateExecutePackageProvider(pPlan, fRollback, dwIndex++, L"PackageB", BURN_DEPENDENCY_ACTION_UNREGISTER); |
| 266 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); | 156 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); |
| 267 | ValidateExecutePackageDependency(pPlan, fRollback, dwIndex++, L"PackageB", L"{c096190a-8bf3-4342-a1d2-94ea9cb853d6}", BURN_DEPENDENCY_ACTION_UNREGISTER); | 157 | ValidateExecutePackageDependency(pPlan, fRollback, dwIndex++, L"PackageB", L"{E6469F05-BDC8-4EB8-B218-67412543EFAA}", BURN_DEPENDENCY_ACTION_UNREGISTER); |
| 268 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); | 158 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); |
| 269 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); | 159 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); |
| 270 | ValidateExecuteUncachePackage(pPlan, fRollback, dwIndex++, L"PackageC"); | 160 | ValidateExecuteUncachePackage(pPlan, fRollback, dwIndex++, L"PackageC"); |
| @@ -272,7 +162,7 @@ namespace Bootstrapper | |||
| 272 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); | 162 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); |
| 273 | ValidateExecutePackageProvider(pPlan, fRollback, dwIndex++, L"PackageC", BURN_DEPENDENCY_ACTION_UNREGISTER); | 163 | ValidateExecutePackageProvider(pPlan, fRollback, dwIndex++, L"PackageC", BURN_DEPENDENCY_ACTION_UNREGISTER); |
| 274 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); | 164 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); |
| 275 | ValidateExecutePackageDependency(pPlan, fRollback, dwIndex++, L"PackageC", L"{c096190a-8bf3-4342-a1d2-94ea9cb853d6}", BURN_DEPENDENCY_ACTION_UNREGISTER); | 165 | ValidateExecutePackageDependency(pPlan, fRollback, dwIndex++, L"PackageC", L"{E6469F05-BDC8-4EB8-B218-67412543EFAA}", BURN_DEPENDENCY_ACTION_UNREGISTER); |
| 276 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); | 166 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); |
| 277 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); | 167 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); |
| 278 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); | 168 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); |
| @@ -286,7 +176,7 @@ namespace Bootstrapper | |||
| 286 | Assert::Equal(dwIndex, pPlan->cCleanActions); | 176 | Assert::Equal(dwIndex, pPlan->cCleanActions); |
| 287 | 177 | ||
| 288 | UINT uIndex = 0; | 178 | UINT uIndex = 0; |
| 289 | ValidatePlannedProvider(pPlan, uIndex++, L"{c096190a-8bf3-4342-a1d2-94ea9cb853d6}", NULL); | 179 | ValidatePlannedProvider(pPlan, uIndex++, L"{E6469F05-BDC8-4EB8-B218-67412543EFAA}", NULL); |
| 290 | Assert::Equal(uIndex, pPlan->cPlannedProviders); | 180 | Assert::Equal(uIndex, pPlan->cPlannedProviders); |
| 291 | } | 181 | } |
| 292 | 182 | ||
| @@ -298,7 +188,7 @@ namespace Bootstrapper | |||
| 298 | BURN_ENGINE_STATE* pEngineState = &engineState; | 188 | BURN_ENGINE_STATE* pEngineState = &engineState; |
| 299 | BURN_PLAN* pPlan = &engineState.plan; | 189 | BURN_PLAN* pPlan = &engineState.plan; |
| 300 | 190 | ||
| 301 | InitializeEngineStateForCorePlan(wzMsiTransactionManifest, pEngineState); | 191 | InitializeEngineStateForCorePlan(wzMsiTransactionManifestFileName, pEngineState); |
| 302 | DetectPackagesAsPresentAndCached(pEngineState); | 192 | DetectPackagesAsPresentAndCached(pEngineState); |
| 303 | 193 | ||
| 304 | hr = CorePlan(pEngineState, BOOTSTRAPPER_ACTION_UNINSTALL); | 194 | hr = CorePlan(pEngineState, BOOTSTRAPPER_ACTION_UNINSTALL); |
| @@ -327,13 +217,13 @@ namespace Bootstrapper | |||
| 327 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); | 217 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); |
| 328 | ValidateExecuteBeginMsiTransaction(pPlan, fRollback, dwIndex++, L"rbaOCA08D8ky7uBOK71_6FWz1K3TuQ"); | 218 | ValidateExecuteBeginMsiTransaction(pPlan, fRollback, dwIndex++, L"rbaOCA08D8ky7uBOK71_6FWz1K3TuQ"); |
| 329 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); | 219 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); |
| 330 | ValidateExecutePackageDependency(pPlan, fRollback, dwIndex++, L"PackageC", L"{c096190a-8bf3-4342-a1d2-94ea9cb853d6}", BURN_DEPENDENCY_ACTION_UNREGISTER); | 220 | ValidateExecutePackageDependency(pPlan, fRollback, dwIndex++, L"PackageC", L"{E6469F05-BDC8-4EB8-B218-67412543EFAA}", BURN_DEPENDENCY_ACTION_UNREGISTER); |
| 331 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); | 221 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); |
| 332 | ValidateExecutePackageProvider(pPlan, fRollback, dwIndex++, L"PackageC", BURN_DEPENDENCY_ACTION_UNREGISTER); | 222 | ValidateExecutePackageProvider(pPlan, fRollback, dwIndex++, L"PackageC", BURN_DEPENDENCY_ACTION_UNREGISTER); |
| 333 | ValidateExecuteMsiPackage(pPlan, fRollback, dwIndex++, L"PackageC", BOOTSTRAPPER_ACTION_STATE_UNINSTALL, BURN_MSI_PROPERTY_UNINSTALL, INSTALLUILEVEL_NONE, FALSE, 0); | 223 | ValidateExecuteMsiPackage(pPlan, fRollback, dwIndex++, L"PackageC", BOOTSTRAPPER_ACTION_STATE_UNINSTALL, BURN_MSI_PROPERTY_UNINSTALL, INSTALLUILEVEL_NONE, FALSE, 0); |
| 334 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); | 224 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); |
| 335 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); | 225 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); |
| 336 | ValidateExecutePackageDependency(pPlan, fRollback, dwIndex++, L"PackageB", L"{c096190a-8bf3-4342-a1d2-94ea9cb853d6}", BURN_DEPENDENCY_ACTION_UNREGISTER); | 226 | ValidateExecutePackageDependency(pPlan, fRollback, dwIndex++, L"PackageB", L"{E6469F05-BDC8-4EB8-B218-67412543EFAA}", BURN_DEPENDENCY_ACTION_UNREGISTER); |
| 337 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); | 227 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); |
| 338 | ValidateExecutePackageProvider(pPlan, fRollback, dwIndex++, L"PackageB", BURN_DEPENDENCY_ACTION_UNREGISTER); | 228 | ValidateExecutePackageProvider(pPlan, fRollback, dwIndex++, L"PackageB", BURN_DEPENDENCY_ACTION_UNREGISTER); |
| 339 | ValidateExecuteMsiPackage(pPlan, fRollback, dwIndex++, L"PackageB", BOOTSTRAPPER_ACTION_STATE_UNINSTALL, BURN_MSI_PROPERTY_UNINSTALL, INSTALLUILEVEL_NONE, FALSE, 0); | 229 | ValidateExecuteMsiPackage(pPlan, fRollback, dwIndex++, L"PackageB", BOOTSTRAPPER_ACTION_STATE_UNINSTALL, BURN_MSI_PROPERTY_UNINSTALL, INSTALLUILEVEL_NONE, FALSE, 0); |
| @@ -342,7 +232,7 @@ namespace Bootstrapper | |||
| 342 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); | 232 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); |
| 343 | ValidateExecuteRollbackBoundary(pPlan, fRollback, dwIndex++, L"WixDefaultBoundary", TRUE, FALSE); | 233 | ValidateExecuteRollbackBoundary(pPlan, fRollback, dwIndex++, L"WixDefaultBoundary", TRUE, FALSE); |
| 344 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); | 234 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); |
| 345 | ValidateExecutePackageDependency(pPlan, fRollback, dwIndex++, L"PackageA", L"{c096190a-8bf3-4342-a1d2-94ea9cb853d6}", BURN_DEPENDENCY_ACTION_UNREGISTER); | 235 | ValidateExecutePackageDependency(pPlan, fRollback, dwIndex++, L"PackageA", L"{E6469F05-BDC8-4EB8-B218-67412543EFAA}", BURN_DEPENDENCY_ACTION_UNREGISTER); |
| 346 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); | 236 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); |
| 347 | ValidateExecutePackageProvider(pPlan, fRollback, dwIndex++, L"PackageA", BURN_DEPENDENCY_ACTION_UNREGISTER); | 237 | ValidateExecutePackageProvider(pPlan, fRollback, dwIndex++, L"PackageA", BURN_DEPENDENCY_ACTION_UNREGISTER); |
| 348 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); | 238 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); |
| @@ -357,19 +247,19 @@ namespace Bootstrapper | |||
| 357 | dwExecuteCheckpointId = 1; | 247 | dwExecuteCheckpointId = 1; |
| 358 | ValidateExecuteRollbackBoundary(pPlan, fRollback, dwIndex++, L"rbaOCA08D8ky7uBOK71_6FWz1K3TuQ", TRUE, TRUE); | 248 | ValidateExecuteRollbackBoundary(pPlan, fRollback, dwIndex++, L"rbaOCA08D8ky7uBOK71_6FWz1K3TuQ", TRUE, TRUE); |
| 359 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); | 249 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); |
| 360 | ValidateExecutePackageDependency(pPlan, fRollback, dwIndex++, L"PackageC", L"{c096190a-8bf3-4342-a1d2-94ea9cb853d6}", BURN_DEPENDENCY_ACTION_REGISTER); | 250 | ValidateExecutePackageDependency(pPlan, fRollback, dwIndex++, L"PackageC", L"{E6469F05-BDC8-4EB8-B218-67412543EFAA}", BURN_DEPENDENCY_ACTION_REGISTER); |
| 361 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); | 251 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); |
| 362 | ValidateExecutePackageProvider(pPlan, fRollback, dwIndex++, L"PackageC", BURN_DEPENDENCY_ACTION_REGISTER); | 252 | ValidateExecutePackageProvider(pPlan, fRollback, dwIndex++, L"PackageC", BURN_DEPENDENCY_ACTION_REGISTER); |
| 363 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); | 253 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); |
| 364 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); | 254 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); |
| 365 | ValidateExecutePackageDependency(pPlan, fRollback, dwIndex++, L"PackageB", L"{c096190a-8bf3-4342-a1d2-94ea9cb853d6}", BURN_DEPENDENCY_ACTION_REGISTER); | 255 | ValidateExecutePackageDependency(pPlan, fRollback, dwIndex++, L"PackageB", L"{E6469F05-BDC8-4EB8-B218-67412543EFAA}", BURN_DEPENDENCY_ACTION_REGISTER); |
| 366 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); | 256 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); |
| 367 | ValidateExecutePackageProvider(pPlan, fRollback, dwIndex++, L"PackageB", BURN_DEPENDENCY_ACTION_REGISTER); | 257 | ValidateExecutePackageProvider(pPlan, fRollback, dwIndex++, L"PackageB", BURN_DEPENDENCY_ACTION_REGISTER); |
| 368 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); | 258 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); |
| 369 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); | 259 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); |
| 370 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); | 260 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); |
| 371 | ValidateExecuteRollbackBoundary(pPlan, fRollback, dwIndex++, L"WixDefaultBoundary", TRUE, FALSE); | 261 | ValidateExecuteRollbackBoundary(pPlan, fRollback, dwIndex++, L"WixDefaultBoundary", TRUE, FALSE); |
| 372 | ValidateExecutePackageDependency(pPlan, fRollback, dwIndex++, L"PackageA", L"{c096190a-8bf3-4342-a1d2-94ea9cb853d6}", BURN_DEPENDENCY_ACTION_REGISTER); | 262 | ValidateExecutePackageDependency(pPlan, fRollback, dwIndex++, L"PackageA", L"{E6469F05-BDC8-4EB8-B218-67412543EFAA}", BURN_DEPENDENCY_ACTION_REGISTER); |
| 373 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); | 263 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); |
| 374 | ValidateExecutePackageProvider(pPlan, fRollback, dwIndex++, L"PackageA", BURN_DEPENDENCY_ACTION_REGISTER); | 264 | ValidateExecutePackageProvider(pPlan, fRollback, dwIndex++, L"PackageA", BURN_DEPENDENCY_ACTION_REGISTER); |
| 375 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); | 265 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); |
| @@ -390,10 +280,10 @@ namespace Bootstrapper | |||
| 390 | Assert::Equal(dwIndex, pPlan->cCleanActions); | 280 | Assert::Equal(dwIndex, pPlan->cCleanActions); |
| 391 | 281 | ||
| 392 | UINT uIndex = 0; | 282 | UINT uIndex = 0; |
| 393 | ValidatePlannedProvider(pPlan, uIndex++, L"{c096190a-8bf3-4342-a1d2-94ea9cb853d6}", NULL); | 283 | ValidatePlannedProvider(pPlan, uIndex++, L"{E6469F05-BDC8-4EB8-B218-67412543EFAA}", NULL); |
| 394 | ValidatePlannedProvider(pPlan, uIndex++, L"{BE27CF2B-9E5F-4500-BAE3-5E0E522FB962}", NULL); | 284 | ValidatePlannedProvider(pPlan, uIndex++, L"{A497C5E5-C78B-4F0B-BF72-B33E1DB1C4B8}", NULL); |
| 395 | ValidatePlannedProvider(pPlan, uIndex++, L"{388E4963-13AD-4EE7-B907-AA8888F50E54}", NULL); | 285 | ValidatePlannedProvider(pPlan, uIndex++, L"{D1D01094-23CE-4AF0-84B6-4A1A133F21D3}", NULL); |
| 396 | ValidatePlannedProvider(pPlan, uIndex++, L"{196E43EA-EF92-4FF8-B9AC-A0FD0D225BB4}", NULL); | 286 | ValidatePlannedProvider(pPlan, uIndex++, L"{01E6B748-7B95-4BA9-976D-B6F35076CEF4}", NULL); |
| 397 | Assert::Equal(uIndex, pPlan->cPlannedProviders); | 287 | Assert::Equal(uIndex, pPlan->cPlannedProviders); |
| 398 | } | 288 | } |
| 399 | 289 | ||
| @@ -405,7 +295,7 @@ namespace Bootstrapper | |||
| 405 | BURN_ENGINE_STATE* pEngineState = &engineState; | 295 | BURN_ENGINE_STATE* pEngineState = &engineState; |
| 406 | BURN_PLAN* pPlan = &engineState.plan; | 296 | BURN_PLAN* pPlan = &engineState.plan; |
| 407 | 297 | ||
| 408 | InitializeEngineStateForCorePlan(wzSingleMsiManifest, pEngineState); | 298 | InitializeEngineStateForCorePlan(wzSingleMsiManifestFileName, pEngineState); |
| 409 | DetectAttachedContainerAsAttached(pEngineState); | 299 | DetectAttachedContainerAsAttached(pEngineState); |
| 410 | DetectPackagesAsAbsent(pEngineState); | 300 | DetectPackagesAsAbsent(pEngineState); |
| 411 | DetectUpgradeBundle(pEngineState, L"{FD9920AD-DBCA-4C6C-8CD5-B47431CE8D21}", L"0.9.0.0"); | 301 | DetectUpgradeBundle(pEngineState, L"{FD9920AD-DBCA-4C6C-8CD5-B47431CE8D21}", L"0.9.0.0"); |
| @@ -422,11 +312,11 @@ namespace Bootstrapper | |||
| 422 | DWORD dwIndex = 0; | 312 | DWORD dwIndex = 0; |
| 423 | DWORD dwPackageStart = 0; | 313 | DWORD dwPackageStart = 0; |
| 424 | ValidateCacheCheckpoint(pPlan, fRollback, dwIndex++, 1); | 314 | ValidateCacheCheckpoint(pPlan, fRollback, dwIndex++, 1); |
| 425 | dwPackageStart = ValidateCachePackageStart(pPlan, fRollback, dwIndex++, L"PackageE", 5, 2, 33741, FALSE); | 315 | dwPackageStart = ValidateCachePackageStart(pPlan, fRollback, dwIndex++, L"PackageA", 5, 2, 33743, FALSE); |
| 426 | ValidateCacheExtractContainer(pPlan, fRollback, dwIndex++, L"WixAttachedContainer", FALSE, BURN_PLAN_INVALID_ACTION_INDEX, 2); | 316 | 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); | 317 | ValidateCacheCachePayload(pPlan, fRollback, dwIndex++, L"PackageA", L"PackageA", TRUE, FALSE, dwPackageStart); |
| 428 | ValidateCacheCachePayload(pPlan, fRollback, dwIndex++, L"PackageE", L"cabkAPka1fWa1PyiVdoVPuoB6Qvs3k", TRUE, FALSE, dwPackageStart); | 318 | ValidateCacheCachePayload(pPlan, fRollback, dwIndex++, L"PackageA", L"cab9Ins_fTP3wNwq5Gxo41ch5VUPaQ", TRUE, FALSE, dwPackageStart); |
| 429 | ValidateCachePackageStop(pPlan, fRollback, dwIndex++, L"PackageE", FALSE); | 319 | ValidateCachePackageStop(pPlan, fRollback, dwIndex++, L"PackageA", FALSE); |
| 430 | ValidateCacheSignalSyncpoint(pPlan, fRollback, dwIndex++, FALSE); | 320 | ValidateCacheSignalSyncpoint(pPlan, fRollback, dwIndex++, FALSE); |
| 431 | Assert::Equal(dwIndex, pPlan->cCacheActions); | 321 | Assert::Equal(dwIndex, pPlan->cCacheActions); |
| 432 | 322 | ||
| @@ -435,7 +325,7 @@ namespace Bootstrapper | |||
| 435 | Assert::Equal(dwIndex, pPlan->cRollbackCacheActions); | 325 | Assert::Equal(dwIndex, pPlan->cRollbackCacheActions); |
| 436 | 326 | ||
| 437 | Assert::Equal(0ull, pPlan->qwEstimatedSize); | 327 | Assert::Equal(0ull, pPlan->qwEstimatedSize); |
| 438 | Assert::Equal(33741ull, pPlan->qwCacheSizeTotal); | 328 | Assert::Equal(33743ull, pPlan->qwCacheSizeTotal); |
| 439 | 329 | ||
| 440 | fRollback = FALSE; | 330 | fRollback = FALSE; |
| 441 | dwIndex = 0; | 331 | dwIndex = 0; |
| @@ -451,9 +341,9 @@ namespace Bootstrapper | |||
| 451 | dwIndex = 0; | 341 | dwIndex = 0; |
| 452 | dwExecuteCheckpointId = 2; | 342 | dwExecuteCheckpointId = 2; |
| 453 | ValidateExecuteRollbackBoundary(pPlan, fRollback, dwIndex++, L"WixDefaultBoundary", TRUE, FALSE); | 343 | ValidateExecuteRollbackBoundary(pPlan, fRollback, dwIndex++, L"WixDefaultBoundary", TRUE, FALSE); |
| 454 | ValidateExecuteUncachePackage(pPlan, fRollback, dwIndex++, L"PackageE"); | 344 | ValidateExecuteUncachePackage(pPlan, fRollback, dwIndex++, L"PackageA"); |
| 455 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); | 345 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); |
| 456 | ValidateExecutePackageProvider(pPlan, fRollback, dwIndex++, L"PackageE", BURN_DEPENDENCY_ACTION_UNREGISTER); | 346 | ValidateExecutePackageProvider(pPlan, fRollback, dwIndex++, L"PackageA", BURN_DEPENDENCY_ACTION_UNREGISTER); |
| 457 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); | 347 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); |
| 458 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); | 348 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); |
| 459 | Assert::Equal(dwIndex, pPlan->cRollbackActions); | 349 | Assert::Equal(dwIndex, pPlan->cRollbackActions); |
| @@ -465,7 +355,7 @@ namespace Bootstrapper | |||
| 465 | Assert::Equal(dwIndex, pPlan->cCleanActions); | 355 | Assert::Equal(dwIndex, pPlan->cCleanActions); |
| 466 | 356 | ||
| 467 | UINT uIndex = 0; | 357 | UINT uIndex = 0; |
| 468 | ValidatePlannedProvider(pPlan, uIndex++, L"{4a04385a-0081-44ba-acd1-9e4e95cfc97f}", NULL); | 358 | ValidatePlannedProvider(pPlan, uIndex++, L"{A6F0CBF7-1578-450C-B9D7-9CF2EEC40002}", NULL); |
| 469 | Assert::Equal(uIndex, pPlan->cPlannedProviders); | 359 | Assert::Equal(uIndex, pPlan->cPlannedProviders); |
| 470 | } | 360 | } |
| 471 | 361 | ||
| @@ -477,7 +367,7 @@ namespace Bootstrapper | |||
| 477 | BURN_ENGINE_STATE* pEngineState = &engineState; | 367 | BURN_ENGINE_STATE* pEngineState = &engineState; |
| 478 | BURN_PLAN* pPlan = &engineState.plan; | 368 | BURN_PLAN* pPlan = &engineState.plan; |
| 479 | 369 | ||
| 480 | InitializeEngineStateForCorePlan(wzSingleMsiManifest, pEngineState); | 370 | InitializeEngineStateForCorePlan(wzSingleMsiManifestFileName, pEngineState); |
| 481 | DetectAttachedContainerAsAttached(pEngineState); | 371 | DetectAttachedContainerAsAttached(pEngineState); |
| 482 | DetectPackagesAsAbsent(pEngineState); | 372 | DetectPackagesAsAbsent(pEngineState); |
| 483 | DetectUpgradeBundle(pEngineState, L"{FD9920AD-DBCA-4C6C-8CD5-B47431CE8D21}", L"0.9.0.0"); | 373 | DetectUpgradeBundle(pEngineState, L"{FD9920AD-DBCA-4C6C-8CD5-B47431CE8D21}", L"0.9.0.0"); |
| @@ -494,22 +384,22 @@ namespace Bootstrapper | |||
| 494 | DWORD dwIndex = 0; | 384 | DWORD dwIndex = 0; |
| 495 | DWORD dwPackageStart = 0; | 385 | DWORD dwPackageStart = 0; |
| 496 | ValidateCacheCheckpoint(pPlan, fRollback, dwIndex++, 1); | 386 | ValidateCacheCheckpoint(pPlan, fRollback, dwIndex++, 1); |
| 497 | dwPackageStart = ValidateCachePackageStart(pPlan, fRollback, dwIndex++, L"PackageE", 5, 2, 33741, FALSE); | 387 | dwPackageStart = ValidateCachePackageStart(pPlan, fRollback, dwIndex++, L"PackageA", 5, 2, 33743, FALSE); |
| 498 | ValidateCacheExtractContainer(pPlan, fRollback, dwIndex++, L"WixAttachedContainer", FALSE, BURN_PLAN_INVALID_ACTION_INDEX, 2); | 388 | ValidateCacheExtractContainer(pPlan, fRollback, dwIndex++, L"WixAttachedContainer", FALSE, BURN_PLAN_INVALID_ACTION_INDEX, 2); |
| 499 | ValidateCacheCachePayload(pPlan, fRollback, dwIndex++, L"PackageE", L"PackageE", TRUE, FALSE, dwPackageStart); | 389 | ValidateCacheCachePayload(pPlan, fRollback, dwIndex++, L"PackageA", L"PackageA", TRUE, FALSE, dwPackageStart); |
| 500 | ValidateCacheCachePayload(pPlan, fRollback, dwIndex++, L"PackageE", L"cabkAPka1fWa1PyiVdoVPuoB6Qvs3k", TRUE, FALSE, dwPackageStart); | 390 | ValidateCacheCachePayload(pPlan, fRollback, dwIndex++, L"PackageA", L"cab9Ins_fTP3wNwq5Gxo41ch5VUPaQ", TRUE, FALSE, dwPackageStart); |
| 501 | ValidateCachePackageStop(pPlan, fRollback, dwIndex++, L"PackageE", FALSE); | 391 | ValidateCachePackageStop(pPlan, fRollback, dwIndex++, L"PackageA", FALSE); |
| 502 | ValidateCacheSignalSyncpoint(pPlan, fRollback, dwIndex++, FALSE); | 392 | ValidateCacheSignalSyncpoint(pPlan, fRollback, dwIndex++, FALSE); |
| 503 | Assert::Equal(dwIndex, pPlan->cCacheActions); | 393 | Assert::Equal(dwIndex, pPlan->cCacheActions); |
| 504 | 394 | ||
| 505 | fRollback = TRUE; | 395 | fRollback = TRUE; |
| 506 | dwIndex = 0; | 396 | dwIndex = 0; |
| 507 | ValidateCacheCheckpoint(pPlan, fRollback, dwIndex++, 1); | 397 | ValidateCacheCheckpoint(pPlan, fRollback, dwIndex++, 1); |
| 508 | ValidateCacheRollbackPackage(pPlan, fRollback, dwIndex++, L"PackageE", FALSE); | 398 | ValidateCacheRollbackPackage(pPlan, fRollback, dwIndex++, L"PackageA", FALSE); |
| 509 | Assert::Equal(dwIndex, pPlan->cRollbackCacheActions); | 399 | Assert::Equal(dwIndex, pPlan->cRollbackCacheActions); |
| 510 | 400 | ||
| 511 | Assert::Equal(35381ull, pPlan->qwEstimatedSize); | 401 | Assert::Equal(35694ull, pPlan->qwEstimatedSize); |
| 512 | Assert::Equal(33741ull, pPlan->qwCacheSizeTotal); | 402 | Assert::Equal(33743ull, pPlan->qwCacheSizeTotal); |
| 513 | 403 | ||
| 514 | fRollback = FALSE; | 404 | fRollback = FALSE; |
| 515 | dwIndex = 0; | 405 | dwIndex = 0; |
| @@ -518,12 +408,12 @@ namespace Bootstrapper | |||
| 518 | ValidateExecuteWaitSyncpoint(pPlan, fRollback, dwIndex++, pPlan->rgCacheActions[6].syncpoint.hEvent); | 408 | ValidateExecuteWaitSyncpoint(pPlan, fRollback, dwIndex++, pPlan->rgCacheActions[6].syncpoint.hEvent); |
| 519 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); | 409 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); |
| 520 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); | 410 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); |
| 521 | ValidateExecutePackageProvider(pPlan, fRollback, dwIndex++, L"PackageE", BURN_DEPENDENCY_ACTION_REGISTER); | 411 | ValidateExecutePackageProvider(pPlan, fRollback, dwIndex++, L"PackageA", BURN_DEPENDENCY_ACTION_REGISTER); |
| 522 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); | 412 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); |
| 523 | ValidateExecuteMsiPackage(pPlan, fRollback, dwIndex++, L"PackageE", BOOTSTRAPPER_ACTION_STATE_INSTALL, BURN_MSI_PROPERTY_INSTALL, INSTALLUILEVEL_NONE, FALSE, 0); | 413 | ValidateExecuteMsiPackage(pPlan, fRollback, dwIndex++, L"PackageA", BOOTSTRAPPER_ACTION_STATE_INSTALL, BURN_MSI_PROPERTY_INSTALL, INSTALLUILEVEL_NONE, FALSE, 0); |
| 524 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); | 414 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); |
| 525 | ValidateExecuteRegistration(pPlan, fRollback, dwIndex++, TRUE); | 415 | ValidateExecuteRegistration(pPlan, fRollback, dwIndex++, TRUE); |
| 526 | ValidateExecutePackageDependency(pPlan, fRollback, dwIndex++, L"PackageE", L"{4a04385a-0081-44ba-acd1-9e4e95cfc97f}", BURN_DEPENDENCY_ACTION_REGISTER); | 416 | ValidateExecutePackageDependency(pPlan, fRollback, dwIndex++, L"PackageA", L"{A6F0CBF7-1578-450C-B9D7-9CF2EEC40002}", BURN_DEPENDENCY_ACTION_REGISTER); |
| 527 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); | 417 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); |
| 528 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); | 418 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); |
| 529 | ValidateExecuteWaitSyncpoint(pPlan, fRollback, dwIndex++, pPlan->rgCacheActions[6].syncpoint.hEvent); | 419 | ValidateExecuteWaitSyncpoint(pPlan, fRollback, dwIndex++, pPlan->rgCacheActions[6].syncpoint.hEvent); |
| @@ -535,13 +425,13 @@ namespace Bootstrapper | |||
| 535 | dwExecuteCheckpointId = 2; | 425 | dwExecuteCheckpointId = 2; |
| 536 | ValidateExecuteRollbackBoundary(pPlan, fRollback, dwIndex++, L"WixDefaultBoundary", TRUE, FALSE); | 426 | ValidateExecuteRollbackBoundary(pPlan, fRollback, dwIndex++, L"WixDefaultBoundary", TRUE, FALSE); |
| 537 | ValidateExecuteRegistration(pPlan, fRollback, dwIndex++, FALSE); | 427 | ValidateExecuteRegistration(pPlan, fRollback, dwIndex++, FALSE); |
| 538 | ValidateExecuteUncachePackage(pPlan, fRollback, dwIndex++, L"PackageE"); | 428 | ValidateExecuteUncachePackage(pPlan, fRollback, dwIndex++, L"PackageA"); |
| 539 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); | 429 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); |
| 540 | ValidateExecutePackageProvider(pPlan, fRollback, dwIndex++, L"PackageE", BURN_DEPENDENCY_ACTION_UNREGISTER); | 430 | ValidateExecutePackageProvider(pPlan, fRollback, dwIndex++, L"PackageA", BURN_DEPENDENCY_ACTION_UNREGISTER); |
| 541 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); | 431 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); |
| 542 | ValidateExecuteMsiPackage(pPlan, fRollback, dwIndex++, L"PackageE", BOOTSTRAPPER_ACTION_STATE_UNINSTALL, BURN_MSI_PROPERTY_UNINSTALL, INSTALLUILEVEL_NONE, FALSE, 0); | 432 | ValidateExecuteMsiPackage(pPlan, fRollback, dwIndex++, L"PackageA", BOOTSTRAPPER_ACTION_STATE_UNINSTALL, BURN_MSI_PROPERTY_UNINSTALL, INSTALLUILEVEL_NONE, FALSE, 0); |
| 543 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); | 433 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); |
| 544 | ValidateExecutePackageDependency(pPlan, fRollback, dwIndex++, L"PackageE", L"{4a04385a-0081-44ba-acd1-9e4e95cfc97f}", BURN_DEPENDENCY_ACTION_UNREGISTER); | 434 | ValidateExecutePackageDependency(pPlan, fRollback, dwIndex++, L"PackageA", L"{A6F0CBF7-1578-450C-B9D7-9CF2EEC40002}", BURN_DEPENDENCY_ACTION_UNREGISTER); |
| 545 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); | 435 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); |
| 546 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); | 436 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); |
| 547 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); | 437 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); |
| @@ -555,7 +445,7 @@ namespace Bootstrapper | |||
| 555 | Assert::Equal(dwIndex, pPlan->cCleanActions); | 445 | Assert::Equal(dwIndex, pPlan->cCleanActions); |
| 556 | 446 | ||
| 557 | UINT uIndex = 0; | 447 | UINT uIndex = 0; |
| 558 | ValidatePlannedProvider(pPlan, uIndex++, L"{4a04385a-0081-44ba-acd1-9e4e95cfc97f}", NULL); | 448 | ValidatePlannedProvider(pPlan, uIndex++, L"{A6F0CBF7-1578-450C-B9D7-9CF2EEC40002}", NULL); |
| 559 | Assert::Equal(uIndex, pPlan->cPlannedProviders); | 449 | Assert::Equal(uIndex, pPlan->cPlannedProviders); |
| 560 | } | 450 | } |
| 561 | 451 | ||
| @@ -567,7 +457,7 @@ namespace Bootstrapper | |||
| 567 | BURN_ENGINE_STATE* pEngineState = &engineState; | 457 | BURN_ENGINE_STATE* pEngineState = &engineState; |
| 568 | BURN_PLAN* pPlan = &engineState.plan; | 458 | BURN_PLAN* pPlan = &engineState.plan; |
| 569 | 459 | ||
| 570 | InitializeEngineStateForCorePlan(wzSingleMsiManifest, pEngineState); | 460 | InitializeEngineStateForCorePlan(wzSingleMsiManifestFileName, pEngineState); |
| 571 | DetectPackagesAsPresentAndCached(pEngineState); | 461 | DetectPackagesAsPresentAndCached(pEngineState); |
| 572 | 462 | ||
| 573 | hr = CorePlan(pEngineState, BOOTSTRAPPER_ACTION_UNINSTALL); | 463 | hr = CorePlan(pEngineState, BOOTSTRAPPER_ACTION_UNINSTALL); |
| @@ -594,11 +484,11 @@ namespace Bootstrapper | |||
| 594 | DWORD dwExecuteCheckpointId = 1; | 484 | DWORD dwExecuteCheckpointId = 1; |
| 595 | ValidateExecuteRollbackBoundary(pPlan, fRollback, dwIndex++, L"WixDefaultBoundary", TRUE, FALSE); | 485 | ValidateExecuteRollbackBoundary(pPlan, fRollback, dwIndex++, L"WixDefaultBoundary", TRUE, FALSE); |
| 596 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); | 486 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); |
| 597 | ValidateExecutePackageDependency(pPlan, fRollback, dwIndex++, L"PackageE", L"{4a04385a-0081-44ba-acd1-9e4e95cfc97f}", BURN_DEPENDENCY_ACTION_UNREGISTER); | 487 | ValidateExecutePackageDependency(pPlan, fRollback, dwIndex++, L"PackageA", L"{A6F0CBF7-1578-450C-B9D7-9CF2EEC40002}", BURN_DEPENDENCY_ACTION_UNREGISTER); |
| 598 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); | 488 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); |
| 599 | ValidateExecutePackageProvider(pPlan, fRollback, dwIndex++, L"PackageE", BURN_DEPENDENCY_ACTION_UNREGISTER); | 489 | ValidateExecutePackageProvider(pPlan, fRollback, dwIndex++, L"PackageA", BURN_DEPENDENCY_ACTION_UNREGISTER); |
| 600 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); | 490 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); |
| 601 | ValidateExecuteMsiPackage(pPlan, fRollback, dwIndex++, L"PackageE", BOOTSTRAPPER_ACTION_STATE_UNINSTALL, BURN_MSI_PROPERTY_UNINSTALL, INSTALLUILEVEL_NONE, FALSE, 0); | 491 | ValidateExecuteMsiPackage(pPlan, fRollback, dwIndex++, L"PackageA", BOOTSTRAPPER_ACTION_STATE_UNINSTALL, BURN_MSI_PROPERTY_UNINSTALL, INSTALLUILEVEL_NONE, FALSE, 0); |
| 602 | ValidateExecuteRegistration(pPlan, fRollback, dwIndex++, FALSE); | 492 | ValidateExecuteRegistration(pPlan, fRollback, dwIndex++, FALSE); |
| 603 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); | 493 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); |
| 604 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); | 494 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); |
| @@ -608,11 +498,11 @@ namespace Bootstrapper | |||
| 608 | dwIndex = 0; | 498 | dwIndex = 0; |
| 609 | dwExecuteCheckpointId = 1; | 499 | dwExecuteCheckpointId = 1; |
| 610 | ValidateExecuteRollbackBoundary(pPlan, fRollback, dwIndex++, L"WixDefaultBoundary", TRUE, FALSE); | 500 | ValidateExecuteRollbackBoundary(pPlan, fRollback, dwIndex++, L"WixDefaultBoundary", TRUE, FALSE); |
| 611 | ValidateExecutePackageDependency(pPlan, fRollback, dwIndex++, L"PackageE", L"{4a04385a-0081-44ba-acd1-9e4e95cfc97f}", BURN_DEPENDENCY_ACTION_REGISTER); | 501 | ValidateExecutePackageDependency(pPlan, fRollback, dwIndex++, L"PackageA", L"{A6F0CBF7-1578-450C-B9D7-9CF2EEC40002}", BURN_DEPENDENCY_ACTION_REGISTER); |
| 612 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); | 502 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); |
| 613 | ValidateExecutePackageProvider(pPlan, fRollback, dwIndex++, L"PackageE", BURN_DEPENDENCY_ACTION_REGISTER); | 503 | ValidateExecutePackageProvider(pPlan, fRollback, dwIndex++, L"PackageA", BURN_DEPENDENCY_ACTION_REGISTER); |
| 614 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); | 504 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); |
| 615 | ValidateExecuteMsiPackage(pPlan, fRollback, dwIndex++, L"PackageE", BOOTSTRAPPER_ACTION_STATE_INSTALL, BURN_MSI_PROPERTY_INSTALL, INSTALLUILEVEL_NONE, FALSE, 0); | 505 | ValidateExecuteMsiPackage(pPlan, fRollback, dwIndex++, L"PackageA", BOOTSTRAPPER_ACTION_STATE_INSTALL, BURN_MSI_PROPERTY_INSTALL, INSTALLUILEVEL_NONE, FALSE, 0); |
| 616 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); | 506 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); |
| 617 | ValidateExecuteRegistration(pPlan, fRollback, dwIndex++, TRUE); | 507 | ValidateExecuteRegistration(pPlan, fRollback, dwIndex++, TRUE); |
| 618 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); | 508 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); |
| @@ -623,20 +513,21 @@ namespace Bootstrapper | |||
| 623 | Assert::Equal(1ul, pPlan->cOverallProgressTicksTotal); | 513 | Assert::Equal(1ul, pPlan->cOverallProgressTicksTotal); |
| 624 | 514 | ||
| 625 | dwIndex = 0; | 515 | dwIndex = 0; |
| 626 | ValidateCleanAction(pPlan, dwIndex++, L"PackageE"); | 516 | ValidateCleanAction(pPlan, dwIndex++, L"PackageA"); |
| 627 | Assert::Equal(dwIndex, pPlan->cCleanActions); | 517 | Assert::Equal(dwIndex, pPlan->cCleanActions); |
| 628 | 518 | ||
| 629 | UINT uIndex = 0; | 519 | UINT uIndex = 0; |
| 630 | ValidatePlannedProvider(pPlan, uIndex++, L"{4a04385a-0081-44ba-acd1-9e4e95cfc97f}", NULL); | 520 | ValidatePlannedProvider(pPlan, uIndex++, L"{A6F0CBF7-1578-450C-B9D7-9CF2EEC40002}", NULL); |
| 631 | ValidatePlannedProvider(pPlan, uIndex++, L"{284F56B6-B6C7-404A-B9B5-78F63BF79494}", NULL); | 521 | ValidatePlannedProvider(pPlan, uIndex++, L"{64633047-D172-4BBB-B202-64337D15C952}", NULL); |
| 632 | Assert::Equal(uIndex, pPlan->cPlannedProviders); | 522 | Assert::Equal(uIndex, pPlan->cPlannedProviders); |
| 633 | } | 523 | } |
| 634 | 524 | ||
| 635 | private: | 525 | private: |
| 636 | // This doesn't initialize everything, just enough for CorePlan to work. | 526 | // This doesn't initialize everything, just enough for CorePlan to work. |
| 637 | void InitializeEngineStateForCorePlan(LPCWSTR wzManifest, BURN_ENGINE_STATE* pEngineState) | 527 | void InitializeEngineStateForCorePlan(LPCWSTR wzManifestFileName, BURN_ENGINE_STATE* pEngineState) |
| 638 | { | 528 | { |
| 639 | HRESULT hr = S_OK; | 529 | HRESULT hr = S_OK; |
| 530 | LPWSTR sczFilePath = NULL; | ||
| 640 | 531 | ||
| 641 | ::InitializeCriticalSection(&pEngineState->csActive); | 532 | ::InitializeCriticalSection(&pEngineState->csActive); |
| 642 | ::InitializeCriticalSection(&pEngineState->userExperience.csEngineActive); | 533 | ::InitializeCriticalSection(&pEngineState->userExperience.csEngineActive); |
| @@ -644,8 +535,22 @@ namespace Bootstrapper | |||
| 644 | hr = VariableInitialize(&pEngineState->variables); | 535 | hr = VariableInitialize(&pEngineState->variables); |
| 645 | NativeAssert::Succeeded(hr, "Failed to initialize variables."); | 536 | NativeAssert::Succeeded(hr, "Failed to initialize variables."); |
| 646 | 537 | ||
| 647 | hr = ManifestLoadXml(wzManifest, pEngineState); | 538 | try |
| 648 | NativeAssert::Succeeded(hr, "Failed to load manifest."); | 539 | { |
| 540 | pin_ptr<const wchar_t> dataDirectory = PtrToStringChars(this->TestContext->TestDirectory); | ||
| 541 | hr = PathConcat(dataDirectory, L"TestData\\PlanTest", &sczFilePath); | ||
| 542 | NativeAssert::Succeeded(hr, "Failed to get path to test file directory."); | ||
| 543 | hr = PathConcat(sczFilePath, wzManifestFileName, &sczFilePath); | ||
| 544 | NativeAssert::Succeeded(hr, "Failed to get path to test file."); | ||
| 545 | Assert::True(FileExistsEx(sczFilePath, NULL), "Test file does not exist."); | ||
| 546 | |||
| 547 | hr = ManifestLoadXmlFromFile(sczFilePath, pEngineState); | ||
| 548 | NativeAssert::Succeeded(hr, "Failed to load manifest."); | ||
| 549 | } | ||
| 550 | finally | ||
| 551 | { | ||
| 552 | ReleaseStr(sczFilePath); | ||
| 553 | } | ||
| 649 | 554 | ||
| 650 | pEngineState->userExperience.pfnBAProc = PlanTestBAProc; | 555 | pEngineState->userExperience.pfnBAProc = PlanTestBAProc; |
| 651 | } | 556 | } |
| @@ -662,6 +567,22 @@ namespace Bootstrapper | |||
| 662 | } | 567 | } |
| 663 | } | 568 | } |
| 664 | 569 | ||
| 570 | void DetectPackageAsAbsent(BURN_PACKAGE* pPackage) | ||
| 571 | { | ||
| 572 | pPackage->currentState = BOOTSTRAPPER_PACKAGE_STATE_ABSENT; | ||
| 573 | } | ||
| 574 | |||
| 575 | void DetectPackageAsPresentAndCached(BURN_PACKAGE* pPackage) | ||
| 576 | { | ||
| 577 | pPackage->currentState = BOOTSTRAPPER_PACKAGE_STATE_PRESENT; | ||
| 578 | pPackage->cache = BURN_CACHE_STATE_COMPLETE; | ||
| 579 | |||
| 580 | for (DWORD i = 0; i < pPackage->cPayloads; ++i) | ||
| 581 | { | ||
| 582 | pPackage->rgPayloads[i].fCached = TRUE; | ||
| 583 | } | ||
| 584 | } | ||
| 585 | |||
| 665 | void DetectPackagesAsAbsent(BURN_ENGINE_STATE* pEngineState) | 586 | void DetectPackagesAsAbsent(BURN_ENGINE_STATE* pEngineState) |
| 666 | { | 587 | { |
| 667 | DetectReset(&pEngineState->registration, &pEngineState->packages); | 588 | DetectReset(&pEngineState->registration, &pEngineState->packages); |
| @@ -670,7 +591,7 @@ namespace Bootstrapper | |||
| 670 | for (DWORD i = 0; i < pEngineState->packages.cPackages; ++i) | 591 | for (DWORD i = 0; i < pEngineState->packages.cPackages; ++i) |
| 671 | { | 592 | { |
| 672 | BURN_PACKAGE* pPackage = pEngineState->packages.rgPackages + i; | 593 | BURN_PACKAGE* pPackage = pEngineState->packages.rgPackages + i; |
| 673 | pPackage->currentState = BOOTSTRAPPER_PACKAGE_STATE_ABSENT; | 594 | DetectPackageAsAbsent(pPackage); |
| 674 | } | 595 | } |
| 675 | } | 596 | } |
| 676 | 597 | ||
| @@ -684,12 +605,27 @@ namespace Bootstrapper | |||
| 684 | for (DWORD i = 0; i < pEngineState->packages.cPackages; ++i) | 605 | for (DWORD i = 0; i < pEngineState->packages.cPackages; ++i) |
| 685 | { | 606 | { |
| 686 | BURN_PACKAGE* pPackage = pEngineState->packages.rgPackages + i; | 607 | BURN_PACKAGE* pPackage = pEngineState->packages.rgPackages + i; |
| 687 | pPackage->currentState = BOOTSTRAPPER_PACKAGE_STATE_PRESENT; | 608 | DetectPackageAsPresentAndCached(pPackage); |
| 688 | pPackage->cache = BURN_CACHE_STATE_COMPLETE; | 609 | } |
| 610 | } | ||
| 689 | 611 | ||
| 690 | for (DWORD j = 0; j < pPackage->cPayloads; ++j) | 612 | void DetectPermanentPackagesAsPresentAndCached(BURN_ENGINE_STATE* pEngineState) |
| 613 | { | ||
| 614 | DetectReset(&pEngineState->registration, &pEngineState->packages); | ||
| 615 | PlanReset(&pEngineState->plan, &pEngineState->packages); | ||
| 616 | |||
| 617 | pEngineState->registration.fInstalled = TRUE; | ||
| 618 | |||
| 619 | for (DWORD i = 0; i < pEngineState->packages.cPackages; ++i) | ||
| 620 | { | ||
| 621 | BURN_PACKAGE* pPackage = pEngineState->packages.rgPackages + i; | ||
| 622 | if (pPackage->fUninstallable) | ||
| 623 | { | ||
| 624 | DetectPackageAsAbsent(pPackage); | ||
| 625 | } | ||
| 626 | else | ||
| 691 | { | 627 | { |
| 692 | pPackage->rgPayloads[j].fCached = TRUE; | 628 | DetectPackageAsPresentAndCached(pPackage); |
| 693 | } | 629 | } |
| 694 | } | 630 | } |
| 695 | } | 631 | } |
