diff options
author | Rob Mensching <rob@firegiant.com> | 2022-11-06 17:57:40 -0800 |
---|---|---|
committer | Rob Mensching <rob@firegiant.com> | 2022-11-06 20:58:40 -0800 |
commit | a4e1959094cdf2f868479dc62aeb2cb92def51b7 (patch) | |
tree | ca163416d3994f5cf0550dee1afb1132b3cb9da8 | |
parent | f1b7df8ac8bd545d4329707761a81669b95c10e9 (diff) | |
download | wix-a4e1959094cdf2f868479dc62aeb2cb92def51b7.tar.gz wix-a4e1959094cdf2f868479dc62aeb2cb92def51b7.tar.bz2 wix-a4e1959094cdf2f868479dc62aeb2cb92def51b7.zip |
Report multiple missing files in one build
-rw-r--r-- | src/wix/WixToolset.Core/Bind/ResolveFieldsCommand.cs | 4 | ||||
-rw-r--r-- | src/wix/test/WixToolsetTest.CoreIntegration/MsiFixture.cs | 17 |
2 files changed, 15 insertions, 6 deletions
diff --git a/src/wix/WixToolset.Core/Bind/ResolveFieldsCommand.cs b/src/wix/WixToolset.Core/Bind/ResolveFieldsCommand.cs index 8a5299d9..acdf999a 100644 --- a/src/wix/WixToolset.Core/Bind/ResolveFieldsCommand.cs +++ b/src/wix/WixToolset.Core/Bind/ResolveFieldsCommand.cs | |||
@@ -86,6 +86,8 @@ namespace WixToolset.Core.Bind | |||
86 | } | 86 | } |
87 | } | 87 | } |
88 | 88 | ||
89 | var beforeErrorCount = this.Messaging.ErrorCount; | ||
90 | |||
89 | // Check to make sure we're in a scenario where we can handle variable resolution. | 91 | // Check to make sure we're in a scenario where we can handle variable resolution. |
90 | if (null != delayedFields) | 92 | if (null != delayedFields) |
91 | { | 93 | { |
@@ -110,7 +112,7 @@ namespace WixToolset.Core.Bind | |||
110 | } | 112 | } |
111 | 113 | ||
112 | // Move to next symbol if we've hit an error resolving variables. | 114 | // Move to next symbol if we've hit an error resolving variables. |
113 | if (this.Messaging.EncounteredError) // TODO: make this error handling more specific to just the failure to resolve variables in this field. | 115 | if (beforeErrorCount < this.Messaging.ErrorCount) |
114 | { | 116 | { |
115 | continue; | 117 | continue; |
116 | } | 118 | } |
diff --git a/src/wix/test/WixToolsetTest.CoreIntegration/MsiFixture.cs b/src/wix/test/WixToolsetTest.CoreIntegration/MsiFixture.cs index 18b19460..fe5f8e63 100644 --- a/src/wix/test/WixToolsetTest.CoreIntegration/MsiFixture.cs +++ b/src/wix/test/WixToolsetTest.CoreIntegration/MsiFixture.cs | |||
@@ -66,6 +66,7 @@ namespace WixToolsetTest.CoreIntegration | |||
66 | { | 66 | { |
67 | var baseFolder = fs.GetFolder(); | 67 | var baseFolder = fs.GetFolder(); |
68 | var intermediateFolder = Path.Combine(baseFolder, "obj"); | 68 | var intermediateFolder = Path.Combine(baseFolder, "obj"); |
69 | var binFolder = Path.Combine(baseFolder, "bin"); | ||
69 | 70 | ||
70 | var result = WixRunner.Execute(new[] | 71 | var result = WixRunner.Execute(new[] |
71 | { | 72 | { |
@@ -76,18 +77,24 @@ namespace WixToolsetTest.CoreIntegration | |||
76 | "-bindpath", Path.Combine(folder, "does-not-exist"), | 77 | "-bindpath", Path.Combine(folder, "does-not-exist"), |
77 | "-bindpath", Path.Combine(folder, "also-does-not-exist"), | 78 | "-bindpath", Path.Combine(folder, "also-does-not-exist"), |
78 | "-intermediateFolder", intermediateFolder, | 79 | "-intermediateFolder", intermediateFolder, |
79 | "-o", Path.Combine(baseFolder, @"bin\test.msi") | 80 | "-o", Path.Combine(binFolder, "test.msi") |
80 | }, out var messages); | 81 | }, out var messages); |
81 | Assert.Equal(103, result); | 82 | Assert.Equal(103, result); |
82 | 83 | ||
83 | var error = messages.Single(m => m.Level == MessageLevel.Error); | 84 | var errorMessages = messages.Select(m => m.ToString().Replace(folder, "<folder>")).ToArray(); |
84 | var errorMessage = error.ToString(); | 85 | WixAssert.CompareLineByLine(new[] |
86 | { | ||
87 | @"The system cannot find the file 'test.txt' with type 'File'. The following paths were checked: test.txt, <folder>\does-not-exist\test.txt, <folder>\also-does-not-exist\test.txt", | ||
88 | @"The system cannot find the file 'test.txt' with type 'File'. The following paths were checked: test.txt, <folder>\does-not-exist\test.txt, <folder>\also-does-not-exist\test.txt", | ||
89 | }, errorMessages); | ||
90 | |||
91 | var errorMessage = errorMessages.First(); | ||
85 | var checkedPaths = errorMessage.Substring(errorMessage.IndexOf(':') + 1).Split(new[] { ',' }).Select(s => s.Trim()).ToArray(); | 92 | var checkedPaths = errorMessage.Substring(errorMessage.IndexOf(':') + 1).Split(new[] { ',' }).Select(s => s.Trim()).ToArray(); |
86 | WixAssert.CompareLineByLine(new[] | 93 | WixAssert.CompareLineByLine(new[] |
87 | { | 94 | { |
88 | "test.txt", | 95 | "test.txt", |
89 | Path.Combine(folder, "does-not-exist", "test.txt"), | 96 | Path.Combine("<folder>", "does-not-exist", "test.txt"), |
90 | Path.Combine(folder, "also-does-not-exist", "test.txt"), | 97 | Path.Combine("<folder>", "also-does-not-exist", "test.txt"), |
91 | }, checkedPaths); | 98 | }, checkedPaths); |
92 | } | 99 | } |
93 | } | 100 | } |