aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBob Arnson <bob@firegiant.com>2024-08-18 19:05:02 -0400
committerBob Arnson <github@bobs.org>2024-08-19 09:11:35 -0400
commit1ade630c42bed442f4904c26b6a897a2daaa193e (patch)
treeb7c1e1d4a462e32b6a63b25779a04ba854df1e5b
parentce73352b1fa1d4f9cded10a0ee410f2e786bd326 (diff)
downloadwix-1ade630c42bed442f4904c26b6a897a2daaa193e.tar.gz
wix-1ade630c42bed442f4904c26b6a897a2daaa193e.tar.bz2
wix-1ade630c42bed442f4904c26b6a897a2daaa193e.zip
Add verbose messages around harvesting.
-rw-r--r--src/wix/WixToolset.Core/HarvestFilesCommand.cs7
-rw-r--r--src/wix/WixToolset.Core/OptimizerVerboses.cs30
-rw-r--r--src/wix/test/WixToolsetTest.CoreIntegration/HarvestFilesFixture.cs29
3 files changed, 63 insertions, 3 deletions
diff --git a/src/wix/WixToolset.Core/HarvestFilesCommand.cs b/src/wix/WixToolset.Core/HarvestFilesCommand.cs
index 9d2d0fe8..a8c716d0 100644
--- a/src/wix/WixToolset.Core/HarvestFilesCommand.cs
+++ b/src/wix/WixToolset.Core/HarvestFilesCommand.cs
@@ -57,6 +57,11 @@ namespace WixToolset.Core
57 var included = this.GetWildcardFiles(harvestFile, inclusions); 57 var included = this.GetWildcardFiles(harvestFile, inclusions);
58 var excluded = this.GetWildcardFiles(harvestFile, exclusions); 58 var excluded = this.GetWildcardFiles(harvestFile, exclusions);
59 59
60 foreach (var excludedFile in excluded)
61 {
62 this.Messaging.Write(OptimizerVerboses.ExcludedFile(harvestFile.SourceLineNumbers, excludedFile.Path));
63 }
64
60 resolvedFiles = included.Except(excluded, comparer).ToList(); 65 resolvedFiles = included.Except(excluded, comparer).ToList();
61 66
62 if (!resolvedFiles.Any()) 67 if (!resolvedFiles.Any())
@@ -90,6 +95,8 @@ namespace WixToolset.Core
90 95
91 var id = this.ParseHelper.CreateIdentifier("fls", directoryId, name); 96 var id = this.ParseHelper.CreateIdentifier("fls", directoryId, name);
92 97
98 this.Messaging.Write(OptimizerVerboses.HarvestedFile(harvestFile.SourceLineNumbers, file));
99
93 section.AddSymbol(new FileSymbol(harvestFile.SourceLineNumbers, id) 100 section.AddSymbol(new FileSymbol(harvestFile.SourceLineNumbers, id)
94 { 101 {
95 ComponentRef = id.Id, 102 ComponentRef = id.Id,
diff --git a/src/wix/WixToolset.Core/OptimizerVerboses.cs b/src/wix/WixToolset.Core/OptimizerVerboses.cs
new file mode 100644
index 00000000..96f9d344
--- /dev/null
+++ b/src/wix/WixToolset.Core/OptimizerVerboses.cs
@@ -0,0 +1,30 @@
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
4{
5 using WixToolset.Data;
6
7 internal static class OptimizerVerboses
8 {
9 public static Message HarvestedFile(SourceLineNumber sourceLineNumbers, string harvestedFile)
10 {
11 return Message(sourceLineNumbers, Ids.HarvestedFile, "Harvested file: {0}", harvestedFile);
12 }
13
14 public static Message ExcludedFile(SourceLineNumber sourceLineNumbers, string excludedFile)
15 {
16 return Message(sourceLineNumbers, Ids.ExcludedFile, "File excluded from harvesting: {0}", excludedFile);
17 }
18
19 private static Message Message(SourceLineNumber sourceLineNumber, Ids id, string format, params object[] args)
20 {
21 return new Message(sourceLineNumber, MessageLevel.Verbose, (int)id, format, args);
22 }
23
24 public enum Ids
25 {
26 HarvestedFile = 8700,
27 ExcludedFile = 8701,
28 }
29 }
30}
diff --git a/src/wix/test/WixToolsetTest.CoreIntegration/HarvestFilesFixture.cs b/src/wix/test/WixToolsetTest.CoreIntegration/HarvestFilesFixture.cs
index 821660ff..7da47f6b 100644
--- a/src/wix/test/WixToolsetTest.CoreIntegration/HarvestFilesFixture.cs
+++ b/src/wix/test/WixToolsetTest.CoreIntegration/HarvestFilesFixture.cs
@@ -3,6 +3,7 @@
3namespace WixToolsetTest.CoreIntegration 3namespace WixToolsetTest.CoreIntegration
4{ 4{
5 using System; 5 using System;
6 using System.Collections.Generic;
6 using System.Data; 7 using System.Data;
7 using System.IO; 8 using System.IO;
8 using System.Linq; 9 using System.Linq;
@@ -291,6 +292,23 @@ namespace WixToolsetTest.CoreIntegration
291 Build("PackageFiveLiner.wxs", (msiPath, _) => AssertFileIdsAndTargetPaths(msiPath, expected)); 292 Build("PackageFiveLiner.wxs", (msiPath, _) => AssertFileIdsAndTargetPaths(msiPath, expected));
292 } 293 }
293 294
295 [Fact]
296 public void CanGetVerboseHarvestingDetails()
297 {
298 Build("Feature.wxs", (_, result) =>
299 {
300 var messages = result.Messages.Select(m => m.Id).Where(i => i >= 8700 && i < 8800);
301 Assert.Equal(new[]
302 {
303 8701,
304 8700,
305 8701,
306 8700,
307 8700,
308 }, messages);
309 }, additionalCommandLineArguments: "-v");
310 }
311
294 private static void AssertFileIdsAndTargetPaths(string msiPath, string[] expected) 312 private static void AssertFileIdsAndTargetPaths(string msiPath, string[] expected)
295 { 313 {
296 var pkg = new WixToolset.Dtf.WindowsInstaller.Package.InstallPackage(msiPath, 314 var pkg = new WixToolset.Dtf.WindowsInstaller.Package.InstallPackage(msiPath,
@@ -301,7 +319,7 @@ namespace WixToolsetTest.CoreIntegration
301 Assert.Equal(sortedExpected, actual); 319 Assert.Equal(sortedExpected, actual);
302 } 320 }
303 321
304 private static void Build(string file, Action<string, WixRunnerResult> tester, bool isPackage = true) 322 private static void Build(string file, Action<string, WixRunnerResult> tester, bool isPackage = true, params string[] additionalCommandLineArguments)
305 { 323 {
306 var folder = TestData.Get("TestData", "HarvestFiles"); 324 var folder = TestData.Get("TestData", "HarvestFiles");
307 325
@@ -312,7 +330,7 @@ namespace WixToolsetTest.CoreIntegration
312 var binFolder = Path.Combine(baseFolder, "bin"); 330 var binFolder = Path.Combine(baseFolder, "bin");
313 var msiPath = Path.Combine(binFolder, isPackage ? "test.msi" : "test.msm"); 331 var msiPath = Path.Combine(binFolder, isPackage ? "test.msi" : "test.msm");
314 332
315 var arguments = new[] 333 var arguments = new List<string>()
316 { 334 {
317 "build", 335 "build",
318 Path.Combine(folder, file), 336 Path.Combine(folder, file),
@@ -323,7 +341,12 @@ namespace WixToolsetTest.CoreIntegration
323 "-o", msiPath, 341 "-o", msiPath,
324 }; 342 };
325 343
326 var result = WixRunner.Execute(arguments); 344 if (additionalCommandLineArguments.Length > 0)
345 {
346 arguments.AddRange(additionalCommandLineArguments);
347 }
348
349 var result = WixRunner.Execute(arguments.ToArray());
327 350
328 tester(msiPath, result); 351 tester(msiPath, result);
329 } 352 }