From 1446d4e582465af5c09db3fba16afc59529a3863 Mon Sep 17 00:00:00 2001 From: Sean Hall Date: Tue, 11 May 2021 17:14:30 -0500 Subject: Fix StrAllocString assertions. --- src/burn/engine/registration.cpp | 10 ++++++---- src/burn/test/BurnUnitTest/PlanTest.cpp | 26 ++++++++++++++----------- src/internal/SetBuildNumber/SetBuildNumber.proj | 2 +- 3 files changed, 22 insertions(+), 16 deletions(-) diff --git a/src/burn/engine/registration.cpp b/src/burn/engine/registration.cpp index 19da543c..5b246112 100644 --- a/src/burn/engine/registration.cpp +++ b/src/burn/engine/registration.cpp @@ -1137,14 +1137,15 @@ static HRESULT GetBundleManufacturer( ) { HRESULT hr = S_OK; + LPCWSTR wzPublisher = pRegistration->sczPublisher ? pRegistration->sczPublisher : L""; hr = VariableGetString(pVariables, BURN_BUNDLE_MANUFACTURER, psczBundleManufacturer); if (E_NOTFOUND == hr) { - hr = VariableSetString(pVariables, BURN_BUNDLE_MANUFACTURER, pRegistration->sczPublisher, FALSE, FALSE); + hr = VariableSetString(pVariables, BURN_BUNDLE_MANUFACTURER, wzPublisher, FALSE, FALSE); ExitOnFailure(hr, "Failed to set bundle manufacturer."); - hr = StrAllocString(psczBundleManufacturer, pRegistration->sczPublisher, 0); + hr = StrAllocString(psczBundleManufacturer, wzPublisher, 0); } ExitOnFailure(hr, "Failed to get bundle manufacturer."); @@ -1159,14 +1160,15 @@ static HRESULT GetBundleName( ) { HRESULT hr = S_OK; + LPCWSTR wzDisplayName = pRegistration->sczDisplayName ? pRegistration->sczDisplayName : L""; hr = VariableGetString(pVariables, BURN_BUNDLE_NAME, psczBundleName); if (E_NOTFOUND == hr) { - hr = VariableSetString(pVariables, BURN_BUNDLE_NAME, pRegistration->sczDisplayName, FALSE, FALSE); + hr = VariableSetString(pVariables, BURN_BUNDLE_NAME, wzDisplayName, FALSE, FALSE); ExitOnFailure(hr, "Failed to set bundle name."); - hr = StrAllocString(psczBundleName, pRegistration->sczDisplayName, 0); + hr = StrAllocString(psczBundleName, wzDisplayName, 0); } ExitOnFailure(hr, "Failed to get bundle name."); diff --git a/src/burn/test/BurnUnitTest/PlanTest.cpp b/src/burn/test/BurnUnitTest/PlanTest.cpp index 3cb42c5f..7909d747 100644 --- a/src/burn/test/BurnUnitTest/PlanTest.cpp +++ b/src/burn/test/BurnUnitTest/PlanTest.cpp @@ -33,7 +33,7 @@ namespace Bootstrapper { } - [Fact(Skip = "Disable due to hang on CI")] + [Fact] void MsiTransactionInstallTest() { HRESULT hr = S_OK; @@ -170,7 +170,7 @@ namespace Bootstrapper ValidateNonPermanentPackageExpectedStates(&pEngineState->packages.rgPackages[2], L"PackageC", BURN_PACKAGE_REGISTRATION_STATE_PRESENT, BURN_PACKAGE_REGISTRATION_STATE_PRESENT); } - [Fact(Skip = "Disable due to hang on CI")] + [Fact] void MsiTransactionUninstallTest() { HRESULT hr = S_OK; @@ -279,7 +279,7 @@ namespace Bootstrapper ValidateNonPermanentPackageExpectedStates(&pEngineState->packages.rgPackages[2], L"PackageC", BURN_PACKAGE_REGISTRATION_STATE_ABSENT, BURN_PACKAGE_REGISTRATION_STATE_ABSENT); } - [Fact(Skip = "Disable due to hang on CI")] + [Fact] void RelatedBundleMissingFromCacheTest() { HRESULT hr = S_OK; @@ -362,7 +362,7 @@ namespace Bootstrapper ValidateNonPermanentPackageExpectedStates(&pEngineState->packages.rgPackages[0], L"PackageA", BURN_PACKAGE_REGISTRATION_STATE_PRESENT, BURN_PACKAGE_REGISTRATION_STATE_PRESENT); } - [Fact(Skip = "Disable due to hang on CI")] + [Fact] void SingleMsiCacheTest() { HRESULT hr = S_OK; @@ -433,7 +433,7 @@ namespace Bootstrapper ValidateNonPermanentPackageExpectedStates(&pEngineState->packages.rgPackages[0], L"PackageA", BURN_PACKAGE_REGISTRATION_STATE_PRESENT, BURN_PACKAGE_REGISTRATION_STATE_ABSENT); } - [Fact(Skip = "Disable due to hang on CI")] + [Fact] void SingleMsiInstallTest() { HRESULT hr = S_OK; @@ -517,7 +517,7 @@ namespace Bootstrapper ValidateNonPermanentPackageExpectedStates(&pEngineState->packages.rgPackages[0], L"PackageA", BURN_PACKAGE_REGISTRATION_STATE_PRESENT, BURN_PACKAGE_REGISTRATION_STATE_PRESENT); } - [Fact(Skip = "Disable due to hang on CI")] + [Fact] void SingleMsiInstalledWithNoInstalledPackagesModifyTest() { HRESULT hr = S_OK; @@ -577,7 +577,7 @@ namespace Bootstrapper ValidateNonPermanentPackageExpectedStates(&pEngineState->packages.rgPackages[0], L"PackageA", BURN_PACKAGE_REGISTRATION_STATE_ABSENT, BURN_PACKAGE_REGISTRATION_STATE_ABSENT); } - [Fact(Skip = "Disable due to hang on CI")] + [Fact] void SingleMsiUninstallTest() { HRESULT hr = S_OK; @@ -650,7 +650,7 @@ namespace Bootstrapper ValidateNonPermanentPackageExpectedStates(&pEngineState->packages.rgPackages[0], L"PackageA", BURN_PACKAGE_REGISTRATION_STATE_ABSENT, BURN_PACKAGE_REGISTRATION_STATE_ABSENT); } - [Fact(Skip = "Disable due to hang on CI")] + [Fact] void SingleMsiUninstallTestFromUpgradeBundleWithSameExactPackage() { HRESULT hr = S_OK; @@ -713,7 +713,7 @@ namespace Bootstrapper ValidateNonPermanentPackageExpectedStates(&pEngineState->packages.rgPackages[0], L"PackageA", BURN_PACKAGE_REGISTRATION_STATE_IGNORED, BURN_PACKAGE_REGISTRATION_STATE_IGNORED); } - [Fact(Skip = "Disable due to hang on CI")] + [Fact] void SlipstreamInstallTest() { HRESULT hr = S_OK; @@ -824,7 +824,7 @@ namespace Bootstrapper ValidateNonPermanentPackageExpectedStates(&pEngineState->packages.rgPackages[2], L"PatchA", BURN_PACKAGE_REGISTRATION_STATE_PRESENT, BURN_PACKAGE_REGISTRATION_STATE_PRESENT); } - [Fact(Skip = "Disable due to hang on CI")] + [Fact] void SlipstreamUninstallTest() { HRESULT hr = S_OK; @@ -1106,10 +1106,14 @@ namespace Bootstrapper HRESULT hr = S_OK; BURN_RELATED_BUNDLES* pRelatedBundles = &pEngineState->registration.relatedBundles; BURN_DEPENDENCY_PROVIDER dependencyProvider = { }; + LPCWSTR wzFilePath = pEngineState->registration.sczExecutableName; hr = StrAllocString(&dependencyProvider.sczKey, wzId, 0); NativeAssert::Succeeded(hr, "Failed to copy provider key"); + hr = StrAllocString(&dependencyProvider.sczDisplayName, wzId, 0); + NativeAssert::Succeeded(hr, "Failed to copy display name"); + dependencyProvider.fImported = TRUE; hr = StrAllocString(&dependencyProvider.sczVersion, wzVersion, 0); @@ -1126,7 +1130,7 @@ namespace Bootstrapper pRelatedBundle->fPlannable = TRUE; pRelatedBundle->relationType = BOOTSTRAPPER_RELATION_UPGRADE; - 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); + 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); NativeAssert::Succeeded(hr, "Failed to initialize related bundle to represent bundle: %ls", wzId); ++pRelatedBundles->cRelatedBundles; diff --git a/src/internal/SetBuildNumber/SetBuildNumber.proj b/src/internal/SetBuildNumber/SetBuildNumber.proj index e0993cd3..9342f297 100644 --- a/src/internal/SetBuildNumber/SetBuildNumber.proj +++ b/src/internal/SetBuildNumber/SetBuildNumber.proj @@ -28,7 +28,7 @@ Condition=" '$(APPVEYOR)'=='True' "> $(InformationalVersion) - PR#$(APPVEYOR_PULL_REQUEST_NUMBER)-$(AppVeyorBuildNumber) + PR#$(APPVEYOR_PULL_REQUEST_NUMBER)-$(AppVeyorBuildNumber) -- cgit v1.2.3-55-g6feb