aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRob Mensching <rob@firegiant.com>2025-11-01 13:11:57 -0700
committerRob Mensching <rob@firegiant.com>2025-11-02 11:48:43 -0800
commit2b709cb9662231ff7788147ad5c2ff5be6169160 (patch)
treeb4da7ace956266f8a3f95c4d11b46a28fee6ebc5 /src
parent20792b9388aba40e39e11df9e1d4a9f3dbff6fcd (diff)
downloadwix-2b709cb9662231ff7788147ad5c2ff5be6169160.tar.gz
wix-2b709cb9662231ff7788147ad5c2ff5be6169160.tar.bz2
wix-2b709cb9662231ff7788147ad5c2ff5be6169160.zip
Add a test for cabinets with no files in them
Diffstat (limited to 'src')
-rw-r--r--src/wix/test/WixToolsetTest.CoreIntegration/MsiCabinetFixture.cs35
-rw-r--r--src/wix/test/WixToolsetTest.CoreIntegration/TestData/NoFileCompressed/Package.wxs9
2 files changed, 44 insertions, 0 deletions
diff --git a/src/wix/test/WixToolsetTest.CoreIntegration/MsiCabinetFixture.cs b/src/wix/test/WixToolsetTest.CoreIntegration/MsiCabinetFixture.cs
index bc39e4d3..55f0ed55 100644
--- a/src/wix/test/WixToolsetTest.CoreIntegration/MsiCabinetFixture.cs
+++ b/src/wix/test/WixToolsetTest.CoreIntegration/MsiCabinetFixture.cs
@@ -252,5 +252,40 @@ namespace WixToolsetTest.CoreIntegration
252 WixAssert.CompareLineByLine(expectedMedia, mediaSymbols.Select(s => String.Join(" ", s.DiskId, s.Cabinet, s.LastSequence)).ToArray()); 252 WixAssert.CompareLineByLine(expectedMedia, mediaSymbols.Select(s => String.Join(" ", s.DiskId, s.Cabinet, s.LastSequence)).ToArray());
253 } 253 }
254 } 254 }
255
256 [Fact]
257 public void CanBuildNoFilesCompressed()
258 {
259 var folder = TestData.Get(@"TestData", "NoFileCompressed");
260
261 using (var fs = new DisposableFileSystem())
262 {
263 var intermediateFolder = fs.GetFolder();
264
265 var result = WixRunner.Execute(
266 [
267 "build",
268 Path.Combine(folder, "Package.wxs"),
269 "-bindpath", Path.Combine(folder, "data"),
270 "-intermediateFolder", intermediateFolder,
271 "-o", Path.Combine(intermediateFolder, @"bin\test.msi")
272 ], out var messages, warningsAsErrors: false);
273
274 Assert.Equal(0, result);
275 WixAssert.CompareLineByLine(
276 [
277 "1079 Warning - The cabinet 'example.cab' does not contain any files. If this installation contains no files, this warning can likely be safely ignored. Otherwise, please add files to the cabinet or remove it."
278 ], [.. messages.Select(m => $"{m.Id} {m.Level} - {m}")]);
279
280 Assert.True(File.Exists(Path.Combine(intermediateFolder, "bin", "test.msi")));
281 Assert.True(File.Exists(Path.Combine(intermediateFolder, "bin", "example.cab")));
282 Assert.True(File.Exists(Path.Combine(intermediateFolder, "bin", "test.wixpdb")));
283
284 var intermediate = Intermediate.Load(Path.Combine(intermediateFolder, @"bin\test.wixpdb"));
285 var section = intermediate.Sections.Single();
286
287 Assert.Empty(section.Symbols.OfType<FileSymbol>());
288 }
289 }
255 } 290 }
256} 291}
diff --git a/src/wix/test/WixToolsetTest.CoreIntegration/TestData/NoFileCompressed/Package.wxs b/src/wix/test/WixToolsetTest.CoreIntegration/TestData/NoFileCompressed/Package.wxs
new file mode 100644
index 00000000..0e4fbcf6
--- /dev/null
+++ b/src/wix/test/WixToolsetTest.CoreIntegration/TestData/NoFileCompressed/Package.wxs
@@ -0,0 +1,9 @@
1<Wix xmlns="http://wixtoolset.org/schemas/v4/wxs">
2 <Package Id="WixTest.NoFiles" Name="MsiPackage" Language="1033" Version="0.0.1" Manufacturer="Example Corporation" Compressed="yes">
3 <Media Id="1" Cabinet="example.cab" />
4
5 <Component>
6 <RegistryValue Root="HKMU" Key="SOFTWARE\Wix Test" Name="Foo" Value="Bar" />
7 </Component>
8 </Package>
9</Wix>