@joebigelow / wix-1 / commits / 1446d4e5

Fix StrAllocString assertions.

Sean Hall committed May 11, 2021 at 17:14 UTC 1446d4e582465af5c09db3fba16afc59529a3863
3 files changed +22 -16
src/burn/engine/registration.cpp
+6 -4
@@ -1137,14 +1137,15 @@ static HRESULT GetBundleManufacturer(
1137 )
1138 {
1139 HRESULT hr = S_OK;
1140 + LPCWSTR wzPublisher = pRegistration->sczPublisher ? pRegistration->sczPublisher : L"";
1141
1142 hr = VariableGetString(pVariables, BURN_BUNDLE_MANUFACTURER, psczBundleManufacturer);
1143 if (E_NOTFOUND == hr)
1144 {
1144 - hr = VariableSetString(pVariables, BURN_BUNDLE_MANUFACTURER, pRegistration->sczPublisher, FALSE, FALSE);
1145 + hr = VariableSetString(pVariables, BURN_BUNDLE_MANUFACTURER, wzPublisher, FALSE, FALSE);
1146 ExitOnFailure(hr, "Failed to set bundle manufacturer.");
1147
1147 - hr = StrAllocString(psczBundleManufacturer, pRegistration->sczPublisher, 0);
1148 + hr = StrAllocString(psczBundleManufacturer, wzPublisher, 0);
1149 }
1150 ExitOnFailure(hr, "Failed to get bundle manufacturer.");
1151
@@ -1159,14 +1160,15 @@ static HRESULT GetBundleName(
1160 )
1161 {
1162 HRESULT hr = S_OK;
1163 + LPCWSTR wzDisplayName = pRegistration->sczDisplayName ? pRegistration->sczDisplayName : L"";
1164
1165 hr = VariableGetString(pVariables, BURN_BUNDLE_NAME, psczBundleName);
1166 if (E_NOTFOUND == hr)
1167 {
1166 - hr = VariableSetString(pVariables, BURN_BUNDLE_NAME, pRegistration->sczDisplayName, FALSE, FALSE);
1168 + hr = VariableSetString(pVariables, BURN_BUNDLE_NAME, wzDisplayName, FALSE, FALSE);
1169 ExitOnFailure(hr, "Failed to set bundle name.");
1170
1169 - hr = StrAllocString(psczBundleName, pRegistration->sczDisplayName, 0);
1171 + hr = StrAllocString(psczBundleName, wzDisplayName, 0);
1172 }
1173 ExitOnFailure(hr, "Failed to get bundle name.");
1174
src/burn/test/BurnUnitTest/PlanTest.cpp
+15 -11
@@ -33,7 +33,7 @@ namespace Bootstrapper
33 {
34 }
35
36 - [Fact(Skip = "Disable due to hang on CI")]
36 + [Fact]
37 void MsiTransactionInstallTest()
38 {
39 HRESULT hr = S_OK;
@@ -170,7 +170,7 @@ namespace Bootstrapper
170 ValidateNonPermanentPackageExpectedStates(&pEngineState->packages.rgPackages[2], L"PackageC", BURN_PACKAGE_REGISTRATION_STATE_PRESENT, BURN_PACKAGE_REGISTRATION_STATE_PRESENT);
171 }
172
173 - [Fact(Skip = "Disable due to hang on CI")]
173 + [Fact]
174 void MsiTransactionUninstallTest()
175 {
176 HRESULT hr = S_OK;
@@ -279,7 +279,7 @@ namespace Bootstrapper
279 ValidateNonPermanentPackageExpectedStates(&pEngineState->packages.rgPackages[2], L"PackageC", BURN_PACKAGE_REGISTRATION_STATE_ABSENT, BURN_PACKAGE_REGISTRATION_STATE_ABSENT);
280 }
281
282 - [Fact(Skip = "Disable due to hang on CI")]
282 + [Fact]
283 void RelatedBundleMissingFromCacheTest()
284 {
285 HRESULT hr = S_OK;
@@ -362,7 +362,7 @@ namespace Bootstrapper
362 ValidateNonPermanentPackageExpectedStates(&pEngineState->packages.rgPackages[0], L"PackageA", BURN_PACKAGE_REGISTRATION_STATE_PRESENT, BURN_PACKAGE_REGISTRATION_STATE_PRESENT);
363 }
364
365 - [Fact(Skip = "Disable due to hang on CI")]
365 + [Fact]
366 void SingleMsiCacheTest()
367 {
368 HRESULT hr = S_OK;
@@ -433,7 +433,7 @@ namespace Bootstrapper
433 ValidateNonPermanentPackageExpectedStates(&pEngineState->packages.rgPackages[0], L"PackageA", BURN_PACKAGE_REGISTRATION_STATE_PRESENT, BURN_PACKAGE_REGISTRATION_STATE_ABSENT);
434 }
435
436 - [Fact(Skip = "Disable due to hang on CI")]
436 + [Fact]
437 void SingleMsiInstallTest()
438 {
439 HRESULT hr = S_OK;
@@ -517,7 +517,7 @@ namespace Bootstrapper
517 ValidateNonPermanentPackageExpectedStates(&pEngineState->packages.rgPackages[0], L"PackageA", BURN_PACKAGE_REGISTRATION_STATE_PRESENT, BURN_PACKAGE_REGISTRATION_STATE_PRESENT);
518 }
519
520 - [Fact(Skip = "Disable due to hang on CI")]
520 + [Fact]
521 void SingleMsiInstalledWithNoInstalledPackagesModifyTest()
522 {
523 HRESULT hr = S_OK;
@@ -577,7 +577,7 @@ namespace Bootstrapper
577 ValidateNonPermanentPackageExpectedStates(&pEngineState->packages.rgPackages[0], L"PackageA", BURN_PACKAGE_REGISTRATION_STATE_ABSENT, BURN_PACKAGE_REGISTRATION_STATE_ABSENT);
578 }
579
580 - [Fact(Skip = "Disable due to hang on CI")]
580 + [Fact]
581 void SingleMsiUninstallTest()
582 {
583 HRESULT hr = S_OK;
@@ -650,7 +650,7 @@ namespace Bootstrapper
650 ValidateNonPermanentPackageExpectedStates(&pEngineState->packages.rgPackages[0], L"PackageA", BURN_PACKAGE_REGISTRATION_STATE_ABSENT, BURN_PACKAGE_REGISTRATION_STATE_ABSENT);
651 }
652
653 - [Fact(Skip = "Disable due to hang on CI")]
653 + [Fact]
654 void SingleMsiUninstallTestFromUpgradeBundleWithSameExactPackage()
655 {
656 HRESULT hr = S_OK;
@@ -713,7 +713,7 @@ namespace Bootstrapper
713 ValidateNonPermanentPackageExpectedStates(&pEngineState->packages.rgPackages[0], L"PackageA", BURN_PACKAGE_REGISTRATION_STATE_IGNORED, BURN_PACKAGE_REGISTRATION_STATE_IGNORED);
714 }
715
716 - [Fact(Skip = "Disable due to hang on CI")]
716 + [Fact]
717 void SlipstreamInstallTest()
718 {
719 HRESULT hr = S_OK;
@@ -824,7 +824,7 @@ namespace Bootstrapper
824 ValidateNonPermanentPackageExpectedStates(&pEngineState->packages.rgPackages[2], L"PatchA", BURN_PACKAGE_REGISTRATION_STATE_PRESENT, BURN_PACKAGE_REGISTRATION_STATE_PRESENT);
825 }
826
827 - [Fact(Skip = "Disable due to hang on CI")]
827 + [Fact]
828 void SlipstreamUninstallTest()
829 {
830 HRESULT hr = S_OK;
@@ -1106,10 +1106,14 @@ namespace Bootstrapper
1106 HRESULT hr = S_OK;
1107 BURN_RELATED_BUNDLES* pRelatedBundles = &pEngineState->registration.relatedBundles;
1108 BURN_DEPENDENCY_PROVIDER dependencyProvider = { };
1109 + LPCWSTR wzFilePath = pEngineState->registration.sczExecutableName;
1110
1111 hr = StrAllocString(&dependencyProvider.sczKey, wzId, 0);
1112 NativeAssert::Succeeded(hr, "Failed to copy provider key");
1113
1114 + hr = StrAllocString(&dependencyProvider.sczDisplayName, wzId, 0);
1115 + NativeAssert::Succeeded(hr, "Failed to copy display name");
1116 +
1117 dependencyProvider.fImported = TRUE;
1118
1119 hr = StrAllocString(&dependencyProvider.sczVersion, wzVersion, 0);
@@ -1126,7 +1130,7 @@ namespace Bootstrapper
1130 pRelatedBundle->fPlannable = TRUE;
1131 pRelatedBundle->relationType = BOOTSTRAPPER_RELATION_UPGRADE;
1132
1129 - hr = PseudoBundleInitialize(0, &pRelatedBundle->package, TRUE, wzId, pRelatedBundle->relationType, BOOTSTRAPPER_PACKAGE_STATE_PRESENT, TRUE, NULL, NULL, NULL, 0, FALSE, L"-quiet", L"-repair -quiet", L"-uninstall -quiet", &dependencyProvider, NULL, 0);
1133 + hr = PseudoBundleInitialize(0, &pRelatedBundle->package, TRUE, wzId, pRelatedBundle->relationType, BOOTSTRAPPER_PACKAGE_STATE_PRESENT, TRUE, wzFilePath, wzFilePath, NULL, 0, FALSE, L"-quiet", L"-repair -quiet", L"-uninstall -quiet", &dependencyProvider, NULL, 0);
1134 NativeAssert::Succeeded(hr, "Failed to initialize related bundle to represent bundle: %ls", wzId);
1135
1136 ++pRelatedBundles->cRelatedBundles;
src/internal/SetBuildNumber/SetBuildNumber.proj
+1 -1
@@ -28,7 +28,7 @@
28 Condition=" '$(APPVEYOR)'=='True' ">
29 <PropertyGroup>
30 <AppVeyorBuildNumber>$(InformationalVersion)</AppVeyorBuildNumber>
31 - <AppVeyorBuildNumber Condition=" 'APPVEYOR_PULL_REQUEST_NUMBER'!='' ">PR#$(APPVEYOR_PULL_REQUEST_NUMBER)-$(AppVeyorBuildNumber)</AppVeyorBuildNumber>
31 + <AppVeyorBuildNumber Condition=" '$(APPVEYOR_PULL_REQUEST_NUMBER)'!='' ">PR#$(APPVEYOR_PULL_REQUEST_NUMBER)-$(AppVeyorBuildNumber)</AppVeyorBuildNumber>
32 </PropertyGroup>
33
34 <Message Importance="high" Text=" $(AppVeyorBuildNumber)" />