From c832d739c92205b95c95c5deba5cbd5765bb6eca Mon Sep 17 00:00:00 2001 From: Bob Arnson Date: Thu, 4 Aug 2022 21:53:00 -0400 Subject: Update to darice.cub v10.0.22621.0. https://github.com/wixtoolset/issues/issues/6567 --- src/wix/WixToolset.Core.Native/cubes/darice.cub | Bin 694784 -> 692224 bytes .../TestData/SimpleMerge/Package.wxs | 2 +- .../TestData/SimpleModule/Module.wxs | 2 +- .../ValidationFixture.cs | 113 ++++++++++++++++++++- 4 files changed, 114 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/wix/WixToolset.Core.Native/cubes/darice.cub b/src/wix/WixToolset.Core.Native/cubes/darice.cub index dab45677..c9f29f3a 100644 Binary files a/src/wix/WixToolset.Core.Native/cubes/darice.cub and b/src/wix/WixToolset.Core.Native/cubes/darice.cub differ diff --git a/src/wix/test/WixToolsetTest.CoreIntegration/TestData/SimpleMerge/Package.wxs b/src/wix/test/WixToolsetTest.CoreIntegration/TestData/SimpleMerge/Package.wxs index 41dd19fc..4ee867ec 100644 --- a/src/wix/test/WixToolsetTest.CoreIntegration/TestData/SimpleMerge/Package.wxs +++ b/src/wix/test/WixToolsetTest.CoreIntegration/TestData/SimpleMerge/Package.wxs @@ -1,5 +1,5 @@ - + diff --git a/src/wix/test/WixToolsetTest.CoreIntegration/TestData/SimpleModule/Module.wxs b/src/wix/test/WixToolsetTest.CoreIntegration/TestData/SimpleModule/Module.wxs index 0b0ce141..075a28ed 100644 --- a/src/wix/test/WixToolsetTest.CoreIntegration/TestData/SimpleModule/Module.wxs +++ b/src/wix/test/WixToolsetTest.CoreIntegration/TestData/SimpleModule/Module.wxs @@ -1,5 +1,5 @@ - + diff --git a/src/wix/test/WixToolsetTest.CoreIntegration/ValidationFixture.cs b/src/wix/test/WixToolsetTest.CoreIntegration/ValidationFixture.cs index 72397547..716d3d3a 100644 --- a/src/wix/test/WixToolsetTest.CoreIntegration/ValidationFixture.cs +++ b/src/wix/test/WixToolsetTest.CoreIntegration/ValidationFixture.cs @@ -93,7 +93,7 @@ namespace WixToolsetTest.CoreIntegration "_SummaryInformation:Comments\tThis merge module contains the logic and data required to install MergeModule1.", "_SummaryInformation:Template\tIntel;1033", "_SummaryInformation:CodePage\t1252", - "_SummaryInformation:PageCount\t200", + "_SummaryInformation:PageCount\t500", "_SummaryInformation:WordCount\t0", "_SummaryInformation:CharacterCount\t0", "_SummaryInformation:Security\t2", @@ -311,6 +311,117 @@ namespace WixToolsetTest.CoreIntegration }, messages); } } + + [Fact] + public void CanValidateArm64Msi() + { + var folder = TestData.Get(@"TestData"); + + using (var fs = new DisposableFileSystem()) + { + var baseFolder = fs.GetFolder(); + var intermediateFolder = Path.Combine(baseFolder, "obj"); + var msiPath = Path.Combine(baseFolder, @"bin", "test.msi"); + + var result = WixRunner.Execute(new[] + { + "build", + "-arch", "arm64", + Path.Combine(folder, "Validation", "PackageWithIceIssues.wxs"), + "-bindpath", Path.Combine(folder, "SingleFile", "data"), + "-intermediateFolder", intermediateFolder, + "-o", msiPath, + }); + + result.AssertSuccess(); + + var validationResult = WixRunner.Execute(warningsAsErrors: true, new[] + { + "msi", "validate", + "-intermediateFolder", intermediateFolder, + msiPath + }); + + Assert.Equal(1, validationResult.ExitCode); + + var messages = validationResult.Messages.Select(m => m.ToString()).ToArray(); + WixAssert.CompareLineByLine(new[] + { + "ICE12: CustomAction: CausesICE12Error is of type: 35. Therefore it must come after CostFinalize @ 1000 in Seq Table: InstallExecuteSequence. CA Seq#: 49", + "ICE46: Property 'Myproperty' referenced in column 'LaunchCondition'.'Condition' of row 'Myproperty' differs from a defined property by case only.", + }, messages); + } + } + + [Fact] + public void CanMergeArm64ModuleAndValidate() + { + var msmFolder = TestData.Get(@"TestData\SimpleModule"); + var folder = TestData.Get(@"TestData\SimpleMerge"); + + using (var fs = new DisposableFileSystem()) + { + var intermediateFolder = fs.GetFolder(); + var msiPath = Path.Combine(intermediateFolder, @"bin\test.msi"); + var cabPath = Path.Combine(intermediateFolder, @"bin\cab1.cab"); + + var msmResult = WixRunner.Execute(new[] + { + "build", + "-arch", "arm64", + Path.Combine(msmFolder, "Module.wxs"), + "-loc", Path.Combine(msmFolder, "Module.en-us.wxl"), + "-bindpath", Path.Combine(msmFolder, "data"), + "-intermediateFolder", intermediateFolder, + "-o", Path.Combine(intermediateFolder, "bin", "test", "test.msm") + }); + + msmResult.AssertSuccess(); + + var result = WixRunner.Execute(new[] + { + "build", + "-arch", "arm64", + Path.Combine(folder, "Package.wxs"), + "-loc", Path.Combine(folder, "Package.en-us.wxl"), + "-bindpath", Path.Combine(intermediateFolder, "bin", "test"), + "-intermediateFolder", intermediateFolder, + "-o", msiPath + }); + + result.AssertSuccess(); + + var validationResult = WixRunner.Execute(new[] + { + "msi", "validate", + "-sice", "ICE80", // Prevent whinging about 32-bit directories. + "-intermediateFolder", intermediateFolder, + msiPath + }); + validationResult.AssertSuccess(); + + var intermediate = Intermediate.Load(Path.Combine(intermediateFolder, @"bin\test.wixpdb")); + var section = intermediate.Sections.Single(); + Assert.Empty(section.Symbols.OfType()); + + var data = WindowsInstallerData.Load(Path.Combine(intermediateFolder, @"bin\test.wixpdb")); + Assert.Empty(data.Tables["File"].Rows); + + var results = Query.QueryDatabase(msiPath, new[] { "File" }); + WixAssert.CompareLineByLine(new[] + { + "File:File1.243FB739_4D05_472F_9CFB_EF6B1017B6DE\tModuleComponent1.243FB739_4D05_472F_9CFB_EF6B1017B6DE\tfile1.txt\t17\t\t\t512\t1", + "File:File2.243FB739_4D05_472F_9CFB_EF6B1017B6DE\tModuleComponent2.243FB739_4D05_472F_9CFB_EF6B1017B6DE\tfile2.txt\t17\t\t\t512\t2", + }, results); + + var files = Query.GetCabinetFiles(cabPath); + WixAssert.CompareLineByLine(new[] + { + "File1.243FB739_4D05_472F_9CFB_EF6B1017B6DE", + "File2.243FB739_4D05_472F_9CFB_EF6B1017B6DE" + }, files.Select(f => f.Name).ToArray()); + } + } } #endif } -- cgit v1.2.3-55-g6feb