Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1105)

Side by Side Diff: pkg/analyzer/test/source/error_processor_test.dart

Issue 2863013002: Fix an issue with configuring the severity of lints. (Closed)
Patch Set: update dartdoc Created 3 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « pkg/analyzer/lib/source/error_processor.dart ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 library analyzer.test.source.error_processor; 5 library analyzer.test.source.error_processor;
6 6
7 import 'package:analyzer/error/error.dart'; 7 import 'package:analyzer/error/error.dart';
8 import 'package:analyzer/source/analysis_options_provider.dart'; 8 import 'package:analyzer/source/analysis_options_provider.dart';
9 import 'package:analyzer/source/error_processor.dart'; 9 import 'package:analyzer/source/error_processor.dart';
10 import 'package:analyzer/src/context/context.dart'; 10 import 'package:analyzer/src/context/context.dart';
(...skipping 27 matching lines...) Expand all
38 AnalysisError use_of_void_result = 38 AnalysisError use_of_void_result =
39 new AnalysisError(new TestSource(), 0, 1, HintCode.USE_OF_VOID_RESULT, [ 39 new AnalysisError(new TestSource(), 0, 1, HintCode.USE_OF_VOID_RESULT, [
40 ['x'] 40 ['x']
41 ]); 41 ]);
42 42
43 AnalysisError non_bool_operand = new AnalysisError( 43 AnalysisError non_bool_operand = new AnalysisError(
44 new TestSource(), 0, 1, StaticTypeWarningCode.NON_BOOL_OPERAND, [ 44 new TestSource(), 0, 1, StaticTypeWarningCode.NON_BOOL_OPERAND, [
45 ['x'] 45 ['x']
46 ]); 46 ]);
47 47
48 // We in-line a lint code here in order to avoid adding a dependency on the
49 // linter package.
50 AnalysisError annotate_overrides = new AnalysisError(
51 new TestSource(), 0, 1, new LintCode('annotate_overrides', ''));
52
48 oneTimeSetup(); 53 oneTimeSetup();
49 54
50 setUp(() { 55 setUp(() {
51 context = new TestContext(); 56 context = new TestContext();
52 }); 57 });
53 58
54 group('ErrorProcessor', () { 59 group('ErrorProcessor', () {
55 test('configureOptions', () { 60 test('configureOptions', () {
56 configureOptions(''' 61 configureOptions('''
57 analyzer: 62 analyzer:
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
109 var unusedLocalProcessor = errorConfig.processors 114 var unusedLocalProcessor = errorConfig.processors
110 .firstWhere((p) => p.appliesTo(unused_local_variable)); 115 .firstWhere((p) => p.appliesTo(unused_local_variable));
111 expect(unusedLocalProcessor.severity, ErrorSeverity.ERROR); 116 expect(unusedLocalProcessor.severity, ErrorSeverity.ERROR);
112 117
113 // skip 118 // skip
114 var invalidAssignmentProcessor = errorConfig.processors.firstWhere( 119 var invalidAssignmentProcessor = errorConfig.processors.firstWhere(
115 (p) => p.appliesTo(invalid_assignment), 120 (p) => p.appliesTo(invalid_assignment),
116 orElse: () => null); 121 orElse: () => null);
117 expect(invalidAssignmentProcessor, isNull); 122 expect(invalidAssignmentProcessor, isNull);
118 }); 123 });
124
119 test('string map', () { 125 test('string map', () {
120 var options = { 126 var options = {
121 'invalid_assignment': 'unsupported_action', // should be skipped 127 'invalid_assignment': 'unsupported_action', // should be skipped
122 'missing_return': 'false', 128 'missing_return': 'false',
123 'unused_local_variable': 'error' 129 'unused_local_variable': 'error'
124 }; 130 };
125 var errorConfig = new ErrorConfig(options); 131 var errorConfig = new ErrorConfig(options);
126 expect(errorConfig.processors, hasLength(2)); 132 expect(errorConfig.processors, hasLength(2));
127 133
128 // ignore 134 // ignore
129 var missingReturnProcessor = errorConfig.processors 135 var missingReturnProcessor = errorConfig.processors
130 .firstWhere((p) => p.appliesTo(missing_return)); 136 .firstWhere((p) => p.appliesTo(missing_return));
131 expect(missingReturnProcessor.severity, isNull); 137 expect(missingReturnProcessor.severity, isNull);
132 138
133 // error 139 // error
134 var unusedLocalProcessor = errorConfig.processors 140 var unusedLocalProcessor = errorConfig.processors
135 .firstWhere((p) => p.appliesTo(unused_local_variable)); 141 .firstWhere((p) => p.appliesTo(unused_local_variable));
136 expect(unusedLocalProcessor.severity, ErrorSeverity.ERROR); 142 expect(unusedLocalProcessor.severity, ErrorSeverity.ERROR);
137 143
138 // skip 144 // skip
139 var invalidAssignmentProcessor = errorConfig.processors.firstWhere( 145 var invalidAssignmentProcessor = errorConfig.processors.firstWhere(
140 (p) => p.appliesTo(invalid_assignment), 146 (p) => p.appliesTo(invalid_assignment),
141 orElse: () => null); 147 orElse: () => null);
142 expect(invalidAssignmentProcessor, isNull); 148 expect(invalidAssignmentProcessor, isNull);
143 }); 149 });
144 }); 150 });
151
152 test('configure lints', () {
153 var options = optionsProvider.getOptionsFromString(
154 'analyzer:\n errors:\n annotate_overrides: warning\n');
155 var errorConfig =
156 new ErrorConfig((options['analyzer'] as YamlMap)['errors']);
157 expect(errorConfig.processors, hasLength(1));
158
159 ErrorProcessor processor = errorConfig.processors.first;
160 expect(processor.appliesTo(annotate_overrides), true);
161 expect(processor.severity, ErrorSeverity.WARNING);
162 });
145 }); 163 });
146 } 164 }
147 165
148 TestContext context; 166 TestContext context;
149 167
150 AnalysisOptionsProvider optionsProvider = new AnalysisOptionsProvider(); 168 AnalysisOptionsProvider optionsProvider = new AnalysisOptionsProvider();
151 ErrorProcessor processor; 169 ErrorProcessor processor;
152 170
153 void configureOptions(String options) { 171 void configureOptions(String options) {
154 Map<String, YamlNode> optionMap = 172 Map<String, YamlNode> optionMap =
155 optionsProvider.getOptionsFromString(options); 173 optionsProvider.getOptionsFromString(options);
156 applyToAnalysisOptions(context.analysisOptions, optionMap); 174 applyToAnalysisOptions(context.analysisOptions, optionMap);
157 } 175 }
158 176
159 ErrorProcessor getProcessor(AnalysisError error) => 177 ErrorProcessor getProcessor(AnalysisError error) =>
160 ErrorProcessor.getProcessor(context.analysisOptions, error); 178 ErrorProcessor.getProcessor(context.analysisOptions, error);
161 179
162 void oneTimeSetup() { 180 void oneTimeSetup() {
163 List<Plugin> plugins = <Plugin>[]; 181 List<Plugin> plugins = <Plugin>[];
164 plugins.addAll(AnalysisEngine.instance.requiredPlugins); 182 plugins.addAll(AnalysisEngine.instance.requiredPlugins);
165 ExtensionManager manager = new ExtensionManager(); 183 ExtensionManager manager = new ExtensionManager();
166 manager.processPlugins(plugins); 184 manager.processPlugins(plugins);
167 } 185 }
168 186
169 class TestContext extends AnalysisContextImpl {} 187 class TestContext extends AnalysisContextImpl {}
OLDNEW
« no previous file with comments | « pkg/analyzer/lib/source/error_processor.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698