aboutsummaryrefslogtreecommitdiff
path: root/src/test
diff options
context:
space:
mode:
authorRob Mensching <rob@firegiant.com>2021-03-25 06:21:39 -0700
committerRob Mensching <rob@firegiant.com>2021-03-25 10:04:58 -0700
commit716c18b695656563c575d26cdfcf1b44c7dc620f (patch)
tree7062a62c5695815603f45acbc72d3a37adba8346 /src/test
parentc29c96b72c3ba2fcfa06da54c7fe3750bce4168b (diff)
downloadwix-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.cs30
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