diff options
| -rw-r--r-- | src/wix/test/WixToolsetTest.CoreIntegration/LongPathFixture.cs | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/src/wix/test/WixToolsetTest.CoreIntegration/LongPathFixture.cs b/src/wix/test/WixToolsetTest.CoreIntegration/LongPathFixture.cs index 2cada64d..3bf7f006 100644 --- a/src/wix/test/WixToolsetTest.CoreIntegration/LongPathFixture.cs +++ b/src/wix/test/WixToolsetTest.CoreIntegration/LongPathFixture.cs | |||
| @@ -36,6 +36,7 @@ namespace WixToolsetTest.CoreIntegration | |||
| 36 | } | 36 | } |
| 37 | 37 | ||
| 38 | var intermediateFolder = Path.Combine(baseFolder, "obj"); | 38 | var intermediateFolder = Path.Combine(baseFolder, "obj"); |
| 39 | var outputPath = Path.Combine(baseFolder, "bin", "test.msi"); | ||
| 39 | 40 | ||
| 40 | var result = WixRunner.Execute( | 41 | var result = WixRunner.Execute( |
| 41 | [ | 42 | [ |
| @@ -45,9 +46,22 @@ namespace WixToolsetTest.CoreIntegration | |||
| 45 | "-loc", Path.Combine(folder, "Package.en-us.wxl"), | 46 | "-loc", Path.Combine(folder, "Package.en-us.wxl"), |
| 46 | "-bindpath", Path.Combine(folder, "data"), | 47 | "-bindpath", Path.Combine(folder, "data"), |
| 47 | "-intermediateFolder", intermediateFolder, | 48 | "-intermediateFolder", intermediateFolder, |
| 48 | "-o", Path.Combine(baseFolder, "bin", "test.msi") | 49 | "-o", outputPath, |
| 49 | ]); | 50 | ]); |
| 50 | 51 | ||
| 52 | if (result.ExitCode == 223/*WindowsInstallerBackendErrors.OpenDatabaseFailed*/ | ||
| 53 | && result.Messages.Length > 0) | ||
| 54 | { | ||
| 55 | // In a bit of a twist, WiX's long-path support relies on 8.3 short file names. As | ||
| 56 | // [Raymond Chen suggests](https://devblogs.microsoft.com/oldnewthing/20181004-00/?p=99895), | ||
| 57 | // not all file systems support 8.3 names. That includes ReFS, the file system used | ||
| 58 | // by Dev Drives. So pass the test if the failure is due to missing 8.3 names. | ||
| 59 | Assert.Equal(outputPath, result.Messages[0].MessageArgs[0]); | ||
| 60 | Assert.Equal("The Windows Installer service failed to start. Contact your support personnel.", result.Messages[0].MessageArgs[1]); | ||
| 61 | |||
| 62 | return; | ||
| 63 | } | ||
| 64 | |||
| 51 | result.AssertSuccess(); | 65 | result.AssertSuccess(); |
| 52 | 66 | ||
| 53 | Assert.True(File.Exists(Path.Combine(baseFolder, "bin", "test.msi"))); | 67 | Assert.True(File.Exists(Path.Combine(baseFolder, "bin", "test.msi"))); |
