aboutsummaryrefslogtreecommitdiff
path: root/src/test/burn/WixToolsetTest.BurnE2E
diff options
context:
space:
mode:
authorSean Hall <r.sean.hall@gmail.com>2021-12-15 10:48:06 -0600
committerSean Hall <r.sean.hall@gmail.com>2021-12-30 15:00:45 -0600
commit9e2cda60e3852660f235beb5e0af1c746d0045e6 (patch)
tree8fca357e80bf638750fe900c4803a081e16adee8 /src/test/burn/WixToolsetTest.BurnE2E
parent07599b27596af68f0917c1afc6a748af3a3cda2f (diff)
downloadwix-9e2cda60e3852660f235beb5e0af1c746d0045e6.tar.gz
wix-9e2cda60e3852660f235beb5e0af1c746d0045e6.tar.bz2
wix-9e2cda60e3852660f235beb5e0af1c746d0045e6.zip
FilesInUse messages are too different to unify in the Burn engine.
Fixes #6348
Diffstat (limited to 'src/test/burn/WixToolsetTest.BurnE2E')
-rw-r--r--src/test/burn/WixToolsetTest.BurnE2E/FilesInUseTests.cs38
-rw-r--r--src/test/burn/WixToolsetTest.BurnE2E/TestBAController.cs10
2 files changed, 48 insertions, 0 deletions
diff --git a/src/test/burn/WixToolsetTest.BurnE2E/FilesInUseTests.cs b/src/test/burn/WixToolsetTest.BurnE2E/FilesInUseTests.cs
new file mode 100644
index 00000000..6ad68d22
--- /dev/null
+++ b/src/test/burn/WixToolsetTest.BurnE2E/FilesInUseTests.cs
@@ -0,0 +1,38 @@
1// Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
2
3namespace WixToolsetTest.BurnE2E
4{
5 using System.IO;
6 using WixTestTools;
7 using Xunit;
8 using Xunit.Abstractions;
9
10 public class FilesInUseTests : BurnE2ETests
11 {
12 public FilesInUseTests(ITestOutputHelper testOutputHelper) : base(testOutputHelper) { }
13
14 [Fact]
15 public void CanCancelInstallAfterRetryingLockedFile()
16 {
17 var packageA = this.CreatePackageInstaller("PackageA");
18 var bundleA = this.CreateBundleInstaller("BundleA");
19 var testBAController = this.CreateTestBAController();
20
21 testBAController.SetPackageRetryExecuteFilesInUse("PackageA", 1);
22
23 packageA.VerifyInstalled(false);
24
25 // Lock the file that will be installed.
26 string targetInstallFile = packageA.GetInstalledFilePath("Package.wxs");
27 Directory.CreateDirectory(Path.GetDirectoryName(targetInstallFile));
28 using (FileStream lockTargetFile = new FileStream(targetInstallFile, FileMode.CreateNew, FileAccess.ReadWrite, FileShare.None, 4096, FileOptions.DeleteOnClose))
29 {
30 bundleA.Install(expectedExitCode: (int)MSIExec.MSIExecReturnCode.ERROR_INSTALL_USEREXIT);
31 }
32
33 bundleA.VerifyUnregisteredAndRemovedFromPackageCache();
34
35 packageA.VerifyInstalled(false);
36 }
37 }
38}
diff --git a/src/test/burn/WixToolsetTest.BurnE2E/TestBAController.cs b/src/test/burn/WixToolsetTest.BurnE2E/TestBAController.cs
index 6e4fe6c6..d2e8a1ca 100644
--- a/src/test/burn/WixToolsetTest.BurnE2E/TestBAController.cs
+++ b/src/test/burn/WixToolsetTest.BurnE2E/TestBAController.cs
@@ -118,6 +118,16 @@ namespace WixToolsetTest.BurnE2E
118 } 118 }
119 119
120 /// <summary> 120 /// <summary>
121 /// Retries the files in use one or more times before canceling.
122 /// </summary>
123 /// <param name="packageId">Package identity.</param>
124 /// <param name="cancelPoint">Sets or removes the retry count on a package's file in use message.</param>
125 public void SetPackageRetryExecuteFilesInUse(string packageId, int? retryCount)
126 {
127 this.SetPackageState(packageId, "RetryExecuteFilesInUse", retryCount.HasValue ? retryCount.ToString() : null);
128 }
129
130 /// <summary>
121 /// Sets the requested state for a package that the TestBA will return to the engine during plan. 131 /// Sets the requested state for a package that the TestBA will return to the engine during plan.
122 /// </summary> 132 /// </summary>
123 /// <param name="packageId">Package identity.</param> 133 /// <param name="packageId">Package identity.</param>