AO. More changes to AnalysisOptionsParserTest. PS1: Renames around valid / invalid. PS3: More renames. PS5: Remove duplicates from test_codeStyle_ PS7: Remove duplicates from test_analyzer_cannotIgnore_ and test_plugins_ PS9: Remove noisy 'valid' word from names. PS11: Renames for a few 'supported' names. PS13: Remove duplicate test_analyzer_optionalChecks_chromeOsManifestChecks and test_analyzer_optionalChecks_propagateLinterExceptions. PS15: Renames for test_analyzer_plugins_ PS17: Renames for test_analyzer_errors_ PS19: Remove duplicate test_analyzer_optionalChecks_propagateLinterExceptions_mapKey, test_include_recursive_self_direct PS21: Renames for test_linter_rules_ PS23: sort Bug: https://github.com/dart-lang/sdk/issues/63580 Change-Id: I22be975eca2231c74c56550450c93663162dd358 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/517521 Reviewed-by: Paul Berry <paulberry@google.com> Commit-Queue: Konstantin Shcheglov <scheglov@google.com>
diff --git a/pkg/analyzer/test/src/analysis_options/analysis_options_parser_test.dart b/pkg/analyzer/test/src/analysis_options/analysis_options_parser_test.dart index aea5d72..92a82d8 100644 --- a/pkg/analyzer/test/src/analysis_options/analysis_options_parser_test.dart +++ b/pkg/analyzer/test/src/analysis_options/analysis_options_parser_test.dart
@@ -60,20 +60,18 @@ super.setUp(); } - test_analyzer_cannotIgnore_invalid_badValue() { + test_analyzer_cannotIgnore_errorSeverity() { var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' analyzer: cannot-ignore: - - not_an_error_code -// ^^^^^^^^^^^^^^^^^ -// [diag.unrecognizedErrorCode] 'not_an_error_code' isn't a recognized diagnostic code. + - error '''); - assertAnalysisOptionsText(analysisOptions, r''' -AnalysisOptionsImpl - unignorableDiagnosticCodeNames - not_an_error_code -'''); + // Keep this as a broad probe: `error` should include all diagnostics with + // error severity, not just a single named code. + var unignorableCodeNames = analysisOptions.unignorableDiagnosticCodeNames; + expect(unignorableCodeNames, contains('invalid_annotation')); + expect(unignorableCodeNames.length, greaterThan(500)); } test_analyzer_cannotIgnore_invalid_notList() { @@ -90,6 +88,22 @@ '''); } + test_analyzer_cannotIgnore_invalid_unrecognizedCode() { + var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' +analyzer: + cannot-ignore: + - not_an_error_code +// ^^^^^^^^^^^^^^^^^ +// [diag.unrecognizedErrorCode] 'not_an_error_code' isn't a recognized diagnostic code. +'''); + + assertAnalysisOptionsText(analysisOptions, r''' +AnalysisOptionsImpl + unignorableDiagnosticCodeNames + not_an_error_code +'''); + } + test_analyzer_cannotIgnore_invalid_valueNotString() { var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' analyzer: @@ -104,47 +118,22 @@ '''); } - test_analyzer_cannotIgnore_severity() { + test_analyzer_cannotIgnore_lintRule() { + registerLintRule(TestRule()); var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' analyzer: cannot-ignore: - - error + - fantastic_test_rule '''); - var unignorableCodeNames = analysisOptions.unignorableDiagnosticCodeNames; - expect(unignorableCodeNames, contains('invalid_annotation')); - expect(unignorableCodeNames.length, greaterThan(500)); - } - - test_analyzer_cannotIgnore_severity_withProcessor() { - var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' -analyzer: - errors: - unused_import: error - cannot-ignore: - - error + assertAnalysisOptionsText(analysisOptions, r''' +AnalysisOptionsImpl + unignorableDiagnosticCodeNames + fantastic_test_rule '''); - - var unignorableCodeNames = analysisOptions.unignorableDiagnosticCodeNames; - expect(unignorableCodeNames, contains('unused_import')); } - test_analyzer_cannotIgnore_severity_withProcessor_oldSeverity() { - var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' -analyzer: - errors: - unused_import: error - cannot-ignore: - - warning -'''); - - // Since `unused_import` has been reclassified as an error, - // `cannot-ignore: - warning` should not apply to it. - var unignorableCodeNames = analysisOptions.unignorableDiagnosticCodeNames; - expect(unignorableCodeNames, isNot(contains('unused_import'))); - } - - test_analyzer_cannotIgnore_valid() { + test_analyzer_cannotIgnore_multipleCodes() { var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' analyzer: cannot-ignore: @@ -160,7 +149,35 @@ '''); } - test_analyzer_cannotIgnore_valid_code() { + test_analyzer_cannotIgnore_severity_errorIncludesReclassifiedDiagnostic() { + var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' +analyzer: + errors: + unused_import: error + cannot-ignore: + - error +'''); + + var unignorableCodeNames = analysisOptions.unignorableDiagnosticCodeNames; + expect(unignorableCodeNames, contains('unused_import')); + } + + test_analyzer_cannotIgnore_severity_warningExcludesReclassifiedDiagnostic() { + var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' +analyzer: + errors: + unused_import: error + cannot-ignore: + - warning +'''); + + // Since `unused_import` has been reclassified as an error, + // `cannot-ignore: - warning` should not apply to it. + var unignorableCodeNames = analysisOptions.unignorableDiagnosticCodeNames; + expect(unignorableCodeNames, isNot(contains('unused_import'))); + } + + test_analyzer_cannotIgnore_singleCode() { var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' analyzer: cannot-ignore: @@ -174,35 +191,6 @@ '''); } - test_analyzer_cannotIgnore_valid_lintRule() { - registerLintRule(TestRule()); - var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' -analyzer: - cannot-ignore: - - fantastic_test_rule -'''); - - assertAnalysisOptionsText(analysisOptions, r''' -AnalysisOptionsImpl - unignorableDiagnosticCodeNames - fantastic_test_rule -'''); - } - - test_analyzer_cannotIgnore_valid_severity() { - var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' -analyzer: - cannot-ignore: - - error -'''); - - // Keep this as a broad probe: `error` should include all diagnostics with - // error severity, not just a single named code. - var unignorableCodeNames = analysisOptions.unignorableDiagnosticCodeNames; - expect(unignorableCodeNames, contains('invalid_annotation')); - expect(unignorableCodeNames.length, greaterThan(500)); - } - test_analyzer_empty() { registerLintRule(TestRule()); var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' @@ -306,7 +294,7 @@ '''); } - test_analyzer_enableExperiment_valid() { + test_analyzer_enableExperiment_knownExperiment() { var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' analyzer: enable-experiment: @@ -322,26 +310,51 @@ '''); } - test_analyzer_errors_cannotBeIgnoredByUniqueName() { + test_analyzer_errors_errorSeverityAppliesToWarningDiagnostic() { var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' analyzer: errors: - return_type_invalid_for_catch_error: ignore -// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ -// [diag.unrecognizedErrorCode] 'return_type_invalid_for_catch_error' isn't a recognized diagnostic code. + unused_local_variable: error '''); assertAnalysisOptionsText(analysisOptions, r''' AnalysisOptionsImpl errorProcessors - return_type_invalid_for_catch_error: ignore + unused_local_variable: error '''); var warning = Diagnostic.tmp( source: FileSource(newFile('/test.dart', '')), offset: 0, length: 1, - diagnosticCode: diag.returnTypeInvalidForCatchError, + diagnosticCode: diag.unusedLocalVariable, + arguments: [ + ['x'], + ], + ); + + var processor = analysisOptions.errorProcessors.single; + expect(processor.appliesTo(warning), isTrue); + } + + test_analyzer_errors_ignoreSeverityAppliesToErrorDiagnostic() { + var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' +analyzer: + errors: + invalid_assignment: ignore +'''); + + assertAnalysisOptionsText(analysisOptions, r''' +AnalysisOptionsImpl + errorProcessors + invalid_assignment: ignore +'''); + + var error = Diagnostic.tmp( + source: FileSource(newFile('/test.dart', '')), + offset: 0, + length: 1, + diagnosticCode: diag.invalidAssignment, arguments: [ ['x'], ['y'], @@ -349,85 +362,7 @@ ); var processor = analysisOptions.errorProcessors.single; - expect(processor.appliesTo(warning), isFalse); - } - - test_analyzer_errors_code_supported() { - var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' -analyzer: - errors: - unused_local_variable: ignore - invalid_assignment: warning - assignment_of_do_not_store: error - dead_code: info -'''); - - assertAnalysisOptionsText(analysisOptions, r''' -AnalysisOptionsImpl - errorProcessors - unused_local_variable: ignore - invalid_assignment: warning - assignment_of_do_not_store: error - dead_code: info -'''); - } - - test_analyzer_errors_code_supported_invalidValue() { - var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' -analyzer: - errors: - unused_local_variable: ftw -// ^^^ -// [diag.unsupportedOptionWithLegalValues] The option 'ftw' isn't supported by 'errors'. -'''); - - assertAnalysisOptionsText(analysisOptions, r''' -AnalysisOptionsImpl -'''); - } - - test_analyzer_errors_code_supported_nullValue() { - var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' -analyzer: - errors: - unused_local_variable: null -// ^^^^ -// [diag.unsupportedOptionWithLegalValues] The option 'null' isn't supported by 'errors'. -'''); - - assertAnalysisOptionsText(analysisOptions, r''' -AnalysisOptionsImpl -'''); - } - - test_analyzer_errors_code_unsupported() { - var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' -analyzer: - errors: - not_supported: ignore -// ^^^^^^^^^^^^^ -// [diag.unrecognizedErrorCode] 'not_supported' isn't a recognized diagnostic code. -'''); - - assertAnalysisOptionsText(analysisOptions, r''' -AnalysisOptionsImpl - errorProcessors - not_supported: ignore -'''); - } - - test_analyzer_errors_code_unsupported_null() { - var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' -analyzer: - errors: - null: ignore -// ^^^^ -// [diag.unrecognizedErrorCode] 'null' isn't a recognized diagnostic code. -'''); - - assertAnalysisOptionsText(analysisOptions, r''' -AnalysisOptionsImpl -'''); + expect(processor.appliesTo(error), isTrue); } test_analyzer_errors_include_merged() { @@ -629,7 +564,35 @@ '''); } - test_analyzer_errors_lintCode_recognized() { + test_analyzer_errors_invalidNullSeverity() { + var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' +analyzer: + errors: + unused_local_variable: null +// ^^^^ +// [diag.unsupportedOptionWithLegalValues] The option 'null' isn't supported by 'errors'. +'''); + + assertAnalysisOptionsText(analysisOptions, r''' +AnalysisOptionsImpl +'''); + } + + test_analyzer_errors_invalidSeverity() { + var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' +analyzer: + errors: + unused_local_variable: ftw +// ^^^ +// [diag.unsupportedOptionWithLegalValues] The option 'ftw' isn't supported by 'errors'. +'''); + + assertAnalysisOptionsText(analysisOptions, r''' +AnalysisOptionsImpl +'''); + } + + test_analyzer_errors_registeredLintCode() { registerLintRule(TestRule()); var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' analyzer: @@ -644,62 +607,27 @@ '''); } - test_analyzer_errors_severityIsError() { + test_analyzer_errors_severityValues() { var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' analyzer: errors: - unused_local_variable: error + unused_local_variable: ignore + invalid_assignment: warning + assignment_of_do_not_store: error + dead_code: info '''); assertAnalysisOptionsText(analysisOptions, r''' AnalysisOptionsImpl errorProcessors - unused_local_variable: error + unused_local_variable: ignore + invalid_assignment: warning + assignment_of_do_not_store: error + dead_code: info '''); - - var warning = Diagnostic.tmp( - source: FileSource(newFile('/test.dart', '')), - offset: 0, - length: 1, - diagnosticCode: diag.unusedLocalVariable, - arguments: [ - ['x'], - ], - ); - - var processor = analysisOptions.errorProcessors.single; - expect(processor.appliesTo(warning), isTrue); } - test_analyzer_errors_severityIsIgnore() { - var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' -analyzer: - errors: - invalid_assignment: ignore -'''); - - assertAnalysisOptionsText(analysisOptions, r''' -AnalysisOptionsImpl - errorProcessors - invalid_assignment: ignore -'''); - - var error = Diagnostic.tmp( - source: FileSource(newFile('/test.dart', '')), - offset: 0, - length: 1, - diagnosticCode: diag.invalidAssignment, - arguments: [ - ['x'], - ['y'], - ], - ); - - var processor = analysisOptions.errorProcessors.single; - expect(processor.appliesTo(error), isTrue); - } - - test_analyzer_errors_sharedNameAppliesToAllSharedCodes() { + test_analyzer_errors_sharedNameMatchesSharedDiagnosticCode() { var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' analyzer: errors: @@ -727,6 +655,66 @@ expect(processor.appliesTo(warning), isTrue); } + test_analyzer_errors_uniqueNameDoesNotMatchSharedDiagnosticCode() { + var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' +analyzer: + errors: + return_type_invalid_for_catch_error: ignore +// ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +// [diag.unrecognizedErrorCode] 'return_type_invalid_for_catch_error' isn't a recognized diagnostic code. +'''); + + assertAnalysisOptionsText(analysisOptions, r''' +AnalysisOptionsImpl + errorProcessors + return_type_invalid_for_catch_error: ignore +'''); + + var warning = Diagnostic.tmp( + source: FileSource(newFile('/test.dart', '')), + offset: 0, + length: 1, + diagnosticCode: diag.returnTypeInvalidForCatchError, + arguments: [ + ['x'], + ['y'], + ], + ); + + var processor = analysisOptions.errorProcessors.single; + expect(processor.appliesTo(warning), isFalse); + } + + test_analyzer_errors_unrecognizedCode() { + var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' +analyzer: + errors: + not_supported: ignore +// ^^^^^^^^^^^^^ +// [diag.unrecognizedErrorCode] 'not_supported' isn't a recognized diagnostic code. +'''); + + assertAnalysisOptionsText(analysisOptions, r''' +AnalysisOptionsImpl + errorProcessors + not_supported: ignore +'''); + } + + test_analyzer_errors_unrecognizedNullCode() { + var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' +analyzer: + errors: + null: ignore +// ^^^^ +// [diag.unrecognizedErrorCode] 'null' isn't a recognized diagnostic code. +'''); + + assertAnalysisOptionsText(analysisOptions, r''' +AnalysisOptionsImpl +'''); + } + test_analyzer_exclude_include_merged() { var options = parseAnalysisOptionsFilesWithDiagnostics({ analysisOptionsFile: r''' @@ -803,7 +791,7 @@ '''); } - test_analyzer_exclude_valid_patterns() { + test_analyzer_exclude_patterns() { var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' analyzer: exclude: @@ -819,7 +807,7 @@ '''); } - test_analyzer_exclude_valid_singlePattern() { + test_analyzer_exclude_singlePattern() { var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' analyzer: exclude: @@ -1095,20 +1083,7 @@ '''); } - test_analyzer_optionalChecks_chromeOsManifestChecks_supported() { - var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' -analyzer: - optional-checks: - chrome-os-manifest-checks -'''); - - assertAnalysisOptionsText(analysisOptions, r''' -AnalysisOptionsImpl - chromeOsManifestChecks: true -'''); - } - - test_analyzer_optionalChecks_chromeOsManifestChecks_valid_map() { + test_analyzer_optionalChecks_chromeOsManifestChecks_map() { var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' analyzer: optional-checks: @@ -1120,7 +1095,7 @@ '''); } - test_analyzer_optionalChecks_chromeOsManifestChecks_valid_scalar() { + test_analyzer_optionalChecks_chromeOsManifestChecks_scalar() { var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' analyzer: optional-checks: @@ -1171,6 +1146,17 @@ '''); } + test_analyzer_optionalChecks_propagateLinterExceptions_false() { + var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' +analyzer: + optional-checks: + propagate-linter-exceptions: false +'''); + assertAnalysisOptionsText(analysisOptions, r''' +AnalysisOptionsImpl +'''); + } + test_analyzer_optionalChecks_propagateLinterExceptions_invalid_notScalar() { var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' analyzer: @@ -1186,44 +1172,7 @@ '''); } - test_analyzer_optionalChecks_propagateLinterExceptions_supported() { - var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' -analyzer: - optional-checks: - propagate-linter-exceptions -'''); - - assertAnalysisOptionsText(analysisOptions, r''' -AnalysisOptionsImpl - propagateLinterExceptions: true -'''); - } - - test_analyzer_optionalChecks_propagateLinterExceptions_valid_false() { - var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' -analyzer: - optional-checks: - propagate-linter-exceptions: false -'''); - assertAnalysisOptionsText(analysisOptions, r''' -AnalysisOptionsImpl -'''); - } - - test_analyzer_optionalChecks_propagateLinterExceptions_valid_mapKey() { - var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' -analyzer: - optional-checks: - propagate-linter-exceptions: true -'''); - - assertAnalysisOptionsText(analysisOptions, r''' -AnalysisOptionsImpl - propagateLinterExceptions: true -'''); - } - - test_analyzer_optionalChecks_propagateLinterExceptions_valid_scalar() { + test_analyzer_optionalChecks_propagateLinterExceptions_scalar() { var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' analyzer: optional-checks: @@ -1235,7 +1184,7 @@ '''); } - test_analyzer_optionalChecks_propagateLinterExceptions_valid_true() { + test_analyzer_optionalChecks_propagateLinterExceptions_true() { var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' analyzer: optional-checks: @@ -1247,7 +1196,143 @@ '''); } - test_analyzer_plugins_legacy_chooseFirst() { + test_analyzer_plugins_include_includedListThenDirectList() { + newFile('$testPackageRootPath/other_options.yaml', ''' +analyzer: + plugins: + - plugin_one +'''); + var analysisOptions = parseAnalysisOptionsWithDiagnostics(r''' +include: other_options.yaml +analyzer: + plugins: + - plugin_two +// ^^^^^^^^^^ +// [diag.multiplePlugins] Multiple plugins can't be enabled. +'''); + + assertAnalysisOptionsText(analysisOptions, r''' +AnalysisOptionsImpl + enabledLegacyPluginNames + plugin_one +'''); + } + + test_analyzer_plugins_include_includedListThenDirectMap() { + newFile('$testPackageRootPath/other_options.yaml', ''' +analyzer: + plugins: + - plugin_one +'''); + var analysisOptions = parseAnalysisOptionsWithDiagnostics(r''' +include: other_options.yaml +analyzer: + plugins: + plugin_two: +// ^^^^^^^^^^ +// [diag.multiplePlugins] Multiple plugins can't be enabled. + foo: bar +'''); + + assertAnalysisOptionsText(analysisOptions, r''' +AnalysisOptionsImpl + enabledLegacyPluginNames + plugin_two +'''); + } + + test_analyzer_plugins_include_includedListThenDirectScalar() { + newFile('$testPackageRootPath/other_options.yaml', ''' +analyzer: + plugins: + - plugin_one +'''); + var analysisOptions = parseAnalysisOptionsWithDiagnostics(r''' +include: other_options.yaml +analyzer: + plugins: plugin_two +// ^^^^^^^^^^ +// [diag.multiplePlugins] Multiple plugins can't be enabled. +'''); + + assertAnalysisOptionsText(analysisOptions, r''' +AnalysisOptionsImpl + enabledLegacyPluginNames + plugin_two +'''); + } + + test_analyzer_plugins_include_indirectIncludedListThenDirectList() { + newFile('$testPackageRootPath/more_options.yaml', ''' +analyzer: + plugins: + - plugin_one +'''); + newFile('$testPackageRootPath/other_options.yaml', ''' +include: more_options.yaml +'''); + var analysisOptions = parseAnalysisOptionsWithDiagnostics(r''' +include: other_options.yaml +analyzer: + plugins: + - plugin_two +// ^^^^^^^^^^ +// [diag.multiplePlugins] Multiple plugins can't be enabled. +'''); + + assertAnalysisOptionsText(analysisOptions, r''' +AnalysisOptionsImpl + enabledLegacyPluginNames + plugin_one +'''); + } + + test_analyzer_plugins_include_indirectIncludedListThenIncludedList() { + newFile('$testPackageRootPath/more_options.yaml', ''' +analyzer: + plugins: + - plugin_one +'''); + newFile('$testPackageRootPath/other_options.yaml', ''' +include: more_options.yaml +analyzer: + plugins: + - plugin_two +'''); + var analysisOptions = parseAnalysisOptionsWithDiagnostics(r''' +include: other_options.yaml +// ^^^^^^^^^^^^^^^^^^ +// [diag.includedFileWarning] Warning in the included options file /home/test/other_options.yaml(54..63): Multiple plugins can't be enabled. +'''); + + assertAnalysisOptionsText(analysisOptions, r''' +AnalysisOptionsImpl + enabledLegacyPluginNames + plugin_one +'''); + } + + test_analyzer_plugins_include_map() { + var options = parseAnalysisOptionsFilesWithDiagnostics({ + analysisOptionsFile: r''' +include: other_options.yaml +''', + getFile('$testPackageRootPath/other_options.yaml'): ''' +analyzer: + plugins: + toplevelplugin: + enabled: true +''', + }); + + assertAnalysisOptionsText(options, r''' +AnalysisOptionsImpl + enabledLegacyPluginNames + toplevelplugin +'''); + } + + test_analyzer_plugins_include_nestedMultiple_chooseFirst() { var options = parseAnalysisOptionsFilesWithDiagnostics({ analysisOptionsFile: r''' include: other_options.yaml @@ -1293,27 +1378,7 @@ '''); } - test_analyzer_plugins_legacy_include() { - var options = parseAnalysisOptionsFilesWithDiagnostics({ - analysisOptionsFile: r''' -include: other_options.yaml -''', - getFile('$testPackageRootPath/other_options.yaml'): ''' -analyzer: - plugins: - toplevelplugin: - enabled: true -''', - }); - - assertAnalysisOptionsText(options, r''' -AnalysisOptionsImpl - enabledLegacyPluginNames - toplevelplugin -'''); - } - - test_analyzer_plugins_legacy_list() { + test_analyzer_plugins_list() { // TODO(srawlins): Test legacy plugins as a list of non-scalar values // (`- angular2: yes`). var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' @@ -1332,38 +1397,22 @@ '''); } - test_analyzer_plugins_legacy_map() { - // TODO(srawlins): Test legacy plugins as a map of scalar values - // (`angular2: yes`). - var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' + test_analyzer_plugins_list_duplicateName() { + var analysisOptions = parseAnalysisOptionsWithDiagnostics(r''' analyzer: plugins: - angular2: - enabled: true + - plugin_one + - plugin_one '''); assertAnalysisOptionsText(analysisOptions, r''' AnalysisOptionsImpl enabledLegacyPluginNames - angular2 + plugin_one '''); } - test_analyzer_plugins_legacy_string() { - var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' -analyzer: - plugins: - angular2 -'''); - - assertAnalysisOptionsText(analysisOptions, r''' -AnalysisOptionsImpl - enabledLegacyPluginNames - angular2 -'''); - } - - test_analyzer_plugins_multiple_directList() { + test_analyzer_plugins_list_multiple() { var analysisOptions = parseAnalysisOptionsWithDiagnostics(r''' analyzer: plugins: @@ -1383,22 +1432,7 @@ '''); } - test_analyzer_plugins_multiple_directList_nonString() { - var analysisOptions = parseAnalysisOptionsWithDiagnostics(r''' -analyzer: - plugins: - - 7 - - plugin_one -'''); - - assertAnalysisOptionsText(analysisOptions, r''' -AnalysisOptionsImpl - enabledLegacyPluginNames - plugin_one -'''); - } - - test_analyzer_plugins_multiple_directList_nonString_afterString() { + test_analyzer_plugins_list_nonStringAfterString() { var analysisOptions = parseAnalysisOptionsWithDiagnostics(r''' analyzer: plugins: @@ -1413,11 +1447,11 @@ '''); } - test_analyzer_plugins_multiple_directList_sameName() { + test_analyzer_plugins_list_nonStringBeforeString() { var analysisOptions = parseAnalysisOptionsWithDiagnostics(r''' analyzer: plugins: - - plugin_one + - 7 - plugin_one '''); @@ -1428,7 +1462,39 @@ '''); } - test_analyzer_plugins_multiple_directMap() { + test_analyzer_plugins_map() { + // TODO(srawlins): Test legacy plugins as a map of scalar values + // (`angular2: yes`). + var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' +analyzer: + plugins: + angular2: + enabled: true +'''); + + assertAnalysisOptionsText(analysisOptions, r''' +AnalysisOptionsImpl + enabledLegacyPluginNames + angular2 +'''); + } + + test_analyzer_plugins_map_duplicateKey() { + var analysisOptions = parseAnalysisOptionsWithDiagnostics(r''' +analyzer: + plugins: + plugin_one: yes + plugin_one: sure +// ^^^^^^^^^^ +// [diag.parseError] Duplicate mapping key. +'''); + + assertAnalysisOptionsText(analysisOptions, r''' +AnalysisOptionsImpl +'''); + } + + test_analyzer_plugins_map_multiple() { var analysisOptions = parseAnalysisOptionsWithDiagnostics(r''' analyzer: plugins: @@ -1445,134 +1511,17 @@ '''); } - test_analyzer_plugins_multiple_directMap_sameName() { - var analysisOptions = parseAnalysisOptionsWithDiagnostics(r''' + test_analyzer_plugins_scalar() { + var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' analyzer: plugins: - plugin_one: yes - plugin_one: sure -// ^^^^^^^^^^ -// [diag.parseError] Duplicate mapping key. -'''); - - assertAnalysisOptionsText(analysisOptions, r''' -AnalysisOptionsImpl -'''); - } - - test_analyzer_plugins_multiple_firstIncludedSecondDirect_list() { - newFile('$testPackageRootPath/other_options.yaml', ''' -analyzer: - plugins: - - plugin_one -'''); - var analysisOptions = parseAnalysisOptionsWithDiagnostics(r''' -include: other_options.yaml -analyzer: - plugins: - - plugin_two -// ^^^^^^^^^^ -// [diag.multiplePlugins] Multiple plugins can't be enabled. + angular2 '''); assertAnalysisOptionsText(analysisOptions, r''' AnalysisOptionsImpl enabledLegacyPluginNames - plugin_one -'''); - } - - test_analyzer_plugins_multiple_firstIncludedSecondDirect_map() { - newFile('$testPackageRootPath/other_options.yaml', ''' -analyzer: - plugins: - - plugin_one -'''); - var analysisOptions = parseAnalysisOptionsWithDiagnostics(r''' -include: other_options.yaml -analyzer: - plugins: - plugin_two: -// ^^^^^^^^^^ -// [diag.multiplePlugins] Multiple plugins can't be enabled. - foo: bar -'''); - - assertAnalysisOptionsText(analysisOptions, r''' -AnalysisOptionsImpl - enabledLegacyPluginNames - plugin_two -'''); - } - - test_analyzer_plugins_multiple_firstIncludedSecondDirect_scalar() { - newFile('$testPackageRootPath/other_options.yaml', ''' -analyzer: - plugins: - - plugin_one -'''); - var analysisOptions = parseAnalysisOptionsWithDiagnostics(r''' -include: other_options.yaml -analyzer: - plugins: plugin_two -// ^^^^^^^^^^ -// [diag.multiplePlugins] Multiple plugins can't be enabled. -'''); - - assertAnalysisOptionsText(analysisOptions, r''' -AnalysisOptionsImpl - enabledLegacyPluginNames - plugin_two -'''); - } - - test_analyzer_plugins_multiple_firstIndirectlyIncludedSecondDirect() { - newFile('$testPackageRootPath/more_options.yaml', ''' -analyzer: - plugins: - - plugin_one -'''); - newFile('$testPackageRootPath/other_options.yaml', ''' -include: more_options.yaml -'''); - var analysisOptions = parseAnalysisOptionsWithDiagnostics(r''' -include: other_options.yaml -analyzer: - plugins: - - plugin_two -// ^^^^^^^^^^ -// [diag.multiplePlugins] Multiple plugins can't be enabled. -'''); - - assertAnalysisOptionsText(analysisOptions, r''' -AnalysisOptionsImpl - enabledLegacyPluginNames - plugin_one -'''); - } - - test_analyzer_plugins_multiple_firstIndirectlyIncludedSecondIncluded() { - newFile('$testPackageRootPath/more_options.yaml', ''' -analyzer: - plugins: - - plugin_one -'''); - newFile('$testPackageRootPath/other_options.yaml', ''' -include: more_options.yaml -analyzer: - plugins: - - plugin_two -'''); - var analysisOptions = parseAnalysisOptionsWithDiagnostics(r''' -include: other_options.yaml -// ^^^^^^^^^^^^^^^^^^ -// [diag.includedFileWarning] Warning in the included options file /home/test/other_options.yaml(54..63): Multiple plugins can't be enabled. -'''); - - assertAnalysisOptionsText(analysisOptions, r''' -AnalysisOptionsImpl - enabledLegacyPluginNames - plugin_one + angular2 '''); } @@ -1619,7 +1568,7 @@ '''); } - test_analyzer_strongMode_implicitDynamic_valid() { + test_analyzer_strongMode_implicitDynamic_true() { var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' analyzer: strong-mode: @@ -1676,7 +1625,6 @@ code-style: format: false '''); - assertAnalysisOptionsText(analysisOptions, r''' AnalysisOptionsImpl '''); @@ -1687,7 +1635,6 @@ code-style: format: true '''); - assertAnalysisOptionsText(analysisOptions, r''' AnalysisOptionsImpl codeStyleOptions @@ -1695,20 +1642,7 @@ '''); } - test_codeStyle_format_invalid() { - var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' -code-style: - format: 80 -// ^^ -// [diag.unsupportedValue] The value '80' isn't supported by 'format'. -'''); - - assertAnalysisOptionsText(analysisOptions, r''' -AnalysisOptionsImpl -'''); - } - - test_codeStyle_format_invalidDoesNotOverrideIncluded() { + test_codeStyle_format_include_invalidDoesNotOverrideIncluded() { newFile('$testPackageRootPath/included.yaml', ''' code-style: format: true @@ -1728,6 +1662,19 @@ '''); } + test_codeStyle_format_invalid_int() { + var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' +code-style: + format: 80 +// ^^ +// [diag.unsupportedValue] The value '80' isn't supported by 'format'. +'''); + + assertAnalysisOptionsText(analysisOptions, r''' +AnalysisOptionsImpl +'''); + } + test_codeStyle_format_string_false() { var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' code-style: @@ -1778,25 +1725,59 @@ '''); } - test_codeStyle_format_valid_false() { - var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' + test_codeStyle_include_invalid_notMap_doesNotOverrideIncluded() { + newFile('$testPackageRootPath/included.yaml', ''' code-style: - format: false + format: true '''); + var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' +include: included.yaml +code-style: format +// ^^^^^^ +// [diag.invalidSectionFormat] Invalid format for the 'code-style' section. +'''); + + assertAnalysisOptionsText(analysisOptions, r''' +AnalysisOptionsImpl + codeStyleOptions + useFormatter: true +'''); + } + + test_codeStyle_invalid_notMap() { + var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' +code-style: 7 +// ^ +// [diag.invalidSectionFormat] Invalid format for the 'code-style' section. +'''); + assertAnalysisOptionsText(analysisOptions, r''' AnalysisOptionsImpl '''); } - test_codeStyle_format_valid_true() { + test_codeStyle_invalid_notMap_list() { var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' code-style: - format: true + - format +//^^^^^^^^ +// [diag.invalidSectionFormat] Invalid format for the 'code-style' section. '''); + assertAnalysisOptionsText(analysisOptions, r''' AnalysisOptionsImpl - codeStyleOptions - useFormatter: true +'''); + } + + test_codeStyle_invalid_notMap_scalar() { + var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' +code-style: format +// ^^^^^^ +// [diag.invalidSectionFormat] Invalid format for the 'code-style' section. +'''); + + assertAnalysisOptionsText(analysisOptions, r''' +AnalysisOptionsImpl '''); } @@ -2073,63 +2054,7 @@ '''); } - test_codeStyle_notMap() { - var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' -code-style: 7 -// ^ -// [diag.invalidSectionFormat] Invalid format for the 'code-style' section. -'''); - - assertAnalysisOptionsText(analysisOptions, r''' -AnalysisOptionsImpl -'''); - } - - test_codeStyle_notMap_doesNotOverrideIncluded() { - newFile('$testPackageRootPath/included.yaml', ''' -code-style: - format: true -'''); - var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' -include: included.yaml -code-style: format -// ^^^^^^ -// [diag.invalidSectionFormat] Invalid format for the 'code-style' section. -'''); - - assertAnalysisOptionsText(analysisOptions, r''' -AnalysisOptionsImpl - codeStyleOptions - useFormatter: true -'''); - } - - test_codeStyle_notMap_list() { - var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' -code-style: - - format -//^^^^^^^^ -// [diag.invalidSectionFormat] Invalid format for the 'code-style' section. -'''); - - assertAnalysisOptionsText(analysisOptions, r''' -AnalysisOptionsImpl -'''); - } - - test_codeStyle_notMap_scalar() { - var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' -code-style: format -// ^^^^^^ -// [diag.invalidSectionFormat] Invalid format for the 'code-style' section. -'''); - - assertAnalysisOptionsText(analysisOptions, r''' -AnalysisOptionsImpl -'''); - } - - test_codeStyle_unsupportedOption() { + test_codeStyle_unsupportedKey() { var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' code-style: not_supported: true @@ -2152,6 +2077,25 @@ '''); } + test_formatter_include_invalid_notMap_doesNotOverrideIncluded() { + newFile('$testPackageRootPath/included.yaml', ''' +formatter: + page_width: 80 +'''); + var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' +include: included.yaml +formatter: format +// ^^^^^^ +// [diag.invalidSectionFormat] Invalid format for the 'formatter' section. +'''); + + assertAnalysisOptionsText(analysisOptions, r''' +AnalysisOptionsImpl + formatterOptions + pageWidth: 80 +'''); + } + test_formatter_include_merged() { newFile('$testPackageRootPath/included.yaml', ''' formatter: @@ -2171,25 +2115,6 @@ '''); } - test_formatter_include_notMap_doesNotOverrideIncluded() { - newFile('$testPackageRootPath/included.yaml', ''' -formatter: - page_width: 80 -'''); - var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' -include: included.yaml -formatter: format -// ^^^^^^ -// [diag.invalidSectionFormat] Invalid format for the 'formatter' section. -'''); - - assertAnalysisOptionsText(analysisOptions, r''' -AnalysisOptionsImpl - formatterOptions - pageWidth: 80 -'''); - } - test_formatter_include_nullDoesNotOverrideIncluded() { newFile('$testPackageRootPath/included.yaml', ''' formatter: @@ -2207,7 +2132,7 @@ '''); } - test_formatter_include_pageWidth_invalidDoesNotOverrideIncluded() { + test_formatter_pageWidth_include_invalidDoesNotOverrideIncluded() { newFile('$testPackageRootPath/included.yaml', ''' formatter: page_width: 80 @@ -2227,23 +2152,16 @@ '''); } - test_formatter_include_trailingCommas_invalidDoesNotOverrideIncluded() { - newFile('$testPackageRootPath/included.yaml', ''' -formatter: - trailing_commas: automate -'''); + test_formatter_pageWidth_integer() { var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' -include: included.yaml formatter: - trailing_commas: foo -// ^^^ -// [diag.invalidOption] Invalid option specified for 'trailing_commas': "trailing_commas" must be "automate" or "preserve". + page_width: 123 '''); assertAnalysisOptionsText(analysisOptions, r''' AnalysisOptionsImpl formatterOptions - trailingCommas: automate + pageWidth: 123 '''); } @@ -2299,16 +2217,36 @@ '''); } - test_formatter_pageWidth_valid_integer() { + test_formatter_trailingCommas_automate() { var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' formatter: - page_width: 123 + trailing_commas: automate '''); assertAnalysisOptionsText(analysisOptions, r''' AnalysisOptionsImpl formatterOptions - pageWidth: 123 + trailingCommas: automate +'''); + } + + test_formatter_trailingCommas_include_invalidDoesNotOverrideIncluded() { + newFile('$testPackageRootPath/included.yaml', ''' +formatter: + trailing_commas: automate +'''); + var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' +include: included.yaml +formatter: + trailing_commas: foo +// ^^^ +// [diag.invalidOption] Invalid option specified for 'trailing_commas': "trailing_commas" must be "automate" or "preserve". +'''); + + assertAnalysisOptionsText(analysisOptions, r''' +AnalysisOptionsImpl + formatterOptions + trailingCommas: automate '''); } @@ -2352,33 +2290,7 @@ '''); } - test_formatter_trailingCommas_valid() { - var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' -formatter: - trailing_commas: automate -'''); - - assertAnalysisOptionsText(analysisOptions, r''' -AnalysisOptionsImpl - formatterOptions - trailingCommas: automate -'''); - } - - test_formatter_unsupportedKey() { - var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' -formatter: - wrong: 123 -//^^^^^ -// [diag.unsupportedOptionWithoutValues] The option 'wrong' isn't supported by 'formatter'. -'''); - - assertAnalysisOptionsText(analysisOptions, r''' -AnalysisOptionsImpl -'''); - } - - test_formatter_unsupportedKeys() { + test_formatter_unsupportedKey_multiple() { var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' formatter: wrong: 123 @@ -2394,6 +2306,19 @@ '''); } + test_formatter_unsupportedKey_single() { + var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' +formatter: + wrong: 123 +//^^^^^ +// [diag.unsupportedOptionWithoutValues] The option 'wrong' isn't supported by 'formatter'. +'''); + + assertAnalysisOptionsText(analysisOptions, r''' +AnalysisOptionsImpl +'''); + } + test_include_missing_absolutePath() { var options = parseAnalysisOptionsFilesWithDiagnostics({ analysisOptionsFile: r''' @@ -2759,20 +2684,6 @@ '''); } - test_include_recursive_self_direct() { - // Test that the appropriate error is issued if `analysis_options.yaml` - // tries to include itself. - var analysisOptions = parseAnalysisOptionsWithDiagnostics(r''' -include: analysis_options.yaml -// ^^^^^^^^^^^^^^^^^^^^^ -// [diag.recursiveIncludeFile] The URI 'analysis_options.yaml' included in '/home/test/analysis_options.yaml' includes '/home/test/analysis_options.yaml', creating a circular reference. -'''); - - assertAnalysisOptionsText(analysisOptions, r''' -AnalysisOptionsImpl -'''); - } - test_include_recursive_self_doubleQuoted() { var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' include: "./analysis_options.yaml" @@ -2936,7 +2847,7 @@ '''); } - test_linter_rules_deprecated_inIncludedFile_ok() { + test_linter_rules_deprecated_inIncludedFile() { newFile('$testPackageRootPath/included.yaml', ''' linter: rules: @@ -3000,7 +2911,7 @@ '''); } - test_linter_rules_deprecated_previousSdk() { + test_linter_rules_deprecated_since_afterDeprecationSdk() { var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' linter: rules: @@ -3017,7 +2928,7 @@ '''); } - test_linter_rules_deprecated_since_inCurrentSdk() { + test_linter_rules_deprecated_since_atDeprecationSdk() { var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' linter: rules: @@ -3034,7 +2945,7 @@ '''); } - test_linter_rules_deprecated_since_notInCurrentSdk() { + test_linter_rules_deprecated_since_beforeDeprecationSdk() { var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' linter: rules: @@ -3049,7 +2960,7 @@ '''); } - test_linter_rules_deprecated_since_unknownSdk() { + test_linter_rules_deprecated_since_unknownPackageSdk() { var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' linter: rules: @@ -3116,7 +3027,7 @@ '''); } - test_linter_rules_duplicate_inIncludedFile_ok() { + test_linter_rules_duplicate_inIncludedFile() { newFile('$testPackageRootPath/included.yaml', ''' linter: rules: @@ -4094,6 +4005,22 @@ '''); } + test_linter_rules_registeredRule() { + registerLintRule(TestRule()); + var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' +linter: + rules: + - fantastic_test_rule +'''); + + assertAnalysisOptionsText(analysisOptions, r''' +AnalysisOptionsImpl + lint: true + lintRules + fantastic_test_rule +'''); + } + test_linter_rules_removed() { var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' linter: @@ -4111,41 +4038,8 @@ '''); } - test_linter_rules_removed_inIncludedFile_ok() { - newFile('$testPackageRootPath/included.yaml', ''' -linter: - rules: - - removed_in_2_12_lint -'''); - var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' -include: included.yaml -'''); - - assertAnalysisOptionsText(analysisOptions, r''' -AnalysisOptionsImpl - lint: true - lintRules - removed_in_2_12_lint -'''); - } - - test_linter_rules_removed_notYet_ok() { - var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' -linter: - rules: - - removed_in_2_12_lint -''', sdkVersionConstraint: Version(2, 11, 0)); - - assertAnalysisOptionsText(analysisOptions, r''' -AnalysisOptionsImpl - lint: true - lintRules - removed_in_2_12_lint -'''); - } - /// https://github.com/dart-lang/sdk/issues/59869 - test_linter_rules_removed_previousSdk() { + test_linter_rules_removed_afterRemovalSdk() { var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' linter: rules: @@ -4162,7 +4056,7 @@ '''); } - test_linter_rules_removed_previousSdk_mixedCase() { + test_linter_rules_removed_afterRemovalSdk_mixedCase() { var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' linter: rules: @@ -4179,6 +4073,39 @@ '''); } + test_linter_rules_removed_beforeRemovalSdk() { + var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' +linter: + rules: + - removed_in_2_12_lint +''', sdkVersionConstraint: Version(2, 11, 0)); + + assertAnalysisOptionsText(analysisOptions, r''' +AnalysisOptionsImpl + lint: true + lintRules + removed_in_2_12_lint +'''); + } + + test_linter_rules_removed_inIncludedFile() { + newFile('$testPackageRootPath/included.yaml', ''' +linter: + rules: + - removed_in_2_12_lint +'''); + var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' +include: included.yaml +'''); + + assertAnalysisOptionsText(analysisOptions, r''' +AnalysisOptionsImpl + lint: true + lintRules + removed_in_2_12_lint +'''); + } + test_linter_rules_replaced() { var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' linter: @@ -4273,22 +4200,6 @@ '''); } - test_linter_rules_supported() { - registerLintRule(TestRule()); - var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' -linter: - rules: - - fantastic_test_rule -'''); - - assertAnalysisOptionsText(analysisOptions, r''' -AnalysisOptionsImpl - lint: true - lintRules - fantastic_test_rule -'''); - } - test_linter_rules_undefined() { var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' linter: @@ -4632,64 +4543,6 @@ '''); } - test_plugins_configuration_git() { - var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' -plugins: - plugin_one: - git: https://github.com/dart-lang/plugin_one.git -'''); - - assertAnalysisOptionsText(analysisOptions, r''' -AnalysisOptionsImpl - pluginsOptions - configurations - plugin_one - source: GitPluginSource - url: https://github.com/dart-lang/plugin_one.git -'''); - } - - test_plugins_configuration_git_full() { - var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' -plugins: - plugin_one: - git: - url: https://github.com/dart-lang/sdk.git - ref: main - path: pkg/plugin_one - tag_pattern: 'v*' -'''); - - assertAnalysisOptionsText(analysisOptions, r''' -AnalysisOptionsImpl - pluginsOptions - configurations - plugin_one - source: GitPluginSource - url: https://github.com/dart-lang/sdk.git - ref: main - path: pkg/plugin_one - tagPattern: v* -'''); - } - - test_plugins_configuration_git_scalar() { - var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' -plugins: - plugin_one: - git: https://github.com/dart-lang/plugin_one.git -'''); - - assertAnalysisOptionsText(analysisOptions, r''' -AnalysisOptionsImpl - pluginsOptions - configurations - plugin_one - source: GitPluginSource - url: https://github.com/dart-lang/plugin_one.git -'''); - } - test_plugins_configuration_path() { var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' plugins: @@ -4707,23 +4560,6 @@ '''); } - test_plugins_configuration_path_relative() { - var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' -plugins: - plugin_one: - path: foo/bar -'''); - - assertAnalysisOptionsText(analysisOptions, ''' -AnalysisOptionsImpl - pluginsOptions - configurations - plugin_one - source: PathPluginSource - path: /home/test/foo/bar -'''); - } - test_plugins_configuration_path_relativeNonNormal() { var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' plugins: @@ -4777,38 +4613,7 @@ '''); } - test_plugins_configuration_versionScalar() { - var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' -plugins: - plugin_one: ^1.2.3 -'''); - - assertAnalysisOptionsText(analysisOptions, r''' -AnalysisOptionsImpl - pluginsOptions - configurations - plugin_one - source: VersionedPluginSource - constraint: ^1.2.3 -'''); - } - - test_plugins_dependencyOverrides_invalidKey() { - var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' -plugins: - dependency_overrides: - one: - ppath: foo/bar -// ^^^^^ -// [diag.unsupportedOptionWithLegalValues] The option 'ppath' isn't supported by 'plugins/dependency_overrides/one'. -'''); - - assertAnalysisOptionsText(analysisOptions, r''' -AnalysisOptionsImpl -'''); - } - - test_plugins_dependencyOverrides_valid() { + test_plugins_dependencyOverrides_git() { var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' plugins: dependency_overrides: @@ -4826,7 +4631,50 @@ '''); } - test_plugins_diagnostics_invalid() { + test_plugins_dependencyOverrides_invalid_unsupportedKey() { + var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' +plugins: + dependency_overrides: + one: + ppath: foo/bar +// ^^^^^ +// [diag.unsupportedOptionWithLegalValues] The option 'ppath' isn't supported by 'plugins/dependency_overrides/one'. +'''); + + assertAnalysisOptionsText(analysisOptions, r''' +AnalysisOptionsImpl +'''); + } + + test_plugins_diagnostics_bool() { + var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' +plugins: + one: + diagnostics: + code1: true + code2: false +'''); + + assertAnalysisOptionsText(analysisOptions, r''' +AnalysisOptionsImpl +'''); + } + + test_plugins_diagnostics_invalid_notMap() { + var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' +plugins: + one: + diagnostics: 7 +// ^ +// [diag.invalidSectionFormat] Invalid format for the 'plugins/one/diagnostics' section. +'''); + + assertAnalysisOptionsText(analysisOptions, r''' +AnalysisOptionsImpl +'''); + } + + test_plugins_diagnostics_invalid_severity() { var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' plugins: one: @@ -4841,21 +4689,7 @@ '''); } - test_plugins_diagnostics_notMap() { - var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' -plugins: - one: - diagnostics: 7 -// ^ -// [diag.invalidSectionFormat] Invalid format for the 'plugins/one/diagnostics' section. -'''); - - assertAnalysisOptionsText(analysisOptions, r''' -AnalysisOptionsImpl -'''); - } - - test_plugins_diagnostics_supported_severity() { + test_plugins_diagnostics_severity() { var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' plugins: one: @@ -4871,20 +4705,6 @@ '''); } - test_plugins_diagnostics_supported_trueOrFalse() { - var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' -plugins: - one: - diagnostics: - code1: true - code2: false -'''); - - assertAnalysisOptionsText(analysisOptions, r''' -AnalysisOptionsImpl -'''); - } - test_plugins_empty() { var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' plugins: @@ -4895,15 +4715,15 @@ '''); } - test_plugins_git_invalidKey() { + test_plugins_git_invalid_refNotString() { var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' plugins: one: git: url: https://github.com/dart-lang/linter.git - invalid: main -// ^^^^^^^ -// [diag.unsupportedOptionWithLegalValues] The option 'invalid' isn't supported by 'plugins/one/git'. + ref: 7 +// ^ +// [diag.invalidSectionFormat] Invalid format for the 'plugins/one/git/ref' section. '''); assertAnalysisOptionsText(analysisOptions, r''' @@ -4916,15 +4736,15 @@ '''); } - test_plugins_git_invalidValue() { + test_plugins_git_invalid_unsupportedKey() { var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' plugins: one: git: url: https://github.com/dart-lang/linter.git - ref: 7 -// ^ -// [diag.invalidSectionFormat] Invalid format for the 'plugins/one/git/ref' section. + invalid: main +// ^^^^^^^ +// [diag.unsupportedOptionWithLegalValues] The option 'invalid' isn't supported by 'plugins/one/git'. '''); assertAnalysisOptionsText(analysisOptions, r''' @@ -5083,7 +4903,7 @@ '''); } - test_plugins_notMap_scalar() { + test_plugins_invalid_notMap_scalar() { var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' plugins: 7 // ^ @@ -5095,7 +4915,7 @@ '''); } - test_plugins_plugin_invalidKey() { + test_plugins_plugin_invalid_unsupportedKey() { var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' plugins: one: @@ -5109,7 +4929,7 @@ '''); } - test_plugins_plugin_validKey() { + test_plugins_plugin_pathKey() { var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' plugins: one: @@ -5126,7 +4946,7 @@ '''); } - test_plugins_plugin_validScalar() { + test_plugins_plugin_scalar() { var analysisOptions = parseAnalysisOptionsWithDiagnostics(''' plugins: one: ^1.2.3