From 1ade630c42bed442f4904c26b6a897a2daaa193e Mon Sep 17 00:00:00 2001 From: Bob Arnson Date: Sun, 18 Aug 2024 19:05:02 -0400 Subject: Add verbose messages around harvesting. --- src/wix/WixToolset.Core/HarvestFilesCommand.cs | 7 +++++ src/wix/WixToolset.Core/OptimizerVerboses.cs | 30 ++++++++++++++++++++++ .../HarvestFilesFixture.cs | 29 ++++++++++++++++++--- 3 files changed, 63 insertions(+), 3 deletions(-) create mode 100644 src/wix/WixToolset.Core/OptimizerVerboses.cs (limited to 'src') 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 var included = this.GetWildcardFiles(harvestFile, inclusions); var excluded = this.GetWildcardFiles(harvestFile, exclusions); + foreach (var excludedFile in excluded) + { + this.Messaging.Write(OptimizerVerboses.ExcludedFile(harvestFile.SourceLineNumbers, excludedFile.Path)); + } + resolvedFiles = included.Except(excluded, comparer).ToList(); if (!resolvedFiles.Any()) @@ -90,6 +95,8 @@ namespace WixToolset.Core var id = this.ParseHelper.CreateIdentifier("fls", directoryId, name); + this.Messaging.Write(OptimizerVerboses.HarvestedFile(harvestFile.SourceLineNumbers, file)); + section.AddSymbol(new FileSymbol(harvestFile.SourceLineNumbers, id) { 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 @@ +// 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. + +namespace WixToolset.Core +{ + using WixToolset.Data; + + internal static class OptimizerVerboses + { + public static Message HarvestedFile(SourceLineNumber sourceLineNumbers, string harvestedFile) + { + return Message(sourceLineNumbers, Ids.HarvestedFile, "Harvested file: {0}", harvestedFile); + } + + public static Message ExcludedFile(SourceLineNumber sourceLineNumbers, string excludedFile) + { + return Message(sourceLineNumbers, Ids.ExcludedFile, "File excluded from harvesting: {0}", excludedFile); + } + + private static Message Message(SourceLineNumber sourceLineNumber, Ids id, string format, params object[] args) + { + return new Message(sourceLineNumber, MessageLevel.Verbose, (int)id, format, args); + } + + public enum Ids + { + HarvestedFile = 8700, + ExcludedFile = 8701, + } + } +} 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 @@ namespace WixToolsetTest.CoreIntegration { using System; + using System.Collections.Generic; using System.Data; using System.IO; using System.Linq; @@ -291,6 +292,23 @@ namespace WixToolsetTest.CoreIntegration Build("PackageFiveLiner.wxs", (msiPath, _) => AssertFileIdsAndTargetPaths(msiPath, expected)); } + [Fact] + public void CanGetVerboseHarvestingDetails() + { + Build("Feature.wxs", (_, result) => + { + var messages = result.Messages.Select(m => m.Id).Where(i => i >= 8700 && i < 8800); + Assert.Equal(new[] + { + 8701, + 8700, + 8701, + 8700, + 8700, + }, messages); + }, additionalCommandLineArguments: "-v"); + } + private static void AssertFileIdsAndTargetPaths(string msiPath, string[] expected) { var pkg = new WixToolset.Dtf.WindowsInstaller.Package.InstallPackage(msiPath, @@ -301,7 +319,7 @@ namespace WixToolsetTest.CoreIntegration Assert.Equal(sortedExpected, actual); } - private static void Build(string file, Action tester, bool isPackage = true) + private static void Build(string file, Action tester, bool isPackage = true, params string[] additionalCommandLineArguments) { var folder = TestData.Get("TestData", "HarvestFiles"); @@ -312,7 +330,7 @@ namespace WixToolsetTest.CoreIntegration var binFolder = Path.Combine(baseFolder, "bin"); var msiPath = Path.Combine(binFolder, isPackage ? "test.msi" : "test.msm"); - var arguments = new[] + var arguments = new List() { "build", Path.Combine(folder, file), @@ -323,7 +341,12 @@ namespace WixToolsetTest.CoreIntegration "-o", msiPath, }; - var result = WixRunner.Execute(arguments); + if (additionalCommandLineArguments.Length > 0) + { + arguments.AddRange(additionalCommandLineArguments); + } + + var result = WixRunner.Execute(arguments.ToArray()); tester(msiPath, result); } -- cgit v1.2.3-55-g6feb