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);