Skip to content

Commit

Permalink
[flutter_plugin_tools] Test and comment Dart analysis (flutter#4194)
Browse files Browse the repository at this point in the history
Adds a unit test and comments intended to avoid accidental breakage of
the Dart repo's run of analysis against this repository.

Addresses flutter#4183 (comment)
  • Loading branch information
stuartmorgan authored and fotiDim committed Sep 13, 2021
1 parent d97c318 commit 8b9a0cd
Show file tree
Hide file tree
Showing 3 changed files with 46 additions and 0 deletions.
2 changes: 2 additions & 0 deletions .cirrus.yml
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,8 @@ task:
- cd script/tool
- dart analyze --fatal-infos
script:
# DO NOT change the custom-analysis argument here without changing the Dart repo.
# See the comment in script/configs/custom_analysis.yaml for details.
- ./script/tool_runner.sh analyze --custom-analysis=script/configs/custom_analysis.yaml
### Android tasks ###
- name: build_all_plugins_apk
Expand Down
5 changes: 5 additions & 0 deletions script/configs/custom_analysis.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,11 @@
# from a top-level package into more specific packages in order to incrementally
# migrate a federated plugin.
#
# DO NOT move or delete this file without updating
# https://github.com/dart-lang/sdk/blob/master/tools/bots/flutter/analyze_flutter_plugins.sh
# which references this file from source, but out-of-repo.
# Contact stuartmorgan or devoncarew for assistance if necessary.

# TODO(ecosystem): Remove everything from this list. See:
# https://github.com/flutter/flutter/issues/76229
- camera
Expand Down
39 changes: 39 additions & 0 deletions script/tool/test/analyze_command_test.dart
Original file line number Diff line number Diff line change
Expand Up @@ -251,4 +251,43 @@ void main() {
]),
);
});

// Ensure that the command used to analyze flutter/plugins in the Dart repo:
// https://github.com/dart-lang/sdk/blob/master/tools/bots/flutter/analyze_flutter_plugins.sh
// continues to work.
//
// DO NOT remove or modify this test without a coordination plan in place to
// modify the script above, as it is run from source, but out-of-repo.
// Contact stuartmorgan or devoncarew for assistance.
test('Dart repo analyze command works', () async {
final Directory pluginDir = createFakePlugin('foo', packagesDir,
extraFiles: <String>['analysis_options.yaml']);
final File allowFile = packagesDir.childFile('custom.yaml');
allowFile.writeAsStringSync('- foo');

await runCapturingPrint(runner, <String>[
// DO NOT change this call; see comment above.
'analyze',
'--analysis-sdk',
'foo/bar/baz',
'--custom-analysis',
allowFile.path
]);

expect(
processRunner.recordedCalls,
orderedEquals(<ProcessCall>[
ProcessCall(
'flutter',
const <String>['packages', 'get'],
pluginDir.path,
),
ProcessCall(
'foo/bar/baz/bin/dart',
const <String>['analyze', '--fatal-infos'],
pluginDir.path,
),
]),
);
});
}

0 comments on commit 8b9a0cd

Please sign in to comment.