summaryrefslogtreecommitdiff
path: root/src/test/burn/WixToolsetTest.BurnE2E
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/burn/WixToolsetTest.BurnE2E')
-rw-r--r--src/test/burn/WixToolsetTest.BurnE2E/ExePackageTests.cs26
-rw-r--r--src/test/burn/WixToolsetTest.BurnE2E/UpdateBundleTests.cs36
2 files changed, 62 insertions, 0 deletions
diff --git a/src/test/burn/WixToolsetTest.BurnE2E/ExePackageTests.cs b/src/test/burn/WixToolsetTest.BurnE2E/ExePackageTests.cs
index e76461f3..42301f30 100644
--- a/src/test/burn/WixToolsetTest.BurnE2E/ExePackageTests.cs
+++ b/src/test/burn/WixToolsetTest.BurnE2E/ExePackageTests.cs
@@ -143,6 +143,32 @@ namespace WixToolsetTest.BurnE2E
143 } 143 }
144 144
145 [RuntimeFact] 145 [RuntimeFact]
146 public void CanUseLargeCustomExitCode()
147 {
148 var customExitCodeExePackageBundle = this.CreateBundleInstaller(@"CustomExitCodeExePackage");
149
150 var installLogPath = customExitCodeExePackageBundle.Install(5, "EXEEXITCODE=-2147024891");
151 customExitCodeExePackageBundle.VerifyUnregisteredAndRemovedFromPackageCache();
152
153 Assert.True(LogVerifier.MessageInLogFile(installLogPath, "TestExe.exe\" /ec -2147024891"));
154 Assert.True(LogVerifier.MessageInLogFile(installLogPath, "The process for package: TestExe exited with code: 0x80070005. The exit code has been translated to type: ErrorScheduleReboot and restart: Required."));
155 Assert.True(LogVerifier.MessageInLogFile(installLogPath, "Applied execute package: TestExe, result: 0x80070005, restart: Required"));
156 Assert.True(LogVerifier.MessageInLogFile(installLogPath, "Apply complete, result: 0x80070005, restart: Required, ba requested restart: No"));
157 }
158
159 [RuntimeFact]
160 public void CanUseWildcardCustomExitCode()
161 {
162 var customExitCodeExePackageBundle = this.CreateBundleInstaller(@"CustomExitCodeExePackage");
163
164 var installLogPath = customExitCodeExePackageBundle.Install((int)MSIExec.MSIExecReturnCode.SUCCESS, "EXEEXITCODE=1");
165 customExitCodeExePackageBundle.VerifyUnregisteredAndRemovedFromPackageCache();
166
167 Assert.True(LogVerifier.MessageInLogFile(installLogPath, "TestExe.exe\" /ec 1"));
168 Assert.True(LogVerifier.MessageInLogFile(installLogPath, "The process for package: TestExe exited with code: 0x1. The exit code has been translated to type: Success and restart: None."));
169 }
170
171 [RuntimeFact]
146 public void CanInstallAndUninstallPerUserArpEntryExePackage() 172 public void CanInstallAndUninstallPerUserArpEntryExePackage()
147 { 173 {
148 var perUserArpEntryExePackageBundle = this.CreateBundleInstaller(@"PerUserArpEntryExePackage"); 174 var perUserArpEntryExePackageBundle = this.CreateBundleInstaller(@"PerUserArpEntryExePackage");
diff --git a/src/test/burn/WixToolsetTest.BurnE2E/UpdateBundleTests.cs b/src/test/burn/WixToolsetTest.BurnE2E/UpdateBundleTests.cs
index df666833..f7ec8647 100644
--- a/src/test/burn/WixToolsetTest.BurnE2E/UpdateBundleTests.cs
+++ b/src/test/burn/WixToolsetTest.BurnE2E/UpdateBundleTests.cs
@@ -242,5 +242,41 @@ namespace WixToolsetTest.BurnE2E
242 packageBv1.VerifyInstalled(false); 242 packageBv1.VerifyInstalled(false);
243 packageBv2.VerifyInstalled(false); 243 packageBv2.VerifyInstalled(false);
244 } 244 }
245
246 // Installs bundle Bv1.0 then attempts an update to bundle Bv2.0 during modify (server exists, v2.0 feed with wrong hash).
247 [RuntimeFact]
248 public void CanBlockWrongUpdateBundleFromDownloadInsteadOfModify()
249 {
250 var packageBv1 = this.CreatePackageInstaller("PackageBv1");
251 var packageBv2 = this.CreatePackageInstaller("PackageBv2");
252 var bundleBv1 = this.CreateBundleInstaller("BundleBv1");
253 var bundleBv2 = this.CreateBundleInstaller("BundleBv2");
254 var webServer = this.CreateWebServer();
255
256 webServer.AddFiles(new Dictionary<string, string>
257 {
258 { "/BundleB/feed", Path.Combine(this.TestContext.TestDataFolder, "FeedBv2.0_wronghash.xml") },
259 { "/BundleB/2.0/BundleB.exe", bundleBv2.Bundle },
260 });
261 webServer.Start();
262
263 packageBv1.VerifyInstalled(false);
264 packageBv2.VerifyInstalled(false);
265
266 bundleBv1.Install();
267 bundleBv1.VerifyRegisteredAndInPackageCache();
268
269 packageBv1.VerifyInstalled(true);
270 packageBv2.VerifyInstalled(false);
271
272 // Run the v1 bundle requesting an update bundle.
273 bundleBv1.Modify(unchecked((int)0x80091007), arguments: "-checkupdate");
274
275 bundleBv1.VerifyRegisteredAndInPackageCache();
276 bundleBv2.VerifyUnregisteredAndRemovedFromPackageCache();
277
278 packageBv1.VerifyInstalled(true);
279 packageBv2.VerifyInstalled(false);
280 }
245 } 281 }
246} 282}