aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/WixToolset.Core.TestPackage/WixRunner.cs7
-rw-r--r--src/WixToolset.Core.TestPackage/WixRunnerResult.cs22
-rw-r--r--src/WixToolset.Core.TestPackage/WixToolset.Core.TestPackage.csproj9
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/ExtensionFixture.cs13
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/MsiFixture.cs25
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/PreprocessorFixture.cs18
-rw-r--r--src/test/WixToolsetTest.CoreIntegration/WixiplFixture.cs19
7 files changed, 76 insertions, 37 deletions
diff --git a/src/WixToolset.Core.TestPackage/WixRunner.cs b/src/WixToolset.Core.TestPackage/WixRunner.cs
index ff5c3c41..d7487f6d 100644
--- a/src/WixToolset.Core.TestPackage/WixRunner.cs
+++ b/src/WixToolset.Core.TestPackage/WixRunner.cs
@@ -16,6 +16,13 @@ namespace WixToolset.Core.TestPackage
16 return Execute(args, serviceProvider, out messages); 16 return Execute(args, serviceProvider, out messages);
17 } 17 }
18 18
19 public static WixRunnerResult Execute(string[] args)
20 {
21 var serviceProvider = new WixToolsetServiceProvider();
22 var exitCode = Execute(args, serviceProvider, out var messages);
23 return new WixRunnerResult { ExitCode = exitCode, Messages = messages.ToArray() };
24 }
25
19 public static int Execute(string[] args, IServiceProvider serviceProvider, out List<Message> messages) 26 public static int Execute(string[] args, IServiceProvider serviceProvider, out List<Message> messages)
20 { 27 {
21 var listener = new TestMessageListener(); 28 var listener = new TestMessageListener();
diff --git a/src/WixToolset.Core.TestPackage/WixRunnerResult.cs b/src/WixToolset.Core.TestPackage/WixRunnerResult.cs
new file mode 100644
index 00000000..45e31c2d
--- /dev/null
+++ b/src/WixToolset.Core.TestPackage/WixRunnerResult.cs
@@ -0,0 +1,22 @@
1// Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information.
2
3namespace WixToolset.Core.TestPackage
4{
5 using System;
6 using System.Linq;
7 using WixToolset.Data;
8 using Xunit;
9
10 public class WixRunnerResult
11 {
12 public int ExitCode { get; set; }
13
14 public Message[] Messages { get; set; }
15
16 public WixRunnerResult AssertSuccess()
17 {
18 Assert.True(0 == this.ExitCode, $"MSBuild failed unexpectedly. Output:\r\n{String.Join("\r\n", this.Messages.Select(m => m.ToString()).ToArray())}");
19 return this;
20 }
21 }
22}
diff --git a/src/WixToolset.Core.TestPackage/WixToolset.Core.TestPackage.csproj b/src/WixToolset.Core.TestPackage/WixToolset.Core.TestPackage.csproj
index 3632b064..f02cade7 100644
--- a/src/WixToolset.Core.TestPackage/WixToolset.Core.TestPackage.csproj
+++ b/src/WixToolset.Core.TestPackage/WixToolset.Core.TestPackage.csproj
@@ -1,9 +1,9 @@
1<?xml version="1.0" encoding="utf-8"?> 1<?xml version="1.0" encoding="utf-8"?>
2<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. --> 2<!-- Copyright (c) .NET Foundation and contributors. All rights reserved. Licensed under the Microsoft Reciprocal License. See LICENSE.TXT file in the project root for full license information. -->
3 3
4<Project Sdk="Microsoft.NET.Sdk"> 4<Project Sdk="Microsoft.NET.Sdk">
5 <PropertyGroup> 5 <PropertyGroup>
6 <TargetFramework>netstandard2.0</TargetFramework> 6 <TargetFrameworks>net461;netcoreapp2.1</TargetFrameworks>
7 <Description>Internal WiX Toolset Test Package</Description> 7 <Description>Internal WiX Toolset Test Package</Description>
8 <DebugType>embedded</DebugType> 8 <DebugType>embedded</DebugType>
9 <PublishRepositoryUrl>true</PublishRepositoryUrl> 9 <PublishRepositoryUrl>true</PublishRepositoryUrl>
@@ -37,4 +37,9 @@
37 <PackageReference Include="Microsoft.SourceLink.GitHub" Version="1.0.0-beta-63102-01" PrivateAssets="All"/> 37 <PackageReference Include="Microsoft.SourceLink.GitHub" Version="1.0.0-beta-63102-01" PrivateAssets="All"/>
38 <PackageReference Include="Nerdbank.GitVersioning" Version="2.1.65" PrivateAssets="All" /> 38 <PackageReference Include="Nerdbank.GitVersioning" Version="2.1.65" PrivateAssets="All" />
39 </ItemGroup> 39 </ItemGroup>
40
41 <ItemGroup>
42 <PackageReference Include="xunit" Version="2.4.0" />
43 </ItemGroup>
44
40</Project> 45</Project>
diff --git a/src/test/WixToolsetTest.CoreIntegration/ExtensionFixture.cs b/src/test/WixToolsetTest.CoreIntegration/ExtensionFixture.cs
index e96c2ddd..8e4bcd54 100644
--- a/src/test/WixToolsetTest.CoreIntegration/ExtensionFixture.cs
+++ b/src/test/WixToolsetTest.CoreIntegration/ExtensionFixture.cs
@@ -7,7 +7,6 @@ namespace WixToolsetTest.CoreIntegration
7 using System.Linq; 7 using System.Linq;
8 using Example.Extension; 8 using Example.Extension;
9 using WixBuildTools.TestSupport; 9 using WixBuildTools.TestSupport;
10 using WixToolset.Core;
11 using WixToolset.Core.TestPackage; 10 using WixToolset.Core.TestPackage;
12 using WixToolset.Data; 11 using WixToolset.Data;
13 using WixToolset.Data.Tuples; 12 using WixToolset.Data.Tuples;
@@ -48,9 +47,9 @@ namespace WixToolsetTest.CoreIntegration
48 "-bindpath", Path.Combine(folder, "data"), 47 "-bindpath", Path.Combine(folder, "data"),
49 "-intermediateFolder", intermediateFolder, 48 "-intermediateFolder", intermediateFolder,
50 "-o", Path.Combine(intermediateFolder, @"bin\extest.msi") 49 "-o", Path.Combine(intermediateFolder, @"bin\extest.msi")
51 }, out var messages); 50 });
52 51
53 Assert.Equal(0, result); 52 result.AssertSuccess();
54 53
55 Assert.True(File.Exists(Path.Combine(intermediateFolder, @"bin\extest.msi"))); 54 Assert.True(File.Exists(Path.Combine(intermediateFolder, @"bin\extest.msi")));
56 Assert.True(File.Exists(Path.Combine(intermediateFolder, @"bin\extest.wixpdb"))); 55 Assert.True(File.Exists(Path.Combine(intermediateFolder, @"bin\extest.wixpdb")));
@@ -91,9 +90,9 @@ namespace WixToolsetTest.CoreIntegration
91 "-intermediateFolder", intermediateFolder, 90 "-intermediateFolder", intermediateFolder,
92 "-example", "test", 91 "-example", "test",
93 "-o", Path.Combine(intermediateFolder, @"bin\extest.msi") 92 "-o", Path.Combine(intermediateFolder, @"bin\extest.msi")
94 }, out var messages); 93 });
95 94
96 Assert.Equal(0, result); 95 result.AssertSuccess();
97 96
98 var intermediate = Intermediate.Load(Path.Combine(intermediateFolder, @"extest.wir")); 97 var intermediate = Intermediate.Load(Path.Combine(intermediateFolder, @"extest.wir"));
99 var section = intermediate.Sections.Single(); 98 var section = intermediate.Sections.Single();
@@ -106,8 +105,8 @@ namespace WixToolsetTest.CoreIntegration
106 105
107 private static void Build(string[] args) 106 private static void Build(string[] args)
108 { 107 {
109 var result = WixRunner.Execute(args, out var messages); 108 var result = WixRunner.Execute(args)
110 Assert.Equal(0, result); 109 .AssertSuccess();
111 } 110 }
112 } 111 }
113} 112}
diff --git a/src/test/WixToolsetTest.CoreIntegration/MsiFixture.cs b/src/test/WixToolsetTest.CoreIntegration/MsiFixture.cs
index 126f334d..0e73179b 100644
--- a/src/test/WixToolsetTest.CoreIntegration/MsiFixture.cs
+++ b/src/test/WixToolsetTest.CoreIntegration/MsiFixture.cs
@@ -32,8 +32,9 @@ namespace WixToolsetTest.CoreIntegration
32 "-bindpath", Path.Combine(folder, "data"), 32 "-bindpath", Path.Combine(folder, "data"),
33 "-intermediateFolder", intermediateFolder, 33 "-intermediateFolder", intermediateFolder,
34 "-o", Path.Combine(baseFolder, @"bin\test.msi") 34 "-o", Path.Combine(baseFolder, @"bin\test.msi")
35 }, out var messages); 35 });
36 Assert.Equal(0, result); 36
37 result.AssertSuccess();
37 38
38 Assert.True(File.Exists(Path.Combine(baseFolder, @"bin\test.msi"))); 39 Assert.True(File.Exists(Path.Combine(baseFolder, @"bin\test.msi")));
39 Assert.True(File.Exists(Path.Combine(baseFolder, @"bin\test.wixpdb"))); 40 Assert.True(File.Exists(Path.Combine(baseFolder, @"bin\test.wixpdb")));
@@ -66,9 +67,9 @@ namespace WixToolsetTest.CoreIntegration
66 "-bindpath", Path.Combine(folder, "data"), 67 "-bindpath", Path.Combine(folder, "data"),
67 "-intermediateFolder", intermediateFolder, 68 "-intermediateFolder", intermediateFolder,
68 "-o", Path.Combine(intermediateFolder, @"bin\test.msi") 69 "-o", Path.Combine(intermediateFolder, @"bin\test.msi")
69 }, out var messages); 70 });
70 71
71 Assert.Equal(0, result); 72 result.AssertSuccess();
72 73
73 Assert.True(File.Exists(Path.Combine(intermediateFolder, @"bin\test.msi"))); 74 Assert.True(File.Exists(Path.Combine(intermediateFolder, @"bin\test.msi")));
74 Assert.True(File.Exists(Path.Combine(intermediateFolder, @"bin\example.cab"))); 75 Assert.True(File.Exists(Path.Combine(intermediateFolder, @"bin\example.cab")));
@@ -102,9 +103,9 @@ namespace WixToolsetTest.CoreIntegration
102 "-bindpath", Path.Combine(folder, "data"), 103 "-bindpath", Path.Combine(folder, "data"),
103 "-intermediateFolder", intermediateFolder, 104 "-intermediateFolder", intermediateFolder,
104 "-o", Path.Combine(intermediateFolder, @"bin\test.msi") 105 "-o", Path.Combine(intermediateFolder, @"bin\test.msi")
105 }, out var messages); 106 });
106 107
107 Assert.Equal(0, result); 108 result.AssertSuccess();
108 109
109 Assert.True(File.Exists(Path.Combine(intermediateFolder, @"bin\test.msi"))); 110 Assert.True(File.Exists(Path.Combine(intermediateFolder, @"bin\test.msi")));
110 Assert.True(File.Exists(Path.Combine(intermediateFolder, @"bin\cab1.cab"))); 111 Assert.True(File.Exists(Path.Combine(intermediateFolder, @"bin\cab1.cab")));
@@ -391,9 +392,9 @@ namespace WixToolsetTest.CoreIntegration
391 "-intermediateFolder", intermediateFolder, 392 "-intermediateFolder", intermediateFolder,
392 "-o", Path.Combine(baseFolder, @"bin\test.msi"), 393 "-o", Path.Combine(baseFolder, @"bin\test.msi"),
393 "-i", bindpath, 394 "-i", bindpath,
394 }, out var messages); 395 });
395 396
396 Assert.Equal(0, result); 397 result.AssertSuccess();
397 398
398 Assert.True(File.Exists(Path.Combine(baseFolder, @"bin\test.msi"))); 399 Assert.True(File.Exists(Path.Combine(baseFolder, @"bin\test.msi")));
399 Assert.True(File.Exists(Path.Combine(baseFolder, @"bin\test.wixpdb"))); 400 Assert.True(File.Exists(Path.Combine(baseFolder, @"bin\test.wixpdb")));
@@ -427,9 +428,9 @@ namespace WixToolsetTest.CoreIntegration
427 "-bindpath", Path.Combine(folder, "data"), 428 "-bindpath", Path.Combine(folder, "data"),
428 "-intermediateFolder", intermediateFolder, 429 "-intermediateFolder", intermediateFolder,
429 "-o", Path.Combine(baseFolder, @"bin\test.msi") 430 "-o", Path.Combine(baseFolder, @"bin\test.msi")
430 }, out var messages); 431 });
431 432
432 Assert.Equal(0, result); 433 result.AssertSuccess();
433 434
434 Assert.True(File.Exists(Path.Combine(baseFolder, @"bin\test.msi"))); 435 Assert.True(File.Exists(Path.Combine(baseFolder, @"bin\test.msi")));
435 Assert.True(File.Exists(Path.Combine(baseFolder, @"bin\test.wixpdb"))); 436 Assert.True(File.Exists(Path.Combine(baseFolder, @"bin\test.wixpdb")));
@@ -465,9 +466,9 @@ namespace WixToolsetTest.CoreIntegration
465 "-bindpath", Path.Combine(folder, "data"), 466 "-bindpath", Path.Combine(folder, "data"),
466 "-intermediateFolder", intermediateFolder, 467 "-intermediateFolder", intermediateFolder,
467 "-o", Path.Combine(intermediateFolder, @"bin\test.msi") 468 "-o", Path.Combine(intermediateFolder, @"bin\test.msi")
468 }, out var messages); 469 });
469 470
470 Assert.Equal(0, result); 471 result.AssertSuccess();
471 472
472 var pdb = Pdb.Load(Path.Combine(intermediateFolder, @"bin\test.wixpdb"), false); 473 var pdb = Pdb.Load(Path.Combine(intermediateFolder, @"bin\test.wixpdb"), false);
473 Assert.NotEmpty(pdb.Output.SubStorages); 474 Assert.NotEmpty(pdb.Output.SubStorages);
diff --git a/src/test/WixToolsetTest.CoreIntegration/PreprocessorFixture.cs b/src/test/WixToolsetTest.CoreIntegration/PreprocessorFixture.cs
index ebc713ed..f9a9fe83 100644
--- a/src/test/WixToolsetTest.CoreIntegration/PreprocessorFixture.cs
+++ b/src/test/WixToolsetTest.CoreIntegration/PreprocessorFixture.cs
@@ -32,10 +32,11 @@ namespace WixToolsetTest.CoreIntegration
32 "-bindpath", Path.Combine(folder, "data"), 32 "-bindpath", Path.Combine(folder, "data"),
33 "-intermediateFolder", intermediateFolder, 33 "-intermediateFolder", intermediateFolder,
34 "-o", Path.Combine(baseFolder, @"bin\test.msi") 34 "-o", Path.Combine(baseFolder, @"bin\test.msi")
35 }, out var messages); 35 });
36 Assert.Equal(0, result);
37 36
38 var warnings = messages.Where(message => message.Id == 1118); 37 result.AssertSuccess();
38
39 var warnings = result.Messages.Where(message => message.Id == 1118);
39 Assert.Single(warnings); 40 Assert.Single(warnings);
40 } 41 }
41 } 42 }
@@ -59,8 +60,9 @@ namespace WixToolsetTest.CoreIntegration
59 "-bindpath", Path.Combine(folder, "data"), 60 "-bindpath", Path.Combine(folder, "data"),
60 "-intermediateFolder", intermediateFolder, 61 "-intermediateFolder", intermediateFolder,
61 "-o", Path.Combine(baseFolder, @"bin\test.msi") 62 "-o", Path.Combine(baseFolder, @"bin\test.msi")
62 }, out var messages); 63 });
63 Assert.Equal(0, result); 64
65 result.AssertSuccess();
64 } 66 }
65 } 67 }
66 68
@@ -83,10 +85,10 @@ namespace WixToolsetTest.CoreIntegration
83 "-bindpath", Path.Combine(folder, "data"), 85 "-bindpath", Path.Combine(folder, "data"),
84 "-intermediateFolder", intermediateFolder, 86 "-intermediateFolder", intermediateFolder,
85 "-o", Path.Combine(baseFolder, @"bin\test.msi") 87 "-o", Path.Combine(baseFolder, @"bin\test.msi")
86 }, out var messages); 88 });
87 89
88 Assert.Equal(147, result); 90 Assert.Equal(147, result.ExitCode);
89 Assert.StartsWith("Found a <?if?>", messages.Single().ToString()); 91 Assert.StartsWith("Found a <?if?>", result.Messages.Single().ToString());
90 } 92 }
91 } 93 }
92 } 94 }
diff --git a/src/test/WixToolsetTest.CoreIntegration/WixiplFixture.cs b/src/test/WixToolsetTest.CoreIntegration/WixiplFixture.cs
index a51d831f..df6542e2 100644
--- a/src/test/WixToolsetTest.CoreIntegration/WixiplFixture.cs
+++ b/src/test/WixToolsetTest.CoreIntegration/WixiplFixture.cs
@@ -29,8 +29,9 @@ namespace WixToolsetTest.CoreIntegration
29 Path.Combine(folder, "PackageComponents.wxs"), 29 Path.Combine(folder, "PackageComponents.wxs"),
30 "-intermediateFolder", intermediateFolder, 30 "-intermediateFolder", intermediateFolder,
31 "-o", Path.Combine(intermediateFolder, @"test.wixipl") 31 "-o", Path.Combine(intermediateFolder, @"test.wixipl")
32 }, out var messagesCompile); 32 });
33 Assert.Equal(0, result); 33
34 result.AssertSuccess();
34 35
35 result = WixRunner.Execute(new[] 36 result = WixRunner.Execute(new[]
36 { 37 {
@@ -40,8 +41,9 @@ namespace WixToolsetTest.CoreIntegration
40 "-bindpath", Path.Combine(folder, "data"), 41 "-bindpath", Path.Combine(folder, "data"),
41 "-intermediateFolder", intermediateFolder, 42 "-intermediateFolder", intermediateFolder,
42 "-o", Path.Combine(baseFolder, @"bin\test.msi") 43 "-o", Path.Combine(baseFolder, @"bin\test.msi")
43 }, out var messagesBind); 44 });
44 Assert.Equal(0, result); 45
46 result.AssertSuccess();
45 47
46 var intermediate = Intermediate.Load(Path.Combine(baseFolder, @"obj\test.wir")); 48 var intermediate = Intermediate.Load(Path.Combine(baseFolder, @"obj\test.wir"));
47 var section = intermediate.Sections.Single(); 49 var section = intermediate.Sections.Single();
@@ -69,8 +71,9 @@ namespace WixToolsetTest.CoreIntegration
69 Path.Combine(folder, "PackageComponents.wxs"), 71 Path.Combine(folder, "PackageComponents.wxs"),
70 "-intermediateFolder", intermediateFolder, 72 "-intermediateFolder", intermediateFolder,
71 "-o", Path.Combine(intermediateFolder, @"test.wixipl") 73 "-o", Path.Combine(intermediateFolder, @"test.wixipl")
72 }, out var messagesCompile); 74 });
73 Assert.Equal(0, result); 75
76 result.AssertSuccess();
74 77
75 result = WixRunner.Execute(new[] 78 result = WixRunner.Execute(new[]
76 { 79 {
@@ -81,8 +84,8 @@ namespace WixToolsetTest.CoreIntegration
81 "-bindpath", Path.Combine(folder, "data"), 84 "-bindpath", Path.Combine(folder, "data"),
82 "-intermediateFolder", intermediateFolder, 85 "-intermediateFolder", intermediateFolder,
83 "-o", Path.Combine(baseFolder, @"bin\test.msi") 86 "-o", Path.Combine(baseFolder, @"bin\test.msi")
84 }, out var messagesBind); 87 });
85 Assert.Equal((int)ErrorMessages.Ids.WixiplSourceFileIsExclusive, result); 88 Assert.Equal((int)ErrorMessages.Ids.WixiplSourceFileIsExclusive, result.ExitCode);
86 } 89 }
87 } 90 }
88 } 91 }