diff options
Diffstat (limited to 'src')
5 files changed, 41 insertions, 15 deletions
diff --git a/src/api/wix/WixToolset.Extensibility/Services/IMessaging.cs b/src/api/wix/WixToolset.Extensibility/Services/IMessaging.cs index fe77f2a4..15e17e63 100644 --- a/src/api/wix/WixToolset.Extensibility/Services/IMessaging.cs +++ b/src/api/wix/WixToolset.Extensibility/Services/IMessaging.cs | |||
@@ -16,6 +16,12 @@ namespace WixToolset.Extensibility.Services | |||
16 | bool EncounteredError { get; } | 16 | bool EncounteredError { get; } |
17 | 17 | ||
18 | /// <summary> | 18 | /// <summary> |
19 | /// Gets the number of errors encountered thus far. | ||
20 | /// </summary> | ||
21 | /// <value>The number of errors encountered.</value> | ||
22 | int ErrorCount { get; } | ||
23 | |||
24 | /// <summary> | ||
19 | /// Gets the last error code encountered during messaging. | 25 | /// Gets the last error code encountered during messaging. |
20 | /// </summary> | 26 | /// </summary> |
21 | /// <value>The exit code for the process.</value> | 27 | /// <value>The exit code for the process.</value> |
diff --git a/src/wix/WixToolset.Core/CommandLine/BuildCommand.cs b/src/wix/WixToolset.Core/CommandLine/BuildCommand.cs index e63c727c..a00b4b12 100644 --- a/src/wix/WixToolset.Core/CommandLine/BuildCommand.cs +++ b/src/wix/WixToolset.Core/CommandLine/BuildCommand.cs | |||
@@ -157,7 +157,7 @@ namespace WixToolset.Core.CommandLine | |||
157 | { | 157 | { |
158 | var document = this.Preprocess(preprocessorVariables, sourceFile, includeSearchPaths, cancellationToken); | 158 | var document = this.Preprocess(preprocessorVariables, sourceFile, includeSearchPaths, cancellationToken); |
159 | 159 | ||
160 | if (this.Messaging.EncounteredError) | 160 | if (document == null) |
161 | { | 161 | { |
162 | continue; | 162 | continue; |
163 | } | 163 | } |
@@ -358,7 +358,7 @@ namespace WixToolset.Core.CommandLine | |||
358 | { | 358 | { |
359 | var document = this.Preprocess(preprocessorVariables, loc, includeSearchPaths, cancellationToken); | 359 | var document = this.Preprocess(preprocessorVariables, loc, includeSearchPaths, cancellationToken); |
360 | 360 | ||
361 | if (this.Messaging.EncounteredError) | 361 | if (document == null) |
362 | { | 362 | { |
363 | continue; | 363 | continue; |
364 | } | 364 | } |
diff --git a/src/wix/WixToolset.Core/ExtensibilityServices/Messaging.cs b/src/wix/WixToolset.Core/ExtensibilityServices/Messaging.cs index 280d845c..9a7413f4 100644 --- a/src/wix/WixToolset.Core/ExtensibilityServices/Messaging.cs +++ b/src/wix/WixToolset.Core/ExtensibilityServices/Messaging.cs | |||
@@ -13,7 +13,9 @@ namespace WixToolset.Core.ExtensibilityServices | |||
13 | private readonly HashSet<int> suppressedWarnings = new HashSet<int>(); | 13 | private readonly HashSet<int> suppressedWarnings = new HashSet<int>(); |
14 | private readonly HashSet<int> warningsAsErrors = new HashSet<int>(); | 14 | private readonly HashSet<int> warningsAsErrors = new HashSet<int>(); |
15 | 15 | ||
16 | public bool EncounteredError { get; private set; } | 16 | public bool EncounteredError => this.ErrorCount > 0; |
17 | |||
18 | public int ErrorCount { get; private set; } | ||
17 | 19 | ||
18 | public int LastErrorNumber { get; private set; } | 20 | public int LastErrorNumber { get; private set; } |
19 | 21 | ||
@@ -49,7 +51,7 @@ namespace WixToolset.Core.ExtensibilityServices | |||
49 | 51 | ||
50 | if (level == MessageLevel.Error) | 52 | if (level == MessageLevel.Error) |
51 | { | 53 | { |
52 | this.EncounteredError = true; | 54 | ++this.ErrorCount; |
53 | this.LastErrorNumber = message.Id; | 55 | this.LastErrorNumber = message.Id; |
54 | } | 56 | } |
55 | 57 | ||
diff --git a/src/wix/WixToolset.Core/Preprocessor.cs b/src/wix/WixToolset.Core/Preprocessor.cs index 084da8d0..a71e5bb7 100644 --- a/src/wix/WixToolset.Core/Preprocessor.cs +++ b/src/wix/WixToolset.Core/Preprocessor.cs | |||
@@ -141,6 +141,8 @@ namespace WixToolset.Core | |||
141 | { | 141 | { |
142 | state.CurrentFileStack.Push(state.Helper.GetVariableValue(state.Context, "sys", "SOURCEFILEDIR")); | 142 | state.CurrentFileStack.Push(state.Helper.GetVariableValue(state.Context, "sys", "SOURCEFILEDIR")); |
143 | 143 | ||
144 | var beforeErrorCount = this.Messaging.ErrorCount; | ||
145 | |||
144 | // Process the reader into the output. | 146 | // Process the reader into the output. |
145 | IPreprocessResult result = null; | 147 | IPreprocessResult result = null; |
146 | try | 148 | try |
@@ -150,7 +152,7 @@ namespace WixToolset.Core | |||
150 | // Fire event with post-processed document. | 152 | // Fire event with post-processed document. |
151 | this.ProcessedStream?.Invoke(this, new ProcessedStreamEventArgs(state.Context.SourcePath, state.Output)); | 153 | this.ProcessedStream?.Invoke(this, new ProcessedStreamEventArgs(state.Context.SourcePath, state.Output)); |
152 | 154 | ||
153 | if (!this.Messaging.EncounteredError) | 155 | if (beforeErrorCount == this.Messaging.ErrorCount) |
154 | { | 156 | { |
155 | result = this.ServiceProvider.GetService<IPreprocessResult>(); | 157 | result = this.ServiceProvider.GetService<IPreprocessResult>(); |
156 | result.Document = state.Output; | 158 | result.Document = state.Output; |
@@ -292,7 +294,7 @@ namespace WixToolset.Core | |||
292 | if (XmlNodeType.ProcessingInstruction == reader.NodeType) | 294 | if (XmlNodeType.ProcessingInstruction == reader.NodeType) |
293 | { | 295 | { |
294 | var ignore = false; | 296 | var ignore = false; |
295 | string name = null; | 297 | string name; |
296 | 298 | ||
297 | switch (reader.LocalName) | 299 | switch (reader.LocalName) |
298 | { | 300 | { |
@@ -423,7 +425,6 @@ namespace WixToolset.Core | |||
423 | break; | 425 | break; |
424 | } | 426 | } |
425 | } | 427 | } |
426 | |||
427 | } | 428 | } |
428 | //else | 429 | //else |
429 | //{ | 430 | //{ |
@@ -826,7 +827,7 @@ namespace WixToolset.Core | |||
826 | private string GetNextToken(ProcessingState state, string originalExpression, ref string expression, out bool stringLiteral) | 827 | private string GetNextToken(ProcessingState state, string originalExpression, ref string expression, out bool stringLiteral) |
827 | { | 828 | { |
828 | stringLiteral = false; | 829 | stringLiteral = false; |
829 | var token = String.Empty; | 830 | string token; |
830 | expression = expression.Trim(); | 831 | expression = expression.Trim(); |
831 | if (0 == expression.Length) | 832 | if (0 == expression.Length) |
832 | { | 833 | { |
@@ -1280,7 +1281,7 @@ namespace WixToolset.Core | |||
1280 | /// <returns>Boolean to indicate if the expression is true or false</returns> | 1281 | /// <returns>Boolean to indicate if the expression is true or false</returns> |
1281 | private bool EvaluateExpressionRecurse(ProcessingState state, string originalExpression, ref string expression, PreprocessorOperation prevResultOperation, bool prevResult) | 1282 | private bool EvaluateExpressionRecurse(ProcessingState state, string originalExpression, ref string expression, PreprocessorOperation prevResultOperation, bool prevResult) |
1282 | { | 1283 | { |
1283 | var expressionValue = false; | 1284 | bool expressionValue; |
1284 | expression = expression.Trim(); | 1285 | expression = expression.Trim(); |
1285 | if (expression.Length == 0) | 1286 | if (expression.Length == 0) |
1286 | { | 1287 | { |
diff --git a/src/wix/test/WixToolsetTest.Converters/Mocks/MockMessaging.cs b/src/wix/test/WixToolsetTest.Converters/Mocks/MockMessaging.cs index 77821a1c..2bc10772 100644 --- a/src/wix/test/WixToolsetTest.Converters/Mocks/MockMessaging.cs +++ b/src/wix/test/WixToolsetTest.Converters/Mocks/MockMessaging.cs | |||
@@ -12,7 +12,9 @@ namespace WixToolsetTest.Converters.Mocks | |||
12 | { | 12 | { |
13 | public List<Message> Messages { get; } = new List<Message>(); | 13 | public List<Message> Messages { get; } = new List<Message>(); |
14 | 14 | ||
15 | public bool EncounteredError { get; private set; } | 15 | public bool EncounteredError => this.ErrorCount > 0; |
16 | |||
17 | public int ErrorCount { get; private set; } | ||
16 | 18 | ||
17 | public int LastErrorNumber { get; } | 19 | public int LastErrorNumber { get; } |
18 | 20 | ||
@@ -22,18 +24,33 @@ namespace WixToolsetTest.Converters.Mocks | |||
22 | 24 | ||
23 | public bool WarningsAsError { get; set; } | 25 | public bool WarningsAsError { get; set; } |
24 | 26 | ||
25 | public void ElevateWarningMessage(int warningNumber) => throw new NotImplementedException(); | 27 | public void ElevateWarningMessage(int warningNumber) |
28 | { | ||
29 | throw new NotImplementedException(); | ||
30 | } | ||
26 | 31 | ||
27 | public void SetListener(IMessageListener listener) => throw new NotImplementedException(); | 32 | public void SetListener(IMessageListener listener) |
33 | { | ||
34 | throw new NotImplementedException(); | ||
35 | } | ||
28 | 36 | ||
29 | public void SuppressWarningMessage(int warningNumber) => throw new NotImplementedException(); | 37 | public void SuppressWarningMessage(int warningNumber) |
38 | { | ||
39 | throw new NotImplementedException(); | ||
40 | } | ||
30 | 41 | ||
31 | public void Write(Message message) | 42 | public void Write(Message message) |
32 | { | 43 | { |
33 | this.Messages.Add(message); | 44 | this.Messages.Add(message); |
34 | this.EncounteredError |= message.Level == MessageLevel.Error; | 45 | if (message.Level == MessageLevel.Error) |
46 | { | ||
47 | ++this.ErrorCount; | ||
48 | } | ||
35 | } | 49 | } |
36 | 50 | ||
37 | public void Write(string message, bool verbose = false) => throw new NotImplementedException(); | 51 | public void Write(string message, bool verbose = false) |
52 | { | ||
53 | throw new NotImplementedException(); | ||
54 | } | ||
38 | } | 55 | } |
39 | } | 56 | } |