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"; |