diff options
author | Sean Hall <r.sean.hall@gmail.com> | 2022-03-18 20:15:33 -0500 |
---|---|---|
committer | Sean Hall <r.sean.hall@gmail.com> | 2022-03-19 12:07:32 -0500 |
commit | fb54576f1d05e82ba47cd718c4c4f8b3bad624c9 (patch) | |
tree | b7d6b30bd3c9294b74874c1a48b20a8da8869a69 /src/test/burn/WixToolsetTest.BurnE2E/FailureTests.cs | |
parent | 581c320e04949300d6c3bee71fb5fc1a557f9263 (diff) | |
download | wix-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.cs | 42 |
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 | ||
3 | namespace WixToolsetTest.BurnE2E | 3 | namespace 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"); |