diff options
Diffstat (limited to '')
| -rw-r--r-- | src/wix/WixToolset.Core.Native/cubes/darice.cub | bin | 694784 -> 692224 bytes | |||
| -rw-r--r-- | src/wix/test/WixToolsetTest.CoreIntegration/TestData/SimpleMerge/Package.wxs | 2 | ||||
| -rw-r--r-- | src/wix/test/WixToolsetTest.CoreIntegration/TestData/SimpleModule/Module.wxs | 2 | ||||
| -rw-r--r-- | src/wix/test/WixToolsetTest.CoreIntegration/ValidationFixture.cs | 113 |
4 files changed, 114 insertions, 3 deletions
diff --git a/src/wix/WixToolset.Core.Native/cubes/darice.cub b/src/wix/WixToolset.Core.Native/cubes/darice.cub index dab45677..c9f29f3a 100644 --- a/src/wix/WixToolset.Core.Native/cubes/darice.cub +++ b/src/wix/WixToolset.Core.Native/cubes/darice.cub | |||
| Binary files 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 @@ | |||
| 1 | <Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"> | 1 | <Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"> |
| 2 | <Package Name="MsiPackage" Codepage="1252" Language="1033" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a" Compressed="yes" InstallerVersion="200" Scope="perMachine"> | 2 | <Package Name="MsiPackage" Codepage="1252" Language="1033" Version="1.0.0.0" Manufacturer="Example Corporation" UpgradeCode="047730a5-30fe-4a62-a520-da9381b8226a" Compressed="yes" Scope="perMachine"> |
| 3 | <MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" /> | 3 | <MajorUpgrade DowngradeErrorMessage="!(loc.DowngradeError)" /> |
| 4 | 4 | ||
| 5 | <Feature Id="ProductFeature" Title="!(loc.FeatureTitle)"> | 5 | <Feature Id="ProductFeature" Title="!(loc.FeatureTitle)"> |
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 @@ | |||
| 1 | <Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"> | 1 | <Wix xmlns="http://wixtoolset.org/schemas/v4/wxs"> |
| 2 | <Module Id="MergeModule1" Language="1033" Version="1.0.0.0" Guid="243FB739-4D05-472F-9CFB-EF6B1017B6DE" InstallerVersion="200"> | 2 | <Module Id="MergeModule1" Language="1033" Version="1.0.0.0" Guid="243FB739-4D05-472F-9CFB-EF6B1017B6DE"> |
| 3 | <SummaryInformation Manufacturer="!(loc.Manufacturer)" /> | 3 | <SummaryInformation Manufacturer="!(loc.Manufacturer)" /> |
| 4 | 4 | ||
| 5 | <Directory Id="MergeRedirectFolder"> | 5 | <Directory Id="MergeRedirectFolder"> |
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 | |||
| 93 | "_SummaryInformation:Comments\tThis merge module contains the logic and data required to install MergeModule1.", | 93 | "_SummaryInformation:Comments\tThis merge module contains the logic and data required to install MergeModule1.", |
| 94 | "_SummaryInformation:Template\tIntel;1033", | 94 | "_SummaryInformation:Template\tIntel;1033", |
| 95 | "_SummaryInformation:CodePage\t1252", | 95 | "_SummaryInformation:CodePage\t1252", |
| 96 | "_SummaryInformation:PageCount\t200", | 96 | "_SummaryInformation:PageCount\t500", |
| 97 | "_SummaryInformation:WordCount\t0", | 97 | "_SummaryInformation:WordCount\t0", |
| 98 | "_SummaryInformation:CharacterCount\t0", | 98 | "_SummaryInformation:CharacterCount\t0", |
| 99 | "_SummaryInformation:Security\t2", | 99 | "_SummaryInformation:Security\t2", |
| @@ -311,6 +311,117 @@ namespace WixToolsetTest.CoreIntegration | |||
| 311 | }, messages); | 311 | }, messages); |
| 312 | } | 312 | } |
| 313 | } | 313 | } |
| 314 | |||
| 315 | [Fact] | ||
| 316 | public void CanValidateArm64Msi() | ||
| 317 | { | ||
| 318 | var folder = TestData.Get(@"TestData"); | ||
| 319 | |||
| 320 | using (var fs = new DisposableFileSystem()) | ||
| 321 | { | ||
| 322 | var baseFolder = fs.GetFolder(); | ||
| 323 | var intermediateFolder = Path.Combine(baseFolder, "obj"); | ||
| 324 | var msiPath = Path.Combine(baseFolder, @"bin", "test.msi"); | ||
| 325 | |||
| 326 | var result = WixRunner.Execute(new[] | ||
| 327 | { | ||
| 328 | "build", | ||
| 329 | "-arch", "arm64", | ||
| 330 | Path.Combine(folder, "Validation", "PackageWithIceIssues.wxs"), | ||
| 331 | "-bindpath", Path.Combine(folder, "SingleFile", "data"), | ||
| 332 | "-intermediateFolder", intermediateFolder, | ||
| 333 | "-o", msiPath, | ||
| 334 | }); | ||
| 335 | |||
| 336 | result.AssertSuccess(); | ||
| 337 | |||
| 338 | var validationResult = WixRunner.Execute(warningsAsErrors: true, new[] | ||
| 339 | { | ||
| 340 | "msi", "validate", | ||
| 341 | "-intermediateFolder", intermediateFolder, | ||
| 342 | msiPath | ||
| 343 | }); | ||
| 344 | |||
| 345 | Assert.Equal(1, validationResult.ExitCode); | ||
| 346 | |||
| 347 | var messages = validationResult.Messages.Select(m => m.ToString()).ToArray(); | ||
| 348 | WixAssert.CompareLineByLine(new[] | ||
| 349 | { | ||
| 350 | "ICE12: CustomAction: CausesICE12Error is of type: 35. Therefore it must come after CostFinalize @ 1000 in Seq Table: InstallExecuteSequence. CA Seq#: 49", | ||
| 351 | "ICE46: Property 'Myproperty' referenced in column 'LaunchCondition'.'Condition' of row 'Myproperty' differs from a defined property by case only.", | ||
| 352 | }, messages); | ||
| 353 | } | ||
| 354 | } | ||
| 355 | |||
| 356 | [Fact] | ||
| 357 | public void CanMergeArm64ModuleAndValidate() | ||
| 358 | { | ||
| 359 | var msmFolder = TestData.Get(@"TestData\SimpleModule"); | ||
| 360 | var folder = TestData.Get(@"TestData\SimpleMerge"); | ||
| 361 | |||
| 362 | using (var fs = new DisposableFileSystem()) | ||
| 363 | { | ||
| 364 | var intermediateFolder = fs.GetFolder(); | ||
| 365 | var msiPath = Path.Combine(intermediateFolder, @"bin\test.msi"); | ||
| 366 | var cabPath = Path.Combine(intermediateFolder, @"bin\cab1.cab"); | ||
| 367 | |||
| 368 | var msmResult = WixRunner.Execute(new[] | ||
| 369 | { | ||
| 370 | "build", | ||
| 371 | "-arch", "arm64", | ||
| 372 | Path.Combine(msmFolder, "Module.wxs"), | ||
| 373 | "-loc", Path.Combine(msmFolder, "Module.en-us.wxl"), | ||
| 374 | "-bindpath", Path.Combine(msmFolder, "data"), | ||
| 375 | "-intermediateFolder", intermediateFolder, | ||
| 376 | "-o", Path.Combine(intermediateFolder, "bin", "test", "test.msm") | ||
| 377 | }); | ||
| 378 | |||
| 379 | msmResult.AssertSuccess(); | ||
| 380 | |||
| 381 | var result = WixRunner.Execute(new[] | ||
| 382 | { | ||
| 383 | "build", | ||
| 384 | "-arch", "arm64", | ||
| 385 | Path.Combine(folder, "Package.wxs"), | ||
| 386 | "-loc", Path.Combine(folder, "Package.en-us.wxl"), | ||
| 387 | "-bindpath", Path.Combine(intermediateFolder, "bin", "test"), | ||
| 388 | "-intermediateFolder", intermediateFolder, | ||
| 389 | "-o", msiPath | ||
| 390 | }); | ||
| 391 | |||
| 392 | result.AssertSuccess(); | ||
| 393 | |||
| 394 | var validationResult = WixRunner.Execute(new[] | ||
| 395 | { | ||
| 396 | "msi", "validate", | ||
| 397 | "-sice", "ICE80", // Prevent whinging about 32-bit directories. | ||
| 398 | "-intermediateFolder", intermediateFolder, | ||
| 399 | msiPath | ||
| 400 | }); | ||
| 401 | validationResult.AssertSuccess(); | ||
| 402 | |||
| 403 | var intermediate = Intermediate.Load(Path.Combine(intermediateFolder, @"bin\test.wixpdb")); | ||
| 404 | var section = intermediate.Sections.Single(); | ||
| 405 | Assert.Empty(section.Symbols.OfType<FileSymbol>()); | ||
| 406 | |||
| 407 | var data = WindowsInstallerData.Load(Path.Combine(intermediateFolder, @"bin\test.wixpdb")); | ||
| 408 | Assert.Empty(data.Tables["File"].Rows); | ||
| 409 | |||
| 410 | var results = Query.QueryDatabase(msiPath, new[] { "File" }); | ||
| 411 | WixAssert.CompareLineByLine(new[] | ||
| 412 | { | ||
| 413 | "File:File1.243FB739_4D05_472F_9CFB_EF6B1017B6DE\tModuleComponent1.243FB739_4D05_472F_9CFB_EF6B1017B6DE\tfile1.txt\t17\t\t\t512\t1", | ||
| 414 | "File:File2.243FB739_4D05_472F_9CFB_EF6B1017B6DE\tModuleComponent2.243FB739_4D05_472F_9CFB_EF6B1017B6DE\tfile2.txt\t17\t\t\t512\t2", | ||
| 415 | }, results); | ||
| 416 | |||
| 417 | var files = Query.GetCabinetFiles(cabPath); | ||
| 418 | WixAssert.CompareLineByLine(new[] | ||
| 419 | { | ||
| 420 | "File1.243FB739_4D05_472F_9CFB_EF6B1017B6DE", | ||
| 421 | "File2.243FB739_4D05_472F_9CFB_EF6B1017B6DE" | ||
| 422 | }, files.Select(f => f.Name).ToArray()); | ||
| 423 | } | ||
| 424 | } | ||
| 314 | } | 425 | } |
| 315 | #endif | 426 | #endif |
| 316 | } | 427 | } |
