diff options
Diffstat (limited to 'src/wix/test/WixToolsetTest.Sdk/MsbuildFixture.cs')
-rw-r--r-- | src/wix/test/WixToolsetTest.Sdk/MsbuildFixture.cs | 57 |
1 files changed, 51 insertions, 6 deletions
diff --git a/src/wix/test/WixToolsetTest.Sdk/MsbuildFixture.cs b/src/wix/test/WixToolsetTest.Sdk/MsbuildFixture.cs index b1a97644..3a9ce776 100644 --- a/src/wix/test/WixToolsetTest.Sdk/MsbuildFixture.cs +++ b/src/wix/test/WixToolsetTest.Sdk/MsbuildFixture.cs | |||
@@ -26,12 +26,19 @@ namespace WixToolsetTest.Sdk | |||
26 | var binFolder = Path.Combine(baseFolder, @"bin\"); | 26 | var binFolder = Path.Combine(baseFolder, @"bin\"); |
27 | var projectPath = Path.Combine(baseFolder, "SimpleBundle.wixproj"); | 27 | var projectPath = Path.Combine(baseFolder, "SimpleBundle.wixproj"); |
28 | 28 | ||
29 | var result = MsbuildUtilities.BuildProject(buildSystem, projectPath); | 29 | var result = MsbuildUtilities.BuildProject(buildSystem, projectPath, new[] { "-p:SignOutput=true" }); |
30 | result.AssertSuccess(); | 30 | result.AssertSuccess(); |
31 | 31 | ||
32 | var warnings = result.Output.Where(line => line.Contains(": warning")).ToArray(); | 32 | var warnings = result.Output.Where(line => line.Contains(": warning")).ToArray(); |
33 | WixAssert.StringCollectionEmpty(warnings); | 33 | WixAssert.StringCollectionEmpty(warnings); |
34 | 34 | ||
35 | var testMessages = result.Output.Where(line => line.Contains("TEST:")).Select(line => line.Trim()).ToArray(); | ||
36 | WixAssert.CompareLineByLine(new[] | ||
37 | { | ||
38 | @"TEST: SignBundleEngine: obj\x86\Release\SimpleBundle.exe", | ||
39 | @"TEST: SignBundle: obj\x86\Release\SimpleBundle.exe", | ||
40 | }, testMessages); | ||
41 | |||
35 | var paths = Directory.EnumerateFiles(binFolder, @"*.*", SearchOption.AllDirectories) | 42 | var paths = Directory.EnumerateFiles(binFolder, @"*.*", SearchOption.AllDirectories) |
36 | .Select(s => s.Substring(baseFolder.Length + 1)) | 43 | .Select(s => s.Substring(baseFolder.Length + 1)) |
37 | .OrderBy(s => s) | 44 | .OrderBy(s => s) |
@@ -59,12 +66,18 @@ namespace WixToolsetTest.Sdk | |||
59 | var binFolder = Path.Combine(baseFolder, @"bin\"); | 66 | var binFolder = Path.Combine(baseFolder, @"bin\"); |
60 | var projectPath = Path.Combine(baseFolder, "UncompressedBundle.wixproj"); | 67 | var projectPath = Path.Combine(baseFolder, "UncompressedBundle.wixproj"); |
61 | 68 | ||
62 | var result = MsbuildUtilities.BuildProject(buildSystem, projectPath); | 69 | var result = MsbuildUtilities.BuildProject(buildSystem, projectPath, new[] { "-p:SignOutput=true" }); |
63 | result.AssertSuccess(); | 70 | result.AssertSuccess(); |
64 | 71 | ||
65 | var warnings = result.Output.Where(line => line.Contains(": warning")).ToArray(); | 72 | var warnings = result.Output.Where(line => line.Contains(": warning")).ToArray(); |
66 | WixAssert.StringCollectionEmpty(warnings); | 73 | WixAssert.StringCollectionEmpty(warnings); |
67 | 74 | ||
75 | var testMessages = result.Output.Where(line => line.Contains("TEST:")).Select(line => line.Trim()).ToArray(); | ||
76 | WixAssert.CompareLineByLine(new[] | ||
77 | { | ||
78 | @"TEST: SignBundleEngine: obj\x86\Release\UncompressedBundle.exe", | ||
79 | }, testMessages); | ||
80 | |||
68 | var paths = Directory.EnumerateFiles(binFolder, @"*.*", SearchOption.AllDirectories) | 81 | var paths = Directory.EnumerateFiles(binFolder, @"*.*", SearchOption.AllDirectories) |
69 | .Select(s => s.Substring(baseFolder.Length + 1)) | 82 | .Select(s => s.Substring(baseFolder.Length + 1)) |
70 | .OrderBy(s => s) | 83 | .OrderBy(s => s) |
@@ -119,21 +132,39 @@ namespace WixToolsetTest.Sdk | |||
119 | { | 132 | { |
120 | var sourceFolder = TestData.Get(@"TestData\SimpleMsiPackage\MsiPackage"); | 133 | var sourceFolder = TestData.Get(@"TestData\SimpleMsiPackage\MsiPackage"); |
121 | 134 | ||
135 | var baseFolder = String.Empty; | ||
136 | |||
122 | using (var fs = new TestDataFolderFileSystem()) | 137 | using (var fs = new TestDataFolderFileSystem()) |
123 | { | 138 | { |
124 | fs.Initialize(sourceFolder); | 139 | fs.Initialize(sourceFolder); |
125 | var baseFolder = fs.BaseFolder; | 140 | baseFolder = fs.BaseFolder; |
141 | |||
126 | var binFolder = Path.Combine(baseFolder, @"bin\"); | 142 | var binFolder = Path.Combine(baseFolder, @"bin\"); |
127 | var projectPath = Path.Combine(baseFolder, "MsiPackage.wixproj"); | 143 | var projectPath = Path.Combine(baseFolder, "MsiPackage.wixproj"); |
128 | 144 | ||
129 | var result = MsbuildUtilities.BuildProject(buildSystem, projectPath); | 145 | var result = MsbuildUtilities.BuildProject(buildSystem, projectPath, new[] { "-p:SignOutput=true" }); |
130 | result.AssertSuccess(); | 146 | result.AssertSuccess(); |
131 | 147 | ||
132 | var platformSwitches = result.Output.Where(line => line.Contains("-platform x86")); | 148 | var platformSwitches = result.Output.Where(line => line.Contains("-platform x86")); |
133 | Assert.Single(platformSwitches); | 149 | Assert.Single(platformSwitches); |
134 | 150 | ||
135 | var warnings = result.Output.Where(line => line.Contains(": warning")); | 151 | var warnings = result.Output.Where(line => line.Contains(": warning")).Select(ExtractWarningFromMessage).ToArray(); |
136 | Assert.Equal(4, warnings.Count()); | 152 | WixAssert.CompareLineByLine(new[] |
153 | { | ||
154 | @"WIX1118: The variable 'Variable' with value 'DifferentValue' was previously declared with value 'Value'.", | ||
155 | @"WIX1102: The DefaultLanguage '1033' was used for file 'filcV1yrx0x8wJWj4qMzcH21jwkPko' which has no language or version. For unversioned files, specifying a value for DefaultLanguage is not neccessary and it will not be used when determining file versions. Remove the DefaultLanguage attribute to eliminate this warning.", | ||
156 | @"WIX1122: The installer database '<basefolder>\obj\x86\Release\en-US\MsiPackage.msi' has external cabs, but at least one of them is not signed. Please ensure that all external cabs are signed, if you mean to sign them. If you don't mean to sign them, there is no need to inscribe the MSI as part of your build.", | ||
157 | @"WIX1118: The variable 'Variable' with value 'DifferentValue' was previously declared with value 'Value'.", | ||
158 | @"WIX1102: The DefaultLanguage '1033' was used for file 'filcV1yrx0x8wJWj4qMzcH21jwkPko' which has no language or version. For unversioned files, specifying a value for DefaultLanguage is not neccessary and it will not be used when determining file versions. Remove the DefaultLanguage attribute to eliminate this warning.", | ||
159 | @"WIX1122: The installer database '<basefolder>\obj\x86\Release\en-US\MsiPackage.msi' has external cabs, but at least one of them is not signed. Please ensure that all external cabs are signed, if you mean to sign them. If you don't mean to sign them, there is no need to inscribe the MSI as part of your build." | ||
160 | }, warnings); | ||
161 | |||
162 | var testMessages = result.Output.Where(line => line.Contains("TEST:")).Select(ReplacePathsInMessage).ToArray(); | ||
163 | WixAssert.CompareLineByLine(new[] | ||
164 | { | ||
165 | @"TEST: SignCabs: <basefolder>\obj\x86\Release\en-US\cab1.cab", | ||
166 | @"TEST: SignMsi: obj\x86\Release\en-US\MsiPackage.msi", | ||
167 | }, testMessages); | ||
137 | 168 | ||
138 | var paths = Directory.EnumerateFiles(binFolder, @"*.*", SearchOption.AllDirectories) | 169 | var paths = Directory.EnumerateFiles(binFolder, @"*.*", SearchOption.AllDirectories) |
139 | .Select(s => s.Substring(baseFolder.Length + 1)) | 170 | .Select(s => s.Substring(baseFolder.Length + 1)) |
@@ -146,6 +177,20 @@ namespace WixToolsetTest.Sdk | |||
146 | @"bin\x86\Release\en-US\MsiPackage.wixpdb", | 177 | @"bin\x86\Release\en-US\MsiPackage.wixpdb", |
147 | }, paths); | 178 | }, paths); |
148 | } | 179 | } |
180 | |||
181 | string ExtractWarningFromMessage(string message) | ||
182 | { | ||
183 | const string prefix = ": warning "; | ||
184 | |||
185 | var start = message.IndexOf(prefix) + prefix.Length; | ||
186 | var end = message.LastIndexOf("["); | ||
187 | return ReplacePathsInMessage(message.Substring(start, end - start)); | ||
188 | } | ||
189 | |||
190 | string ReplacePathsInMessage(string message) | ||
191 | { | ||
192 | return message.Replace(baseFolder, "<basefolder>").Trim(); | ||
193 | } | ||
149 | } | 194 | } |
150 | 195 | ||
151 | [Theory] | 196 | [Theory] |