diff options
author | Rob Mensching <rob@firegiant.com> | 2021-03-25 06:21:39 -0700 |
---|---|---|
committer | Rob Mensching <rob@firegiant.com> | 2021-03-25 10:04:58 -0700 |
commit | 716c18b695656563c575d26cdfcf1b44c7dc620f (patch) | |
tree | 7062a62c5695815603f45acbc72d3a37adba8346 /src/test | |
parent | c29c96b72c3ba2fcfa06da54c7fe3750bce4168b (diff) | |
download | wix-716c18b695656563c575d26cdfcf1b44c7dc620f.tar.gz wix-716c18b695656563c575d26cdfcf1b44c7dc620f.tar.bz2 wix-716c18b695656563c575d26cdfcf1b44c7dc620f.zip |
Use separate intermediate folders when testing patch missing files
Using separate intermediate folders for the build of baseline and update
exposes deeper issues with the code under test.
Enhanced test for wixtoolset/issues#6387
Diffstat (limited to 'src/test')
-rw-r--r-- | src/test/WixToolsetTest.CoreIntegration/PatchFixture.cs | 30 |
1 files changed, 20 insertions, 10 deletions
diff --git a/src/test/WixToolsetTest.CoreIntegration/PatchFixture.cs b/src/test/WixToolsetTest.CoreIntegration/PatchFixture.cs index 774850ec..483e3fd5 100644 --- a/src/test/WixToolsetTest.CoreIntegration/PatchFixture.cs +++ b/src/test/WixToolsetTest.CoreIntegration/PatchFixture.cs | |||
@@ -93,11 +93,13 @@ namespace WixToolsetTest.CoreIntegration | |||
93 | 93 | ||
94 | using (var fs = new DisposableFileSystem()) | 94 | using (var fs = new DisposableFileSystem()) |
95 | { | 95 | { |
96 | var tempFolder = fs.GetFolder(); | 96 | var tempFolderBaseline = fs.GetFolder(); |
97 | var tempFolderUpdate = fs.GetFolder(); | ||
98 | var tempFolderPatch = fs.GetFolder(); | ||
97 | 99 | ||
98 | var baselinePdb = BuildMsi("Baseline.msi", folder, tempFolder, "1.0.0", "1.0.0", "1.0.0"); | 100 | var baselinePdb = BuildMsi("Baseline.msi", folder, tempFolderBaseline, "1.0.0", "1.0.0", "1.0.0"); |
99 | var update1Pdb = BuildMsi("Update.msi", folder, tempFolder, "1.0.1", "1.0.1", "1.0.1"); | 101 | var update1Pdb = BuildMsi("Update.msi", folder, tempFolderUpdate, "1.0.1", "1.0.1", "1.0.1"); |
100 | var patchPdb = BuildMsp("Patch1.msp", folder, tempFolder, "1.0.1", hasNoFiles: true); | 102 | var patchPdb = BuildMsp("Patch1.msp", folder, tempFolderPatch, "1.0.1", bindpaths: new[] { Path.GetDirectoryName(baselinePdb), Path.GetDirectoryName(update1Pdb) }, hasNoFiles: true); |
101 | var patchPath = Path.ChangeExtension(patchPdb, ".msp"); | 103 | var patchPath = Path.ChangeExtension(patchPdb, ".msp"); |
102 | 104 | ||
103 | Assert.True(File.Exists(baselinePdb)); | 105 | Assert.True(File.Exists(baselinePdb)); |
@@ -116,9 +118,9 @@ namespace WixToolsetTest.CoreIntegration | |||
116 | 118 | ||
117 | var baselinePdb = BuildMsi("Baseline.msi", Path.Combine(folder, "PackageA"), tempFolder, "1.0.0", "A", "B"); | 119 | var baselinePdb = BuildMsi("Baseline.msi", Path.Combine(folder, "PackageA"), tempFolder, "1.0.0", "A", "B"); |
118 | var updatePdb = BuildMsi("Update.msi", Path.Combine(folder, "PackageA"), tempFolder, "1.0.1", "A", "B"); | 120 | var updatePdb = BuildMsi("Update.msi", Path.Combine(folder, "PackageA"), tempFolder, "1.0.1", "A", "B"); |
119 | var patchAPdb = BuildMsp("PatchA.msp", Path.Combine(folder, "PatchA"), tempFolder, "1.0.1", true); | 121 | var patchAPdb = BuildMsp("PatchA.msp", Path.Combine(folder, "PatchA"), tempFolder, "1.0.1", hasNoFiles: true); |
120 | var patchBPdb = BuildMsp("PatchB.msp", Path.Combine(folder, "PatchB"), tempFolder, "1.0.1", true); | 122 | var patchBPdb = BuildMsp("PatchB.msp", Path.Combine(folder, "PatchB"), tempFolder, "1.0.1", hasNoFiles: true); |
121 | var patchCPdb = BuildMsp("PatchC.msp", Path.Combine(folder, "PatchC"), tempFolder, "1.0.1", true); | 123 | var patchCPdb = BuildMsp("PatchC.msp", Path.Combine(folder, "PatchC"), tempFolder, "1.0.1", hasNoFiles: true); |
122 | var bundleAPdb = BuildBundle("BundleA.exe", Path.Combine(folder, "BundleA"), tempFolder); | 124 | var bundleAPdb = BuildBundle("BundleA.exe", Path.Combine(folder, "BundleA"), tempFolder); |
123 | var bundleBPdb = BuildBundle("BundleB.exe", Path.Combine(folder, "BundleB"), tempFolder); | 125 | var bundleBPdb = BuildBundle("BundleB.exe", Path.Combine(folder, "BundleB"), tempFolder); |
124 | var bundleCPdb = BuildBundle("BundleC.exe", Path.Combine(folder, "BundleC"), tempFolder); | 126 | var bundleCPdb = BuildBundle("BundleC.exe", Path.Combine(folder, "BundleC"), tempFolder); |
@@ -206,11 +208,11 @@ namespace WixToolsetTest.CoreIntegration | |||
206 | return Path.ChangeExtension(outputPath, ".wixpdb"); | 208 | return Path.ChangeExtension(outputPath, ".wixpdb"); |
207 | } | 209 | } |
208 | 210 | ||
209 | private static string BuildMsp(string outputName, string sourceFolder, string baseFolder, string defineV, bool hasNoFiles = false) | 211 | private static string BuildMsp(string outputName, string sourceFolder, string baseFolder, string defineV, IEnumerable<string> bindpaths = null, bool hasNoFiles = false) |
210 | { | 212 | { |
211 | var outputPath = Path.Combine(baseFolder, Path.Combine("bin", outputName)); | 213 | var outputPath = Path.Combine(baseFolder, Path.Combine("bin", outputName)); |
212 | 214 | ||
213 | var result = WixRunner.Execute(new[] | 215 | var args = new List<string> |
214 | { | 216 | { |
215 | "build", | 217 | "build", |
216 | hasNoFiles ? "-sw1079" : " ", | 218 | hasNoFiles ? "-sw1079" : " ", |
@@ -219,7 +221,15 @@ namespace WixToolsetTest.CoreIntegration | |||
219 | "-bindpath", Path.Combine(baseFolder, "bin"), | 221 | "-bindpath", Path.Combine(baseFolder, "bin"), |
220 | "-intermediateFolder", Path.Combine(baseFolder, "obj"), | 222 | "-intermediateFolder", Path.Combine(baseFolder, "obj"), |
221 | "-o", outputPath | 223 | "-o", outputPath |
222 | }); | 224 | }; |
225 | |||
226 | foreach (var additionaBindPath in bindpaths ?? Enumerable.Empty<string>()) | ||
227 | { | ||
228 | args.Add("-bindpath"); | ||
229 | args.Add(additionaBindPath); | ||
230 | } | ||
231 | |||
232 | var result = WixRunner.Execute(args.ToArray()); | ||
223 | 233 | ||
224 | result.AssertSuccess(); | 234 | result.AssertSuccess(); |
225 | 235 | ||