summaryrefslogtreecommitdiff
path: root/src/test/burn/WixToolsetTest.BurnE2E/FailureTests.cs
diff options
context:
space:
mode:
authorSean Hall <r.sean.hall@gmail.com>2022-03-18 20:15:33 -0500
committerSean Hall <r.sean.hall@gmail.com>2022-03-19 12:07:32 -0500
commitfb54576f1d05e82ba47cd718c4c4f8b3bad624c9 (patch)
treeb7d6b30bd3c9294b74874c1a48b20a8da8869a69 /src/test/burn/WixToolsetTest.BurnE2E/FailureTests.cs
parent581c320e04949300d6c3bee71fb5fc1a557f9263 (diff)
downloadwix-fb54576f1d05e82ba47cd718c4c4f8b3bad624c9.tar.gz
wix-fb54576f1d05e82ba47cd718c4c4f8b3bad624c9.tar.bz2
wix-fb54576f1d05e82ba47cd718c4c4f8b3bad624c9.zip
Give BA process id and option to wait for cancelled process to exit.
Diffstat (limited to 'src/test/burn/WixToolsetTest.BurnE2E/FailureTests.cs')
-rw-r--r--src/test/burn/WixToolsetTest.BurnE2E/FailureTests.cs42
1 files changed, 42 insertions, 0 deletions
diff --git a/src/test/burn/WixToolsetTest.BurnE2E/FailureTests.cs b/src/test/burn/WixToolsetTest.BurnE2E/FailureTests.cs
index d8428a54..bbc0b387 100644
--- a/src/test/burn/WixToolsetTest.BurnE2E/FailureTests.cs
+++ b/src/test/burn/WixToolsetTest.BurnE2E/FailureTests.cs
@@ -2,7 +2,9 @@
2 2
3namespace WixToolsetTest.BurnE2E 3namespace WixToolsetTest.BurnE2E
4{ 4{
5 using System.Threading;
5 using WixTestTools; 6 using WixTestTools;
7 using WixToolset.Mba.Core;
6 using Xunit; 8 using Xunit;
7 using Xunit.Abstractions; 9 using Xunit.Abstractions;
8 10
@@ -11,6 +13,46 @@ namespace WixToolsetTest.BurnE2E
11 public FailureTests(ITestOutputHelper testOutputHelper) : base(testOutputHelper) { } 13 public FailureTests(ITestOutputHelper testOutputHelper) : base(testOutputHelper) { }
12 14
13 [Fact] 15 [Fact]
16 public void CanCancelExePackageAndAbandonIt()
17 {
18 var bundleD = this.CreateBundleInstaller("BundleD");
19 var testBAController = this.CreateTestBAController();
20
21 // Cancel package ExeA after it starts.
22 testBAController.SetPackageCancelExecuteAtProgress("ExeA", 1);
23 testBAController.SetPackageRecordTestRegistryValue("ExeA");
24
25 var logPath = bundleD.Install((int)MSIExec.MSIExecReturnCode.ERROR_INSTALL_USEREXIT);
26 bundleD.VerifyUnregisteredAndRemovedFromPackageCache();
27
28 Assert.True(LogVerifier.MessageInLogFile(logPath, "TestRegistryValue: ExeA, Version, ''"));
29
30 // Make sure ExeA finishes running.
31 Thread.Sleep(3000);
32
33 bundleD.VerifyExeTestRegistryValue("ExeA", "1.0.0.0");
34 }
35
36 [Fact]
37 public void CanCancelExePackageAndWaitUntilItCompletes()
38 {
39 var bundleD = this.CreateBundleInstaller("BundleD");
40 var testBAController = this.CreateTestBAController();
41
42 // Cancel package ExeA after it starts.
43 testBAController.SetPackageCancelExecuteAtProgress("ExeA", 1);
44 testBAController.SetPackageProcessCancelAction("ExeA", BOOTSTRAPPER_EXECUTEPROCESSCANCEL_ACTION.Wait);
45 testBAController.SetPackageRecordTestRegistryValue("ExeA");
46
47 var logPath = bundleD.Install((int)MSIExec.MSIExecReturnCode.ERROR_INSTALL_USEREXIT);
48 bundleD.VerifyUnregisteredAndRemovedFromPackageCache();
49
50 Assert.True(LogVerifier.MessageInLogFile(logPath, "TestRegistryValue: ExeA, Version, '1.0.0.0'"));
51
52 bundleD.VerifyExeTestRegistryValue("ExeA", "1.0.0.0");
53 }
54
55 [Fact]
14 public void CanCancelMsiPackageVeryEarly() 56 public void CanCancelMsiPackageVeryEarly()
15 { 57 {
16 var packageA = this.CreatePackageInstaller("PackageA"); 58 var packageA = this.CreatePackageInstaller("PackageA");