diff options
| author | Sean Hall <r.sean.hall@gmail.com> | 2022-01-31 16:48:58 -0600 |
|---|---|---|
| committer | Sean Hall <r.sean.hall@gmail.com> | 2022-02-01 23:36:23 -0600 |
| commit | 328d6df64373cf340628a09e52dd77ea338bc838 (patch) | |
| tree | bba49ce9fe09bb2e3f178d5f1df62e5ee42cad78 /src/test | |
| parent | a2b98c1abd6e6a1469936af5d93e4ace713b3fba (diff) | |
| download | wix-328d6df64373cf340628a09e52dd77ea338bc838.tar.gz wix-328d6df64373cf340628a09e52dd77ea338bc838.tar.bz2 wix-328d6df64373cf340628a09e52dd77ea338bc838.zip | |
Don't uninstall package during rollback if there are dependents.
Diffstat (limited to 'src/test')
| -rw-r--r-- | src/test/burn/WixToolsetTest.BurnE2E/DependencyTests.cs | 150 |
1 files changed, 148 insertions, 2 deletions
diff --git a/src/test/burn/WixToolsetTest.BurnE2E/DependencyTests.cs b/src/test/burn/WixToolsetTest.BurnE2E/DependencyTests.cs index 7c74f348..7e3e28c1 100644 --- a/src/test/burn/WixToolsetTest.BurnE2E/DependencyTests.cs +++ b/src/test/burn/WixToolsetTest.BurnE2E/DependencyTests.cs | |||
| @@ -540,7 +540,7 @@ namespace WixToolsetTest.BurnE2E | |||
| 540 | } | 540 | } |
| 541 | 541 | ||
| 542 | [Fact(Skip = "https://github.com/wixtoolset/issues/issues/3421")] | 542 | [Fact(Skip = "https://github.com/wixtoolset/issues/issues/3421")] |
| 543 | public void DoesntLoseDependenciesOnFailedMajorUpgradeBundleFromMajorUpdateMsi() | 543 | public void DoesntLoseDependenciesOnFailedMajorUpgradeBundleFromMajorUpdateMsiFifo() |
| 544 | { | 544 | { |
| 545 | var packageAv1 = this.CreatePackageInstaller("PackageAv1"); | 545 | var packageAv1 = this.CreatePackageInstaller("PackageAv1"); |
| 546 | var packageC = this.CreatePackageInstaller("PackageC"); | 546 | var packageC = this.CreatePackageInstaller("PackageC"); |
| @@ -611,8 +611,80 @@ namespace WixToolsetTest.BurnE2E | |||
| 611 | packageGv2.VerifyInstalled(false); | 611 | packageGv2.VerifyInstalled(false); |
| 612 | } | 612 | } |
| 613 | 613 | ||
| 614 | [Fact(Skip = "https://github.com/wixtoolset/issues/issues/3421")] | ||
| 615 | public void DoesntLoseDependenciesOnFailedMajorUpgradeBundleFromMajorUpdateMsiLifo() | ||
| 616 | { | ||
| 617 | var packageAv1 = this.CreatePackageInstaller("PackageAv1"); | ||
| 618 | var packageC = this.CreatePackageInstaller("PackageC"); | ||
| 619 | var packageFv1 = this.CreatePackageInstaller("PackageFv1"); | ||
| 620 | var packageFv2 = this.CreatePackageInstaller("PackageFv2"); | ||
| 621 | var packageGv1 = this.CreatePackageInstaller("PackageGv1"); | ||
| 622 | var packageGv2 = this.CreatePackageInstaller("PackageGv2"); | ||
| 623 | var bundleM = this.CreateBundleInstaller("BundleM"); | ||
| 624 | var bundleNv1 = this.CreateBundleInstaller("BundleNv1"); | ||
| 625 | var bundleNv2 = this.CreateBundleInstaller("BundleNv2"); | ||
| 626 | var testBAController = this.CreateTestBAController(); | ||
| 627 | |||
| 628 | packageAv1.VerifyInstalled(false); | ||
| 629 | packageC.VerifyInstalled(false); | ||
| 630 | packageFv1.VerifyInstalled(false); | ||
| 631 | packageFv2.VerifyInstalled(false); | ||
| 632 | packageGv1.VerifyInstalled(false); | ||
| 633 | packageGv2.VerifyInstalled(false); | ||
| 634 | |||
| 635 | bundleM.Install(); | ||
| 636 | bundleM.VerifyRegisteredAndInPackageCache(); | ||
| 637 | |||
| 638 | packageAv1.VerifyInstalled(true); | ||
| 639 | packageFv1.VerifyInstalled(true); | ||
| 640 | packageFv2.VerifyInstalled(false); | ||
| 641 | packageGv1.VerifyInstalled(false); | ||
| 642 | packageGv2.VerifyInstalled(false); | ||
| 643 | |||
| 644 | bundleNv1.Install(); | ||
| 645 | bundleNv1.VerifyRegisteredAndInPackageCache(); | ||
| 646 | |||
| 647 | packageAv1.VerifyInstalled(true); | ||
| 648 | packageFv1.VerifyInstalled(true); | ||
| 649 | packageFv2.VerifyInstalled(false); | ||
| 650 | packageGv1.VerifyInstalled(true); | ||
| 651 | packageGv2.VerifyInstalled(false); | ||
| 652 | |||
| 653 | // Make PackageC fail. | ||
| 654 | testBAController.SetPackageCancelExecuteAtProgress("PackageC", 10); | ||
| 655 | |||
| 656 | bundleNv2.Install((int)MSIExec.MSIExecReturnCode.ERROR_INSTALL_USEREXIT); | ||
| 657 | bundleNv2.VerifyUnregisteredAndRemovedFromPackageCache(); | ||
| 658 | bundleNv1.VerifyRegisteredAndInPackageCache(); | ||
| 659 | |||
| 660 | packageAv1.VerifyInstalled(true); | ||
| 661 | packageC.VerifyInstalled(false); | ||
| 662 | packageFv1.VerifyInstalled(true); | ||
| 663 | packageFv2.VerifyInstalled(false); | ||
| 664 | packageGv1.VerifyInstalled(true); | ||
| 665 | packageGv2.VerifyInstalled(false); | ||
| 666 | |||
| 667 | bundleNv1.Uninstall(); | ||
| 668 | bundleNv1.VerifyUnregisteredAndRemovedFromPackageCache(); | ||
| 669 | |||
| 670 | packageAv1.VerifyInstalled(true); | ||
| 671 | packageFv1.VerifyInstalled(true); | ||
| 672 | packageFv2.VerifyInstalled(false); | ||
| 673 | packageGv1.VerifyInstalled(false); | ||
| 674 | packageGv2.VerifyInstalled(false); | ||
| 675 | |||
| 676 | bundleM.Uninstall(); | ||
| 677 | bundleM.VerifyUnregisteredAndRemovedFromPackageCache(); | ||
| 678 | |||
| 679 | packageAv1.VerifyInstalled(false); | ||
| 680 | packageFv1.VerifyInstalled(false); | ||
| 681 | packageFv2.VerifyInstalled(false); | ||
| 682 | packageGv1.VerifyInstalled(false); | ||
| 683 | packageGv2.VerifyInstalled(false); | ||
| 684 | } | ||
| 685 | |||
| 614 | [Fact] | 686 | [Fact] |
| 615 | public void DoesntLoseDependenciesOnFailedMajorUpgradeBundleFromMinorUpdateMsi() | 687 | public void DoesntLoseDependenciesOnFailedMajorUpgradeBundleFromMinorUpdateMsiFifo() |
| 616 | { | 688 | { |
| 617 | var packageAv1 = this.CreatePackageInstaller("PackageAv1"); | 689 | var packageAv1 = this.CreatePackageInstaller("PackageAv1"); |
| 618 | var packageC = this.CreatePackageInstaller("PackageC"); | 690 | var packageC = this.CreatePackageInstaller("PackageC"); |
| @@ -686,6 +758,80 @@ namespace WixToolsetTest.BurnE2E | |||
| 686 | } | 758 | } |
| 687 | 759 | ||
| 688 | [Fact] | 760 | [Fact] |
| 761 | public void DoesntLoseDependenciesOnFailedMajorUpgradeBundleFromMinorUpdateMsiLifo() | ||
| 762 | { | ||
| 763 | var packageAv1 = this.CreatePackageInstaller("PackageAv1"); | ||
| 764 | var packageC = this.CreatePackageInstaller("PackageC"); | ||
| 765 | var packageFv1 = this.CreatePackageInstaller("PackageFv1"); | ||
| 766 | var packageFv101 = this.CreatePackageInstaller("PackageFv1_0_1"); | ||
| 767 | var packageGv1 = this.CreatePackageInstaller("PackageGv1"); | ||
| 768 | var packageGv101 = this.CreatePackageInstaller("PackageGv1_0_1"); | ||
| 769 | var bundleM = this.CreateBundleInstaller("BundleM"); | ||
| 770 | var bundleNv1 = this.CreateBundleInstaller("BundleNv1"); | ||
| 771 | var bundleNv101 = this.CreateBundleInstaller("BundleNv1_0_1"); | ||
| 772 | var testBAController = this.CreateTestBAController(); | ||
| 773 | |||
| 774 | packageAv1.VerifyInstalled(false); | ||
| 775 | packageC.VerifyInstalled(false); | ||
| 776 | packageFv1.VerifyInstalledWithVersion(false); | ||
| 777 | packageFv101.VerifyInstalledWithVersion(false); | ||
| 778 | packageGv1.VerifyInstalledWithVersion(false); | ||
| 779 | packageGv101.VerifyInstalledWithVersion(false); | ||
| 780 | |||
| 781 | bundleM.Install(); | ||
| 782 | bundleM.VerifyRegisteredAndInPackageCache(); | ||
| 783 | |||
| 784 | packageAv1.VerifyInstalled(true); | ||
| 785 | packageFv1.VerifyInstalledWithVersion(true); | ||
| 786 | packageFv101.VerifyInstalledWithVersion(false); | ||
| 787 | packageGv1.VerifyInstalledWithVersion(false); | ||
| 788 | packageGv101.VerifyInstalledWithVersion(false); | ||
| 789 | |||
| 790 | bundleNv1.Install(); | ||
| 791 | bundleNv1.VerifyRegisteredAndInPackageCache(); | ||
| 792 | |||
| 793 | packageAv1.VerifyInstalled(true); | ||
| 794 | packageFv1.VerifyInstalledWithVersion(true); | ||
| 795 | packageFv101.VerifyInstalledWithVersion(false); | ||
| 796 | packageGv1.VerifyInstalledWithVersion(true); | ||
| 797 | packageGv101.VerifyInstalledWithVersion(false); | ||
| 798 | |||
| 799 | // Make PackageC fail. | ||
| 800 | testBAController.SetPackageCancelExecuteAtProgress("PackageC", 10); | ||
| 801 | |||
| 802 | // Verify https://github.com/wixtoolset/issues/issues/6510 - Dependency provider removed on rollback even though package is not rolled back | ||
| 803 | bundleNv101.Install((int)MSIExec.MSIExecReturnCode.ERROR_INSTALL_USEREXIT); | ||
| 804 | bundleNv101.VerifyUnregisteredAndRemovedFromPackageCache(); | ||
| 805 | bundleNv1.VerifyRegisteredAndInPackageCache(); | ||
| 806 | |||
| 807 | // The expected values will change after implementing https://github.com/wixtoolset/issues/issues/6535 and https://github.com/wixtoolset/issues/issues/3421 | ||
| 808 | packageAv1.VerifyInstalled(true); | ||
| 809 | packageC.VerifyInstalled(false); | ||
| 810 | packageFv1.VerifyInstalledWithVersion(false); | ||
| 811 | packageFv101.VerifyInstalledWithVersion(true); | ||
| 812 | packageGv1.VerifyInstalledWithVersion(false); | ||
| 813 | packageGv101.VerifyInstalledWithVersion(true); | ||
| 814 | |||
| 815 | bundleNv1.Uninstall(); | ||
| 816 | bundleNv1.VerifyUnregisteredAndRemovedFromPackageCache(); | ||
| 817 | |||
| 818 | packageAv1.VerifyInstalled(true); | ||
| 819 | packageFv1.VerifyInstalledWithVersion(false); | ||
| 820 | packageFv101.VerifyInstalledWithVersion(true); | ||
| 821 | packageGv1.VerifyInstalledWithVersion(false); | ||
| 822 | packageGv101.VerifyInstalledWithVersion(false); | ||
| 823 | |||
| 824 | bundleM.Uninstall(); | ||
| 825 | bundleM.VerifyUnregisteredAndRemovedFromPackageCache(); | ||
| 826 | |||
| 827 | packageAv1.VerifyInstalled(false); | ||
| 828 | packageFv1.VerifyInstalledWithVersion(false); | ||
| 829 | packageFv101.VerifyInstalledWithVersion(false); | ||
| 830 | packageGv1.VerifyInstalledWithVersion(false); | ||
| 831 | packageGv101.VerifyInstalledWithVersion(false); | ||
| 832 | } | ||
| 833 | |||
| 834 | [Fact] | ||
| 689 | public void DoesntRegisterDependencyOnPackageNotSelectedForInstall() | 835 | public void DoesntRegisterDependencyOnPackageNotSelectedForInstall() |
| 690 | { | 836 | { |
| 691 | var testRegistryValueExe = "ExeA"; | 837 | var testRegistryValueExe = "ExeA"; |
