diff options
| author | Sean Hall <r.sean.hall@gmail.com> | 2022-02-22 20:23:43 -0600 |
|---|---|---|
| committer | Sean Hall <r.sean.hall@gmail.com> | 2022-02-22 23:37:57 -0600 |
| commit | 8e8f724d90c6835febb8b5865009746aea73a334 (patch) | |
| tree | b255c0a7232af8d24bcf44fd476b95bdfdcfe777 /src/burn/test/BurnUnitTest/PlanTest.cpp | |
| parent | 0740d93ca8be06ec0e5da5b51ceff52f67ab5bf5 (diff) | |
| download | wix-8e8f724d90c6835febb8b5865009746aea73a334.tar.gz wix-8e8f724d90c6835febb8b5865009746aea73a334.tar.bz2 wix-8e8f724d90c6835febb8b5865009746aea73a334.zip | |
Add UnsafeUninstall action.
Fixes #6721
Diffstat (limited to 'src/burn/test/BurnUnitTest/PlanTest.cpp')
| -rw-r--r-- | src/burn/test/BurnUnitTest/PlanTest.cpp | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/src/burn/test/BurnUnitTest/PlanTest.cpp b/src/burn/test/BurnUnitTest/PlanTest.cpp index 81484234..ba28713f 100644 --- a/src/burn/test/BurnUnitTest/PlanTest.cpp +++ b/src/burn/test/BurnUnitTest/PlanTest.cpp | |||
| @@ -993,6 +993,84 @@ namespace Bootstrapper | |||
| 993 | } | 993 | } |
| 994 | 994 | ||
| 995 | [Fact] | 995 | [Fact] |
| 996 | void SingleMsiUnsafeUninstallTest() | ||
| 997 | { | ||
| 998 | HRESULT hr = S_OK; | ||
| 999 | BURN_ENGINE_STATE engineState = { }; | ||
| 1000 | BURN_ENGINE_STATE* pEngineState = &engineState; | ||
| 1001 | BURN_PLAN* pPlan = &engineState.plan; | ||
| 1002 | |||
| 1003 | InitializeEngineStateForCorePlan(wzSingleMsiManifestFileName, pEngineState); | ||
| 1004 | DetectPackagesAsPresentAndCached(pEngineState); | ||
| 1005 | |||
| 1006 | hr = CorePlan(pEngineState, BOOTSTRAPPER_ACTION_UNSAFE_UNINSTALL); | ||
| 1007 | NativeAssert::Succeeded(hr, "CorePlan failed"); | ||
| 1008 | |||
| 1009 | Assert::Equal<DWORD>(BOOTSTRAPPER_ACTION_UNSAFE_UNINSTALL, pPlan->action); | ||
| 1010 | Assert::Equal<BOOL>(TRUE, pPlan->fPerMachine); | ||
| 1011 | Assert::Equal<BOOL>(TRUE, pPlan->fDisableRollback); | ||
| 1012 | |||
| 1013 | BOOL fRollback = FALSE; | ||
| 1014 | DWORD dwIndex = 0; | ||
| 1015 | Assert::Equal(dwIndex, pPlan->cCacheActions); | ||
| 1016 | |||
| 1017 | fRollback = TRUE; | ||
| 1018 | dwIndex = 0; | ||
| 1019 | Assert::Equal(dwIndex, pPlan->cRollbackCacheActions); | ||
| 1020 | |||
| 1021 | Assert::Equal(0ull, pPlan->qwEstimatedSize); | ||
| 1022 | Assert::Equal(0ull, pPlan->qwCacheSizeTotal); | ||
| 1023 | |||
| 1024 | fRollback = FALSE; | ||
| 1025 | dwIndex = 0; | ||
| 1026 | DWORD dwExecuteCheckpointId = 1; | ||
| 1027 | ValidateExecuteRollbackBoundaryStart(pPlan, fRollback, dwIndex++, L"WixDefaultBoundary", TRUE, FALSE); | ||
| 1028 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); | ||
| 1029 | ValidateExecutePackageDependency(pPlan, fRollback, dwIndex++, L"PackageA", L"{A6F0CBF7-1578-450C-B9D7-9CF2EEC40002}", unregisterActions1, 1); | ||
| 1030 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); | ||
| 1031 | ValidateExecutePackageProvider(pPlan, fRollback, dwIndex++, L"PackageA", unregisterActions1, 1); | ||
| 1032 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); | ||
| 1033 | ValidateExecuteMsiPackage(pPlan, fRollback, dwIndex++, L"PackageA", BOOTSTRAPPER_ACTION_STATE_UNINSTALL, BURN_MSI_PROPERTY_UNINSTALL, INSTALLUILEVEL_NONE, FALSE, BOOTSTRAPPER_MSI_FILE_VERSIONING_MISSING_OR_OLDER, 0); | ||
| 1034 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); | ||
| 1035 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); | ||
| 1036 | ValidateExecuteRollbackBoundaryEnd(pPlan, fRollback, dwIndex++); | ||
| 1037 | Assert::Equal(dwIndex, pPlan->cExecuteActions); | ||
| 1038 | |||
| 1039 | fRollback = TRUE; | ||
| 1040 | dwIndex = 0; | ||
| 1041 | dwExecuteCheckpointId = 1; | ||
| 1042 | ValidateExecuteRollbackBoundaryStart(pPlan, fRollback, dwIndex++, L"WixDefaultBoundary", TRUE, FALSE); | ||
| 1043 | ValidateExecutePackageDependency(pPlan, fRollback, dwIndex++, L"PackageA", L"{A6F0CBF7-1578-450C-B9D7-9CF2EEC40002}", registerActions1, 1); | ||
| 1044 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); | ||
| 1045 | ValidateExecutePackageProvider(pPlan, fRollback, dwIndex++, L"PackageA", registerActions1, 1); | ||
| 1046 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); | ||
| 1047 | ValidateExecuteMsiPackage(pPlan, fRollback, dwIndex++, L"PackageA", BOOTSTRAPPER_ACTION_STATE_INSTALL, BURN_MSI_PROPERTY_INSTALL, INSTALLUILEVEL_NONE, FALSE, BOOTSTRAPPER_MSI_FILE_VERSIONING_MISSING_OR_OLDER, 0); | ||
| 1048 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); | ||
| 1049 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); | ||
| 1050 | ValidateExecuteCheckpoint(pPlan, fRollback, dwIndex++, dwExecuteCheckpointId++); | ||
| 1051 | ValidateExecuteRollbackBoundaryEnd(pPlan, fRollback, dwIndex++); | ||
| 1052 | Assert::Equal(dwIndex, pPlan->cRollbackActions); | ||
| 1053 | |||
| 1054 | Assert::Equal(1ul, pPlan->cExecutePackagesTotal); | ||
| 1055 | Assert::Equal(1ul, pPlan->cOverallProgressTicksTotal); | ||
| 1056 | |||
| 1057 | dwIndex = 0; | ||
| 1058 | Assert::Equal(dwIndex, pPlan->cRestoreRelatedBundleActions); | ||
| 1059 | |||
| 1060 | dwIndex = 0; | ||
| 1061 | ValidateCleanAction(pPlan, dwIndex++, L"PackageA"); | ||
| 1062 | Assert::Equal(dwIndex, pPlan->cCleanActions); | ||
| 1063 | |||
| 1064 | UINT uIndex = 0; | ||
| 1065 | ValidatePlannedProvider(pPlan, uIndex++, L"{A6F0CBF7-1578-450C-B9D7-9CF2EEC40002}", NULL); | ||
| 1066 | ValidatePlannedProvider(pPlan, uIndex++, L"{64633047-D172-4BBB-B202-64337D15C952}", NULL); | ||
| 1067 | Assert::Equal(uIndex, pPlan->cPlannedProviders); | ||
| 1068 | |||
| 1069 | Assert::Equal(1ul, pEngineState->packages.cPackages); | ||
| 1070 | ValidateNonPermanentPackageExpectedStates(&pEngineState->packages.rgPackages[0], L"PackageA", BURN_PACKAGE_REGISTRATION_STATE_ABSENT, BURN_PACKAGE_REGISTRATION_STATE_ABSENT); | ||
| 1071 | } | ||
| 1072 | |||
| 1073 | [Fact] | ||
| 996 | void SlipstreamInstallTest() | 1074 | void SlipstreamInstallTest() |
| 997 | { | 1075 | { |
| 998 | HRESULT hr = S_OK; | 1076 | HRESULT hr = S_OK; |
