@joebigelow / wix-1 / commits / d57dad05

Change MSBuild tests to use the default intermediate and output folders.

Sean Hall committed May 30, 2020 at 18:55 UTC d57dad051e9c15919646fb9e4fb320003ba839da
2 files changed +89 -78
src/test/WixToolsetTest.MSBuild/MsbuildFixture.cs
+74 -63
@@ -3,6 +3,7 @@
3 namespace WixToolsetTest.MSBuild
4 {
5 using System;
6 + using System.Collections.Generic;
7 using System.IO;
8 using System.Linq;
9 using WixBuildTools.TestSupport;
@@ -15,19 +16,18 @@ namespace WixToolsetTest.MSBuild
16 [Fact]
17 public void CanBuildSimpleBundle()
18 {
18 - var projectPath = TestData.Get(@"TestData\SimpleMsiPackage\SimpleBundle\SimpleBundle.wixproj");
19 + var sourceFolder = TestData.Get(@"TestData\SimpleMsiPackage");
20
20 - using (var fs = new DisposableFileSystem())
21 + using (var fs = new TestDataFolderFileSystem())
22 {
22 - var baseFolder = fs.GetFolder();
23 + fs.Initialize(sourceFolder);
24 + var baseFolder = Path.Combine(fs.BaseFolder, "SimpleBundle");
25 var binFolder = Path.Combine(baseFolder, @"bin\");
24 - var intermediateFolder = Path.Combine(baseFolder, @"obj\");
26 + var projectPath = Path.Combine(baseFolder, "SimpleBundle.wixproj");
27
28 var result = MsbuildRunner.Execute(projectPath, new[]
29 {
30 $"-p:WixTargetsPath={WixTargetsPath}",
29 - $"-p:IntermediateOutputPath={intermediateFolder}",
30 - $"-p:OutputPath={binFolder}"
31 });
32 result.AssertSuccess();
33
@@ -43,8 +43,8 @@ namespace WixToolsetTest.MSBuild
43 .ToArray();
44 Assert.Equal(new[]
45 {
46 - @"bin\SimpleBundle.exe",
47 - @"bin\SimpleBundle.wixpdb",
46 + @"bin\x86\Debug\SimpleBundle.exe",
47 + @"bin\x86\Debug\SimpleBundle.wixpdb",
48 }, paths);
49 }
50 }
@@ -52,19 +52,18 @@ namespace WixToolsetTest.MSBuild
52 [Fact]
53 public void CanBuildSimpleMsiPackage()
54 {
55 - var projectPath = TestData.Get(@"TestData\SimpleMsiPackage\MsiPackage\MsiPackage.wixproj");
55 + var sourceFolder = TestData.Get(@"TestData\SimpleMsiPackage\MsiPackage");
56
57 - using (var fs = new DisposableFileSystem())
57 + using (var fs = new TestDataFolderFileSystem())
58 {
59 - var baseFolder = fs.GetFolder();
59 + fs.Initialize(sourceFolder);
60 + var baseFolder = fs.BaseFolder;
61 var binFolder = Path.Combine(baseFolder, @"bin\");
61 - var intermediateFolder = Path.Combine(baseFolder, @"obj\");
62 + var projectPath = Path.Combine(baseFolder, "MsiPackage.wixproj");
63
64 var result = MsbuildRunner.Execute(projectPath, new[]
65 {
66 $"-p:WixTargetsPath={WixTargetsPath}",
66 - $"-p:IntermediateOutputPath={intermediateFolder}",
67 - $"-p:OutputPath={binFolder}"
67 });
68 result.AssertSuccess();
69
@@ -80,9 +79,9 @@ namespace WixToolsetTest.MSBuild
79 .ToArray();
80 Assert.Equal(new[]
81 {
83 - @"bin\en-US\cab1.cab",
84 - @"bin\en-US\MsiPackage.msi",
85 - @"bin\en-US\MsiPackage.wixpdb",
82 + @"bin\x86\Debug\en-US\cab1.cab",
83 + @"bin\x86\Debug\en-US\MsiPackage.msi",
84 + @"bin\x86\Debug\en-US\MsiPackage.wixpdb",
85 }, paths);
86 }
87 }
@@ -92,9 +91,9 @@ namespace WixToolsetTest.MSBuild
91 {
92 var expectedOutputs = new[]
93 {
95 - @"bin\en-US\cab1.cab",
96 - @"bin\en-US\MsiPackage.msi",
97 - @"bin\en-US\MsiPackage.wixpdb",
94 + @"bin\x86\Debug\en-US\cab1.cab",
95 + @"bin\x86\Debug\en-US\MsiPackage.msi",
96 + @"bin\x86\Debug\en-US\MsiPackage.wixpdb",
97 };
98
99 this.AssertWixpdb(null, expectedOutputs);
@@ -106,27 +105,26 @@ namespace WixToolsetTest.MSBuild
105 {
106 this.AssertWixpdb("NONE", new[]
107 {
109 - @"bin\en-US\cab1.cab",
110 - @"bin\en-US\MsiPackage.msi",
108 + @"bin\x86\Debug\en-US\cab1.cab",
109 + @"bin\x86\Debug\en-US\MsiPackage.msi",
110 });
111 }
112
113 private void AssertWixpdb(string wixpdbType, string[] expectedOutputFiles)
114 {
116 - var projectPath = TestData.Get(@"TestData\SimpleMsiPackage\MsiPackage\MsiPackage.wixproj");
115 + var sourceFolder = TestData.Get(@"TestData\SimpleMsiPackage\MsiPackage");
116
118 - using (var fs = new DisposableFileSystem())
117 + using (var fs = new TestDataFolderFileSystem())
118 {
120 - var baseFolder = fs.GetFolder();
119 + fs.Initialize(sourceFolder);
120 + var baseFolder = fs.BaseFolder;
121 var binFolder = Path.Combine(baseFolder, @"bin\");
122 - var intermediateFolder = Path.Combine(baseFolder, @"obj\");
122 + var projectPath = Path.Combine(baseFolder, "MsiPackage.wixproj");
123
124 var result = MsbuildRunner.Execute(projectPath, new[]
125 {
126 wixpdbType == null ? String.Empty : $"-p:WixPdbType={wixpdbType}",
127 $"-p:WixTargetsPath={WixTargetsPath}",
128 - $"-p:IntermediateOutputPath={intermediateFolder}",
129 - $"-p:OutputPath={binFolder}",
128 });
129 result.AssertSuccess();
130
@@ -141,44 +139,53 @@ namespace WixToolsetTest.MSBuild
139 [Fact]
140 public void CanBuild64BitMsiPackage()
141 {
144 - var projectPath = TestData.Get(@"TestData\SimpleMsiPackage\MsiPackage\MsiPackage.wixproj");
142 + var sourceFolder = TestData.Get(@"TestData\SimpleMsiPackage\MsiPackage");
143
146 - using (var fs = new DisposableFileSystem())
144 + using (var fs = new TestDataFolderFileSystem())
145 {
148 - var baseFolder = fs.GetFolder();
146 + fs.Initialize(sourceFolder);
147 + var baseFolder = fs.BaseFolder;
148 var binFolder = Path.Combine(baseFolder, @"bin\");
150 - var intermediateFolder = Path.Combine(baseFolder, @"obj\");
149 + var projectPath = Path.Combine(baseFolder, "MsiPackage.wixproj");
150
151 var result = MsbuildRunner.Execute(projectPath, new[]
152 {
153 $"-p:WixTargetsPath={WixTargetsPath}",
155 - $"-p:IntermediateOutputPath={intermediateFolder}",
156 - $"-p:OutputPath={binFolder}",
154 $"-p:InstallerPlatform=x64",
155 });
156 result.AssertSuccess();
157
158 var platformSwitches = result.Output.Where(line => line.TrimStart().StartsWith("wix.exe build -platform x64"));
159 Assert.Single(platformSwitches);
160 +
161 + var paths = Directory.EnumerateFiles(binFolder, @"*.*", SearchOption.AllDirectories)
162 + .Select(s => s.Substring(baseFolder.Length + 1))
163 + .OrderBy(s => s)
164 + .ToArray();
165 + Assert.Equal(new[]
166 + {
167 + @"bin\x86\Debug\en-US\cab1.cab",
168 + @"bin\x86\Debug\en-US\MsiPackage.msi",
169 + @"bin\x86\Debug\en-US\MsiPackage.wixpdb",
170 + }, paths);
171 }
172 }
173
174 [Fact(Skip = "Currently fails")]
175 public void CanBuildSimpleMsiPackageWithIceSuppressions()
176 {
169 - var projectPath = TestData.Get(@"TestData\SimpleMsiPackage\MsiPackage\MsiPackage.wixproj");
177 + var sourceFolder = TestData.Get(@"TestData\SimpleMsiPackage\MsiPackage");
178
171 - using (var fs = new DisposableFileSystem())
179 + using (var fs = new TestDataFolderFileSystem())
180 {
173 - var baseFolder = fs.GetFolder();
181 + fs.Initialize(sourceFolder);
182 + var baseFolder = fs.BaseFolder;
183 var binFolder = Path.Combine(baseFolder, @"bin\");
175 - var intermediateFolder = Path.Combine(baseFolder, @"obj\");
184 + var projectPath = Path.Combine(baseFolder, "MsiPackage.wixproj");
185
186 var result = MsbuildRunner.Execute(projectPath, new[]
187 {
188 $"-p:WixTargetsPath={WixTargetsPath}",
180 - $"-p:IntermediateOutputPath={intermediateFolder}",
181 - $"-p:OutputPath={binFolder}",
189 "-p:SuppressIces=\"ICE45;ICE46\""
190 });
191 result.AssertSuccess();
@@ -188,19 +195,18 @@ namespace WixToolsetTest.MSBuild
195 [Fact]
196 public void CanBuildSimpleMsiPackageWithWarningSuppressions()
197 {
191 - var projectPath = TestData.Get(@"TestData\SimpleMsiPackage\MsiPackage\MsiPackage.wixproj");
198 + var sourceFolder = TestData.Get(@"TestData\SimpleMsiPackage\MsiPackage");
199
193 - using (var fs = new DisposableFileSystem())
200 + using (var fs = new TestDataFolderFileSystem())
201 {
195 - var baseFolder = fs.GetFolder();
202 + fs.Initialize(sourceFolder);
203 + var baseFolder = fs.BaseFolder;
204 var binFolder = Path.Combine(baseFolder, @"bin\");
197 - var intermediateFolder = Path.Combine(baseFolder, @"obj\");
205 + var projectPath = Path.Combine(baseFolder, "MsiPackage.wixproj");
206
207 var result = MsbuildRunner.Execute(projectPath, new[]
208 {
209 $"-p:WixTargetsPath={WixTargetsPath}",
202 - $"-p:IntermediateOutputPath={intermediateFolder}",
203 - $"-p:OutputPath={binFolder}",
210 "-p:SuppressSpecificWarnings=\"1118;1102\""
211 });
212 result.AssertSuccess();
@@ -213,19 +219,18 @@ namespace WixToolsetTest.MSBuild
219 [Fact]
220 public void CanBuildSimpleMsiPackageAsWixipl()
221 {
216 - var projectPath = TestData.Get(@"TestData\SimpleMsiPackage\MsiPackage\MsiPackage.wixproj");
222 + var sourceFolder = TestData.Get(@"TestData\SimpleMsiPackage\MsiPackage");
223
218 - using (var fs = new DisposableFileSystem())
224 + using (var fs = new TestDataFolderFileSystem())
225 {
220 - var baseFolder = fs.GetFolder();
226 + fs.Initialize(sourceFolder);
227 + var baseFolder = fs.BaseFolder;
228 var binFolder = Path.Combine(baseFolder, @"bin\");
222 - var intermediateFolder = Path.Combine(baseFolder, @"obj\");
229 + var projectPath = Path.Combine(baseFolder, "MsiPackage.wixproj");
230
231 var result = MsbuildRunner.Execute(projectPath, new[]
232 {
233 $"-p:WixTargetsPath={WixTargetsPath}",
227 - $"-p:IntermediateOutputPath={intermediateFolder}",
228 - $"-p:OutputPath={binFolder}",
234 "-p:OutputType=IntermediatePostLink"
235 });
236 result.AssertSuccess();
@@ -233,27 +238,25 @@ namespace WixToolsetTest.MSBuild
238 var path = Directory.EnumerateFiles(binFolder, @"*.*", SearchOption.AllDirectories)
239 .Select(s => s.Substring(baseFolder.Length + 1))
240 .Single();
236 - Assert.Equal(@"bin\MsiPackage.wixipl", path);
241 + Assert.Equal(@"bin\x86\Debug\MsiPackage.wixipl", path);
242 }
243 }
244
245 [Fact]
246 public void CanBuildAndCleanSimpleMsiPackage()
247 {
243 - var projectPath = TestData.Get(@"TestData\SimpleMsiPackage\MsiPackage\MsiPackage.wixproj");
248 + var sourceFolder = TestData.Get(@"TestData\SimpleMsiPackage\MsiPackage");
249
245 - using (var fs = new DisposableFileSystem())
250 + using (var fs = new TestDataFolderFileSystem())
251 {
247 - var baseFolder = fs.GetFolder();
248 - var binFolder = Path.Combine(baseFolder, @"bin\");
249 - var intermediateFolder = Path.Combine(baseFolder, @"obj\");
252 + fs.Initialize(sourceFolder);
253 + var baseFolder = fs.BaseFolder;
254 + var projectPath = Path.Combine(baseFolder, "MsiPackage.wixproj");
255
256 // Build
257 var result = MsbuildRunner.Execute(projectPath, new[]
258 {
259 $"-p:WixTargetsPath={WixTargetsPath}",
255 - $"-p:IntermediateOutputPath={intermediateFolder}",
256 - $"-p:OutputPath={binFolder}",
260 "-v:diag"
261 });
262 result.AssertSuccess();
@@ -270,8 +273,6 @@ namespace WixToolsetTest.MSBuild
273 result = MsbuildRunner.Execute(projectPath, new[]
274 {
275 $"-p:WixTargetsPath={WixTargetsPath}",
273 - $"-p:IntermediateOutputPath={intermediateFolder}",
274 - $"-p:OutputPath={binFolder}",
276 "-t:Clean",
277 "-v:diag"
278 });
@@ -281,9 +282,19 @@ namespace WixToolsetTest.MSBuild
282
283 // Clean is only expected to delete the files listed in {Project}.FileListAbsolute.txt,
284 // so this is not quite right but close enough.
285 + var allowedFiles = new HashSet<string>
286 + {
287 + "MsiPackage.wixproj",
288 + "Package.en-us.wxl",
289 + "Package.wxs",
290 + "PackageComponents.wxs",
291 + @"data\test.txt",
292 + @"obj\x86\Debug\MsiPackage.wixproj.FileListAbsolute.txt",
293 + };
294 +
295 var remainingPaths = Directory.EnumerateFiles(baseFolder, @"*.*", SearchOption.AllDirectories)
296 .Select(s => s.Substring(baseFolder.Length + 1))
286 - .Where(s => s != "obj\\MsiPackage.wixproj.FileListAbsolute.txt")
297 + .Where(s => !allowedFiles.Contains(s))
298 .OrderBy(s => s)
299 .ToArray();
300 Assert.Empty(remainingPaths);
src/test/WixToolsetTest.MSBuild/MsbuildHeatFixture.cs
+15 -15
@@ -18,19 +18,19 @@ namespace WixToolsetTest.MSBuild
18 [Fact]
19 public void CanBuildHeatFilePackage()
20 {
21 - var projectPath = TestData.Get(@"TestData\HeatFilePackage\HeatFilePackage.wixproj");
21 + var sourceFolder = TestData.Get(@"TestData\HeatFilePackage");
22
23 - using (var fs = new DisposableFileSystem())
23 + using (var fs = new TestDataFolderFileSystem())
24 {
25 - var baseFolder = fs.GetFolder();
25 + fs.Initialize(sourceFolder);
26 + var baseFolder = fs.BaseFolder;
27 var binFolder = Path.Combine(baseFolder, @"bin\");
28 var intermediateFolder = Path.Combine(baseFolder, @"obj\");
29 + var projectPath = Path.Combine(baseFolder, "HeatFilePackage.wixproj");
30
31 var result = MsbuildRunner.Execute(projectPath, new[]
32 {
33 $"-p:WixTargetsPath={WixTargetsPath}",
32 - $"-p:IntermediateOutputPath={intermediateFolder}",
33 - $"-p:OutputPath={binFolder}"
34 });
35 result.AssertSuccess();
36
@@ -40,7 +40,7 @@ namespace WixToolsetTest.MSBuild
40 var warnings = result.Output.Where(line => line.Contains(": warning"));
41 Assert.Empty(warnings);
42
43 - var generatedFilePath = Path.Combine(intermediateFolder, @"_ProductComponents_INSTALLFOLDER_HeatFilePackage.wixproj_file.wxs");
43 + var generatedFilePath = Path.Combine(intermediateFolder, "x86", "Debug", "_ProductComponents_INSTALLFOLDER_HeatFilePackage.wixproj_file.wxs");
44 Assert.True(File.Exists(generatedFilePath));
45
46 var generatedContents = File.ReadAllText(generatedFilePath);
@@ -60,7 +60,7 @@ namespace WixToolsetTest.MSBuild
60 "</Fragment>" +
61 "</Wix>", testXml);
62
63 - var pdbPath = Path.Combine(binFolder, "HeatFilePackage.wixpdb");
63 + var pdbPath = Path.Combine(binFolder, "x86", "Debug", "HeatFilePackage.wixpdb");
64 Assert.True(File.Exists(pdbPath));
65
66 var intermediate = Intermediate.Load(pdbPath);
@@ -74,19 +74,19 @@ namespace WixToolsetTest.MSBuild
74 [Fact]
75 public void CanBuildHeatFileWithMultipleFilesPackage()
76 {
77 - var projectPath = TestData.Get(@"TestData\HeatFileMultipleFilesSameFileName\HeatFileMultipleFilesSameFileName.wixproj");
77 + var sourceFolder = TestData.Get(@"TestData\HeatFileMultipleFilesSameFileName");
78
79 - using (var fs = new DisposableFileSystem())
79 + using (var fs = new TestDataFolderFileSystem())
80 {
81 - var baseFolder = fs.GetFolder();
81 + fs.Initialize(sourceFolder);
82 + var baseFolder = fs.BaseFolder;
83 var binFolder = Path.Combine(baseFolder, @"bin\");
84 var intermediateFolder = Path.Combine(baseFolder, @"obj\");
85 + var projectPath = Path.Combine(baseFolder, "HeatFileMultipleFilesSameFileName.wixproj");
86
87 var result = MsbuildRunner.Execute(projectPath, new[]
88 {
89 $"-p:WixTargetsPath={WixTargetsPath}",
88 - $"-p:IntermediateOutputPath={intermediateFolder}",
89 - $"-p:OutputPath={binFolder}"
90 });
91 result.AssertSuccess();
92
@@ -96,7 +96,7 @@ namespace WixToolsetTest.MSBuild
96 var warnings = result.Output.Where(line => line.Contains(": warning"));
97 Assert.Empty(warnings);
98
99 - var generatedFilePath = Path.Combine(intermediateFolder, @"_TxtProductComponents_INSTALLFOLDER_MyProgram.txt_file.wxs");
99 + var generatedFilePath = Path.Combine(intermediateFolder, "x86", "Debug", "_TxtProductComponents_INSTALLFOLDER_MyProgram.txt_file.wxs");
100 Assert.True(File.Exists(generatedFilePath));
101
102 var generatedContents = File.ReadAllText(generatedFilePath);
@@ -116,7 +116,7 @@ namespace WixToolsetTest.MSBuild
116 "</Fragment>" +
117 "</Wix>", testXml);
118
119 - generatedFilePath = Path.Combine(intermediateFolder, @"_JsonProductComponents_INSTALLFOLDER_MyProgram.json_file.wxs");
119 + generatedFilePath = Path.Combine(intermediateFolder, "x86", "Debug", "_JsonProductComponents_INSTALLFOLDER_MyProgram.json_file.wxs");
120 Assert.True(File.Exists(generatedFilePath));
121
122 generatedContents = File.ReadAllText(generatedFilePath);
@@ -136,7 +136,7 @@ namespace WixToolsetTest.MSBuild
136 "</Fragment>" +
137 "</Wix>", testXml);
138
139 - var pdbPath = Path.Combine(binFolder, "HeatFileMultipleFilesSameFileName.wixpdb");
139 + var pdbPath = Path.Combine(binFolder, "x86", "Debug", "HeatFileMultipleFilesSameFileName.wixpdb");
140 Assert.True(File.Exists(pdbPath));
141
142 var intermediate = Intermediate.Load(pdbPath);