From ad75882e4d822291113abff277ab8460cd0616e5 Mon Sep 17 00:00:00 2001 From: Rob Mensching Date: Sat, 1 Nov 2025 13:11:57 -0700 Subject: Add a test for cabinets with no files in them --- .../MsiCabinetFixture.cs | 35 ++++++++++++++++++++++ .../TestData/NoFileCompressed/Package.wxs | 9 ++++++ .../TestData/NoFileCompressed/data/test.txt | 1 + 3 files changed, 45 insertions(+) create mode 100644 src/wix/test/WixToolsetTest.CoreIntegration/TestData/NoFileCompressed/Package.wxs create mode 100644 src/wix/test/WixToolsetTest.CoreIntegration/TestData/NoFileCompressed/data/test.txt (limited to 'src') 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 WixAssert.CompareLineByLine(expectedMedia, mediaSymbols.Select(s => String.Join(" ", s.DiskId, s.Cabinet, s.LastSequence)).ToArray()); } } + + [Fact] + public void CanBuildNoFilesCompressed() + { + var folder = TestData.Get(@"TestData", "NoFileCompressed"); + + using (var fs = new DisposableFileSystem()) + { + var intermediateFolder = fs.GetFolder(); + + var result = WixRunner.Execute( + [ + "build", + Path.Combine(folder, "Package.wxs"), + "-bindpath", Path.Combine(folder, "data"), + "-intermediateFolder", intermediateFolder, + "-o", Path.Combine(intermediateFolder, @"bin\test.msi") + ], out var messages, warningsAsErrors: false); + + Assert.Equal(0, result); + WixAssert.CompareLineByLine( + [ + "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." + ], [.. messages.Select(m => $"{m.Id} {m.Level} - {m}")]); + + Assert.True(File.Exists(Path.Combine(intermediateFolder, "bin", "test.msi"))); + Assert.True(File.Exists(Path.Combine(intermediateFolder, "bin", "example.cab"))); + Assert.True(File.Exists(Path.Combine(intermediateFolder, "bin", "test.wixpdb"))); + + var intermediate = Intermediate.Load(Path.Combine(intermediateFolder, @"bin\test.wixpdb")); + var section = intermediate.Sections.Single(); + + Assert.Empty(section.Symbols.OfType()); + } + } } } 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 @@ + + + + + + + + + diff --git a/src/wix/test/WixToolsetTest.CoreIntegration/TestData/NoFileCompressed/data/test.txt b/src/wix/test/WixToolsetTest.CoreIntegration/TestData/NoFileCompressed/data/test.txt new file mode 100644 index 00000000..cd0db0e1 --- /dev/null +++ b/src/wix/test/WixToolsetTest.CoreIntegration/TestData/NoFileCompressed/data/test.txt @@ -0,0 +1 @@ +This is test.txt. \ No newline at end of file -- cgit v1.2.3-55-g6feb